MQTT Nedir?
MQTT (Message Queuing Telemetry Transport), publish/subscribe mantığıyla çalışan, hafif ve verimli bir mesajlaşma protokolüdür. IoT cihazları arasında düşük bant genişliğinde bile güvenilir veri iletimi sağlar. İlk olarak M2M (Machine-to-Machine) haberleşme için geliştirilmiş, günümüzde IoT ekosisteminin temel protokollerinden biri haline gelmiştir.
MQTT Mimari Yapısı
MQTT üç ana bileşene dayanır:
- Publisher (Yayıncı): Mesajı üreten cihaz veya uygulama.
- Broker: Mesajların merkezi sunucusu. Publisher’dan gelen mesajları alır ve ilgili Subscriber’lara dağıtır.
- Subscriber (Abone): Belirli bir konuya (topic) abone olan ve broker’dan mesaj alan cihaz veya uygulama.
Bu yapı sayesinde cihazlar arasında doğrudan bağlantı kurmaya gerek kalmaz, tüm iletişim broker üzerinden gerçekleşir.
Neden MQTT Kullanılır?
- Düşük veri tüketimi: Pil dostu ve bant genişliği kısıtlı ortamlarda idealdir.
- Gerçek zamanlı veri iletimi: Sensör verileri anlık olarak toplanır.
- Kolay ölçeklenebilirlik: Binlerce, hatta milyonlarca cihaz aynı broker üzerinden haberleşebilir.
- Güvenlik: TLS şifreleme ve kimlik doğrulama ile güvenli iletişim sağlar.
MQTT QoS (Quality of Service) Seviyeleri
MQTT, mesaj teslim güvenilirliğini belirleyen üç QoS seviyesi sunar:
- QoS 0 – At most once (En fazla bir kez): Mesaj gönderilir ama teslim garantisi yoktur.
- QoS 1 – At least once (En az bir kez): Mesaj mutlaka en az bir kere iletilir, tekrarlar olabilir.
- QoS 2 – Exactly once (Tam bir kere): Mesajın sadece bir kez teslim edilmesi garanti edilir (en güvenilir ama en yavaş yöntem).
MQTT’nin Avantajları
- Hafif ve verimli: Sadece birkaç kilobayt ile çalışır.
- Açık standart: Birçok platform ve programlama dili tarafından desteklenir.
- Esnek: Konu (topic) tabanlı hiyerarşi sayesinde esnek mesaj yönlendirmesi yapılabilir.
- Geniş ekosistem: IoT platformları, bulut servisleri ve cihaz üreticileri tarafından yaygın olarak desteklenir.
MQTT’nin Dezavantajları
- Broker bağımlılığı: Tüm iletişim merkezi broker üzerinden yapılır, broker çökmesi iletişimi keser.
- Ağ güvenliği: Doğru yapılandırılmazsa saldırılara açık olabilir.
- Mesaj boyutu: Büyük veri transferleri (örneğin video) için uygun değildir.
Kullanım Alanları
- Sensör verilerinin toplanması ve işlenmesi
- Uzaktan cihaz kontrolü (örneğin akıllı evde ışık açma/kapama)
- Endüstriyel otomasyon sistemleri
- Akıllı ev ve bina otomasyonu
- Araç takip sistemleri
Örnek Senaryo
Bir sıcaklık sensörü, “factory/room1/temperature” konusuna her 5 saniyede bir değer yayınlar.
Bu veriyi izleyen bir uygulama, sıcaklık 50°C’nin üstüne çıkarsa otomatik olarak alarm oluşturur ve bakım ekibine bildirim gönderir.