Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Nesnelerin İnterneti (IoT) ekosistemi büyüdükçe, milyarlarca cihazın birbiriyle nasıl hızlı, güvenli ve minimum kaynak tüketerek haberleşeceği sorusu kritik bir hale geldi. İşte bu noktada, IoT projelerinin vazgeçilmez standardı olan MQTT (Message Queuing Telemetry Transport) protokolü devreye giriyor.
Peki, MQTT nedir, neden bu kadar popülerdir ve mimarisi nasıl çalışır? Gelin, mühendislik mantığıyla derinlemesine inceleyelim.

MQTT, bant genişliğinin düşük, gecikme sürelerinin yüksek veya ağ bağlantılarının güvenilmez olduğu durumlar için tasarlanmış, Publish/Subscribe (Yayınla/Abone Ol) modeline dayalı, son derece hafif (lightweight) bir ağ protokolüdür.
1999 yılında Andy Stanford-Clark (IBM) ve Arlen Nipper (Eurotech) tarafından petrol boru hatlarındaki sensörlerin uydular üzerinden haberleşmesi amacıyla geliştirilmiştir. Bugün ise akıllı ev sistemlerinden endüstriyel otomasyona (IIoT) kadar geniş bir yelpazede standart protokol olarak kabul görmektedir.
MQTT, geleneksel HTTP protokolündeki gibi bir İstemci-Sunucu (Client-Server) ilişkisi yerine, mesajların dağıtımını optimize eden bir aracı mimarisi kullanır. Bu mimaride üç temel bileşen bulunur:
Veriyi üreten ve belirli bir konu başlığı (Topic) altında sisteme gönderen istemcidir. Örneğin; bir sıcaklık sensörü oda sıcaklığını ölçer ve bu veriyi yayınlar.
Belirli veri başlıklarını dinleyen ve o başlıktan mesaj geldiğinde bu veriyi alan istemcidir. Örneğin; merkezi bir kontrol paneli veya veri tabanı sunucusu, sıcaklık verilerini kaydetmek için ilgili konuya abone olur.
Sistemin kalbidir. Yayıncılardan gelen tüm mesajları alır, filtreler ve hangi konuya hangi abonelerin kayıtlı olduğunu kontrol ederek mesajları doğru adreslere yönlendirir. En popüler MQTT Broker yazılımları arasında Mosquitto, EMQX ve HiveMQ yer alır.
MQTT protokolünü verimli kullanmak için şu üç yapı taşını iyi anlamak gerekir:
Mesajların yönlendirileceği klasör yolları gibi düşünülebilir. Hiyerarşik bir yapısı vardır ve / işareti ile ayrılır.
ev/salon/sicaklikAboneliklerde esneklik sağlamak için wildcard (joker) karakterler kullanılabilir:
+ (Tek Seviyeli): ev/+/sicaklik (Salon, mutfak gibi sadece bir alt kırılımı kapsar).# (Çok Seviyeli): ev/# (Ev başlığı altındaki tüm alt konuları ve verileri kapsar).MQTT, mesaj iletim güvencesini üç farklı seviyede sunar. Ağ kalitesine ve verinin kritiklik durumuna göre doğru QoS seçilmelidir:
| QoS Seviyesi | Tanım | Teslimat Garantisi | Bant Genişliği Tüketimi |
| QoS 0 | En fazla bir kez (At most once) | Garanti yok. Mesaj gönderilir, ulaşıp ulaşmadığı kontrol edilmez. | En Düşük |
| QoS 1 | En az bir kez (At least once) | Mesajın ulaştığından emin olunur ancak mükerrer (aynı mesajdan birden fazla) gidebilir. | Orta |
| QoS 2 | Tam olarak bir kez (Exactly once) | Mesajın tam olarak bir kez ve güvenli şekilde ulaştığı doğrulanır. | En Yüksek |
Bir yayıncı, gönderdiği mesajı “Retained” olarak işaretlerse, Broker bu mesajı hafızasında tutar. O konuya yeni abone olan bir cihaz, geçmiş mesajların gelmesini beklemek yerine, bağlanır bağlanmaz bu son tutulan mesajı alır. Cihazların ilk açılış durumlarını (state) senkronize etmek için idealdir.
Web dünyasının hakimi olan HTTP, IoT senaryolarında neden yetersiz kalır? İşte aralarındaki temel farklar:
MQTT; hafifliği, esnek hiyerarşik yapısı ve düşük kaynak tüketimi ile IoT projelerinin omurgasını oluşturmaktadır. Eğer bant genişliğinin sınırlı olduğu, donanım kaynaklarının verimli kullanılması gereken bir mimari inşa ediyorsanız, MQTT şu anki en optimize çözümdür.
Anahtar Kelimeler (SEO için tags): MQTT nedir, MQTT Broker, IoT protokolleri, Mosquitto, Publish Subscribe, QoS nedir, Nesnelerin İnterneti haberleşme.