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

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

MQTT хэрхэн ажилладаг вэ?
- Client broker-т CONNECT хийнэ
- Topic дээр SUBSCRIBE хийнэ
- Нөгөө client PUBLISH хийнэ
- Broker мессежийг тохирох subscriber руу дамжуулна
Broker бүх мессежийг удирддаг.
MQTT-ийн үндсэн ойлголтууд
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 ашигладаг.

3. Retained Message
Broker хамгийн сүүлийн мессежийг хадгалж болно.
Шинэ subscriber холбогдоход шууд хамгийн сүүлийн утгыг авна.
4. Last Will & Testament (LWT)
Client гэнэт салбал broker автоматаар тодорхой мессеж илгээж чадна. Жишээ:
device1/status = offline
MQTT Broker-ийн төрөл
1. Open Source Broker
Mosquitto
- Хөнгөн
- Суулгахад амар
- Embedded системд тохиромжтой
EMQX
- Өндөр гүйцэтгэл
- Cluster support
- Web dashboard-той
- Enterprise түвшинд ашигладаг
HiveMQ
- Enterprise broker
- Cloud болон on-premise
- Java дээр суурилсан
VerneMQ
- High scalability
- Cluster дэмждэг
2. Cloud Broker
Cloud үйлчилгээ үзүүлэгчдийн broker:
- AWS IoT Core
- Azure IoT Hub
- Google Cloud IoT
- EMQX Cloud
- HiveMQ Cloud
Cloud broker-ийн давуу тал:
- Auto scaling
- SSL/TLS бэлэн
- Infrastructure удирдах шаардлагагүй
- High availability
3. Embedded Broker
Жижиг сервер, edge device дээр ажиллуулна. Жишээ:
- Raspberry Pi дээр Mosquitto
- Edge Gateway дээр EMQX

Authentication
- Username/password
- Token
- Certificate
- JWT
Authorization
Topic түвшинд access control.
Жишээ: User A → зөвхөн home/userA/#
TLS/SSL
MQTT secure холболт:
- Port 8883
- mqtts://
MQTT порт
1883 — Plain MQTT
8883 — MQTT over TLS
9001 — WebSocket
8083 — Secure WebSocket
Broker Clustering
Cluster гэдэг нь олон broker-ийг холбож:
- Load balancing хийх
- High availability бий болгох
- Failover хийх
EMQX, HiveMQ, VerneMQ cluster дэмждэг. Mosquitto default-аар cluster биш.
Performance
Сайн broker:
- Сая гаруй connection
- Секундэд сая сая мессеж
- Low latency
EMQX → өндөр гүйцэтгэл
Mosquitto → жижиг системд тохиромжтой.
MQTT vs HTTP
| MQTT | HTTP |
|---|---|
| Push-based | Request-response |
| Persistent connection | Stateless |
| Lightweight | Heavy |
| Real-time | Polling шаардлагатай |
IoT, real-time системд MQTT илүү тохиромжтой.
Broker суулгах жишээ (Ubuntu)
sudo apt install mosquitto
sudo systemctl start mosquitto
Test:
mosquitto_sub -t test
mosquitto_pub -t test -m “hello”
Дүгнэлт
MQTT Broker бол IoT системийн зүрх юм. Тэр:
- Төхөөрөмжүүдийг холбодог
- Мессеж дамжуулдаг
- Security хангадаг
- Scaling боломж олгодог
- Real-time харилцааг дэмждэг
IoT, smart system, real-time monitoring системүүдэд MQTT broker нь хамгийн чухал бүрэлдэхүүн хэсэг болдог.