برنامه نویسی

استقرار MQTT Broker مناسب خوشه با Docker

Summarize this content to 400 words in Persian Lang
در این پست، استقرار docker را برای یک کارگزار MQTT نشان می دهم که از افزودن چندین نمونه پشتیبانی می کند.

در پست قبلی، یک Dockerfile ساده برای استقرار بروکر Eclipse Mosquitto MQTT را نشان دادم. در حالی که می‌توان Mosquitto را به گونه‌ای پیکربندی کرد که در یک خوشه کار کند، راه‌حل‌های دیگری نیز وجود دارد که اجرای آنها ساده‌تر است.

ما از EMQX، یک کارگزار MQTT منبع باز با قابلیت خوشه بندی داخلی استفاده خواهیم کرد و به خوبی در محیط Kubernetes کار می کند.

فایل docker-compose در زیر نشان داده شده است:

version: ‘3’

services:
emqx1:
image: emqx:5.8.0
container_name: emqx1
hostname: emqx1
environment:
– “EMQX_NODE_NAME=emqx@172.20.0.2”
– “EMQX_CLUSTER__DISCOVERY_STRATEGY=static”
– “EMQX_CLUSTER__STATIC__SEEDS=[emqx@172.20.0.2]”
healthcheck:
test: [“CMD”, “/opt/emqx/bin/emqx”, “ctl”, “status”] interval: 5s
timeout: 25s
retries: 5
networks:
emqx-bridge:
aliases:
– emqx1
ports:
– 1883:1883
– 8083:8083
– 8084:8084
– 8883:8883
– 18083:18083

networks:
emqx-bridge:
driver: bridge

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این تصویر رسمی emqx را می کشد، تنظیمات اولیه را برای نمونه پیکربندی می کند و پورت های لازم را در معرض دید قرار می دهد. همچنین می‌توانید ببینید که تنظیمات و شبکه‌ای را تنظیم می‌کند که در صورت اضافه شدن نمونه‌های بیشتری در یک خوشه استفاده می‌شود.

برای شروع کارگزار، به سادگی اجرا کنید:

docker-compose up -d

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

می توانید وضعیت را با استفاده از:

docker exec -it emqx1 sh -c “emqx ctl cluster status”
Cluster status: #{running_nodes => [’emqx@172.20.0.2′],stopped_nodes => []}

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این کمی با تنظیمات نشان داده شده در اسناد emqx متفاوت است. ما مجبور شدیم یک نام میزبان اضافه کنیم و از ip کانتینر داخلی برای نام گره استفاده کنیم.

فایل کامل docker-compose را می توان در این مخزن یافت.

مطمئن نیستیم که چرا باید نام گره را برای دریافت وضعیت خوشه تغییر دهیم. اگر دلیل آن را می دانید، لطفاً یک نظر در زیر اضافه کنید. چه چیز دیگری را تغییر می دهید؟

با تشکر

در این پست، استقرار docker را برای یک کارگزار MQTT نشان می دهم که از افزودن چندین نمونه پشتیبانی می کند.

در پست قبلی، یک Dockerfile ساده برای استقرار بروکر Eclipse Mosquitto MQTT را نشان دادم. در حالی که می‌توان Mosquitto را به گونه‌ای پیکربندی کرد که در یک خوشه کار کند، راه‌حل‌های دیگری نیز وجود دارد که اجرای آنها ساده‌تر است.

ما از EMQX، یک کارگزار MQTT منبع باز با قابلیت خوشه بندی داخلی استفاده خواهیم کرد و به خوبی در محیط Kubernetes کار می کند.

فایل docker-compose در زیر نشان داده شده است:

version: '3'

services:
  emqx1:
    image: emqx:5.8.0
    container_name: emqx1
    hostname: emqx1
    environment:
      - "EMQX_NODE_NAME=emqx@172.20.0.2"
      - "EMQX_CLUSTER__DISCOVERY_STRATEGY=static"
      - "EMQX_CLUSTER__STATIC__SEEDS=[emqx@172.20.0.2]"
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx", "ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
          - emqx1
    ports:
      - 1883:1883
      - 8083:8083
      - 8084:8084
      - 8883:8883
      - 18083:18083

networks:
  emqx-bridge:
    driver: bridge
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این تصویر رسمی emqx را می کشد، تنظیمات اولیه را برای نمونه پیکربندی می کند و پورت های لازم را در معرض دید قرار می دهد. همچنین می‌توانید ببینید که تنظیمات و شبکه‌ای را تنظیم می‌کند که در صورت اضافه شدن نمونه‌های بیشتری در یک خوشه استفاده می‌شود.

برای شروع کارگزار، به سادگی اجرا کنید:

docker-compose up -d
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

می توانید وضعیت را با استفاده از:

docker exec -it emqx1 sh -c "emqx ctl cluster status"
Cluster status: #{running_nodes => ['emqx@172.20.0.2'],stopped_nodes => []}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این کمی با تنظیمات نشان داده شده در اسناد emqx متفاوت است. ما مجبور شدیم یک نام میزبان اضافه کنیم و از ip کانتینر داخلی برای نام گره استفاده کنیم.

فایل کامل docker-compose را می توان در این مخزن یافت.

مطمئن نیستیم که چرا باید نام گره را برای دریافت وضعیت خوشه تغییر دهیم. اگر دلیل آن را می دانید، لطفاً یک نظر در زیر اضافه کنید. چه چیز دیگری را تغییر می دهید؟

با تشکر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا