*TCP/IP tabanlıdır , sıralı ve çift yönlü bir iletişim sağlar
*Kaynak kısıtlamaları ve band genişliğinin sınırlı olduğu bağlantılar için tasarlanmıştır
*Mqtt broker : yayıncıdan gönderilen mesajları abonelere uygun şekilde yönlendirilmesini sağlar.Bir bilgisayarda calısan yazılımdır .Bunun için yazılımlar vardır örn: Rabbitmq server
Mqtt client : Mqtt kütüphanesini kullanarak mqtt broker cihazına bağlantı kuran cihazdır
*Publisher mesajını brokera gönderir broker abonelere dağıtır . Publisher abonleler hakkında herhangi birşey bilmesi gerekmez
*Abonesi olmayan bir konu için brokera bir mesaj gelirse broker bu mesajı yokeder
*Mqtt text modunda güvensiz şekilde gönderilir. TLS ile güvenli gönderim sağlanabilir . Şifrelenmemiş port 1883 Şifrelenmiş port 8883
*Mqtt çift yönlü bir iletişim protokolüdür
*Mqtt client hem veri yollayabilir hem alabilir . örn: bir cihaz sensörü sensör datalarını yayınlarken aynı zaman sensör ayarları ile ilgili kontrol komutları alabilir
EXCHANGELAR 3 tiptir
*Topic : +)Kendine bağlı queuelara belirli pattern ve routekeyle ulaşır
örn : route.key.* -> route.key.XYZ (mesaj alır)
-> route.key.ABC (mesaj alır)
-> route.key (mesaj ALAMAZ)
-> route.key.ABC.TTT (mesaj ALAMAZ)
route.key.# -> route.key.XYZ (mesaj alır)
-> route.key.ABC (mesaj alır)
-> route.key (mesaj alır)
-> route.key.ABC.TTT (mesaj alır)
+) Route key pattern belirtilmezse fanout(bütün kuyruklara) gönder
+) Net bir route key verilirse direct(sadece bir kuyruga) gibi çalışır
*Fanout : +)Route key belirtmeksizin bütün kuyruklara gider .Publisher(producer) tarafından gönderilen mesaj bütün kuyruklara gider
*Direct : +)route keye göre bağlı kuyruklara gönderilir