

Интернэтэд холбогдсон төхөөрөмжүүд (IoT) олширч байгаа өнөө үед төхөөрөмжүүд хоорондоо хурдан, найдвартай, бага нөөц ашиглан харилцах шаардлага бий болсон. Энэ асуудлыг шийдэх хамгийн өргөн хэрэглэгддэг протокол бол MQTT бөгөөд түүний төв хэсэг нь MQTT Broker юм.
Энэ нийтлэлээр бид MQTT талаар танилцсан бол энэ нийтлэлээрээ MQTT Broker гэж юу болох, хэрхэн ажилладаг, ямар төрлүүд байдаг, security болон production орчинд хэрхэн ашиглагддаг талаар тайлбарлах болно.
MQTT Broker бол MQTT системийн төв сервер юм.
Түүний үндсэн үүрэг:
Client-уудыг холбох
Topic-уудыг удирдах
Publish хийсэн мессежийг Subscribe хийсэн client-ууд руу дамжуулах
Authentication & Authorization хийх
QoS удирдах
Retained message хадгалах
Last Will мессеж илгээх
MQTT-д client-ууд хоорондоо шууд холбогдохгүй. Бүх харилцаа broker-оор дамжина.

MQTT нь Publish/Subscribe загвартай.
Жишээ: ESP32 температур хэмжинэ → Broker руу publish хийнэ → Mobile app subscribe хийсэн тул мессежийг авна.
Broker бол зуучлагч.

Client broker-т CONNECT хийнэ
Topic дээр SUBSCRIBE хийнэ
Нөгөө client PUBLISH хийнэ
Broker мессежийг тохирох subscriber руу дамжуулна
Broker бүх мессежийг удирддаг.
1. Topic
Topic бол мессежийн зам.
Жишээ:
home/livingroom/temp
factory/machine1/status
parking/slot/12
Topic нь string бөгөөд hierarchical бүтэцтэй.
2. QoS (Quality of Service)
MQTT 3 төрлийн QoS-тэй:
QoS 0 — At most once
QoS 0 нь “хамгийн ихдээ нэг удаа” хүргэнэ гэсэн утгатай. Энэ түвшинд publisher мессежийг илгээснээр процесс дуусна, ямар нэгэн баталгаажуулалт (ACK) хийгдэхгүй. Хэрэв сүлжээнд алдагдвал дахин илгээхгүй. Тиймээс хурд хамгийн өндөр, нөөц бага ашигладаг боловч мессеж алдагдах магадлалтай. Ихэвчлэн температур, чийгшил зэрэг байнга шинэчлэгддэг sensor мэдээлэлд ашигладаг.
QoS 1 — At least once
QoS 1 нь “ядаж нэг удаа заавал хүргэнэ” гэсэн баталгаатай. Publisher мессеж илгээсний дараа broker хүлээж авснаа баталгаажуулж (PUBACK) хариу өгнө. Хэрэв энэ баталгаажуулалт ирэхгүй бол publisher мессежийг дахин илгээнэ. Иймээс мессеж алдагдахгүй ч зарим тохиолдолд давхар очиж болно. Төлөвийн өөрчлөлт, анхааруулга, хаалга нээгдсэн зэрэг чухал мэдээлэлд ихэвчлэн QoS 1 ашигладаг.
QoS 2 — Exactly once
QoS 2 нь “яг нэг удаа” хүргэнэ гэсэн хамгийн өндөр баталгаатай түвшин юм. Энэ нь дөрвөн шаттай баталгаажуулах процессоор ажилладаг тул мессеж алдагдахгүй, давхардахгүй. Гэхдээ хурд хамгийн удаан, сүлжээ болон серверийн нөөц илүү их ашигладаг. Санхүүгийн гүйлгээ, маш чухал удирдлагын команд зэрэг алдаа гарч болохгүй нөхцөлд хэрэглэнэ.
IoT-д ихэнхдээ QoS 0 эсвэл 1 ашигладаг.

Broker хамгийн сүүлийн мессежийг хадгалж болно.
Шинэ subscriber холбогдоход шууд хамгийн сүүлийн утгыг авна.
Client гэнэт салбал broker автоматаар тодорхой мессеж илгээж чадна. Жишээ:
device1/status = offlineНээлттэй эхтэй, үнэгүй ашиглаж болдог broker-ууд.
Хамгийн түгээмэл MQTT broker.
Хөнгөн
RAM бага хэрэглэнэ
Суулгахад амар
Embedded системд тохиромжтой
Raspberry Pi дээр сайн ажилладаг
Том cluster системд сул
Enterprise feature бага
Smart home
Жижиг IoT систем
Prototype
Өндөр гүйцэтгэлтэй enterprise broker.
Сая сая connection дэмжинэ
Cluster support
High availability
Web dashboard-той
Rule engine-тэй
Cloud deployment боломжтой
Industrial IoT
Smart city
Large scale system
Real-time analytics
Enterprise түвшний broker.
Java дээр суурилсан
Cloud болон on-premise
Enterprise security
Extension system
Large enterprise ашигладаг
Маш тогтвортой
Scalability өндөр
Professional support
Distributed architecture бүхий broker.
High scalability
Cluster support
Fault tolerance
Erlang дээр суурилсан
Telecom
Massive IoT network
Distributed system
Cloud дээр ажилладаг MQTT broker үйлчилгээ.
Жишээ:
Amazon Web Services → AWS IoT Core
Microsoft → Azure IoT Hub
Google → Google Cloud IoT
EMQX Cloud
HiveMQ Cloud
Хэрэглэгч нэмэгдэхэд сервер автоматаар өргөжинө.
Security тохиргоо урьдчилан бэлэн байдаг.
Server суулгах, update хийх хэрэггүй.
Нэг server уналаа ч систем ажилласаар байна.
Дэлхийн хаанаас ч холбогдож болно.
Жижиг edge төхөөрөмж дээр ажилладаг broker.
Жишээ:
Raspberry Pi дээр Mosquitto
Edge Gateway дээр EMQX
Гэрийн төхөөрөмжүүдийг удирдах
Үйлдвэрийн sensor мэдээлэл боловсруулах
Интернетгүй үед локал network дээр ажиллах

Broker нь хэрэглэгчийг таних хэрэгтэй.
Хамгийн энгийн authentication.
Жишээ:
username: admin
password: 123456API token ашиглана.
TLS certificate ашиглан төхөөрөмжийг баталгаажуулна.
Modern web system-д өргөн ашиглагддаг.
Хэн ямар topic ашиглахыг шийднэ.
Жишээ:
User A → home/userA/#
User B → home/userB/#Ингэснээр хэрэглэгч өөрийн мэдээлэлд л хандана.
MQTT secure холболт ашиглаж болно.
TLS ашигласнаар:
Data encryption
Password хамгаалалт
Man-in-the-middle attack хамгаалалт
боломжтой болдог.
PortТайлбар1883Plain MQTT8883MQTT over TLS9001MQTT over WebSocket8083Secure WebSocket
Cluster гэдэг нь олон broker хамтран ажиллах систем юм.
Жишээ:
Broker 1
Broker 2
Broker 3Эдгээр broker-ууд хоорондоо synchronization хийдэг.
Ачааллыг хуваарилна.
Нэг broker уналаа ч system ажиллана.
Алдаа гарвал өөр broker ажил үргэлжлүүлнэ.
Дүгнэлт
MQTT Broker бол IoT системийн хамгийн чухал хэсэг юм.
Түүний үндсэн үүрэг:
Төхөөрөмжүүдийг холбох
Message дамжуулах
Real-time communication хийх
Security хангах
Load balancing хийх
System scaling боломж олгох
Өнөө үед smart home, үйлдвэр, cloud system, real-time monitoring зэрэг бараг бүх IoT систем MQTT broker ашиглаж байна.