IoT MQTT broker seçimi, sahaya göndereceğiniz her cihazı etkileyen nadir altyapı kararlarından biridir; bu yüzden ilk firmware sürümünden önce doğru karar vermek kazandırır. Bu rehber size 12 maddelik bir kontrol listesi, herhangi bir sağlayıcıya sorabileceğiniz soruların tablosu ve beş dakikada çalıştırabileceğiniz hızlı bir uygulamalı test sunuyor. Bu arada ConnectMQ'nun her maddeye nasıl yanıt verdiğini de gösteriyoruz; yalnızca gerçekten sahip olduğu özellikleri kullanarak.
Hâlâ kendi broker'ınızı çalıştırmak ile bir hizmet kullanmak arasında karar veriyorsanız önce Yönetilen MQTT Broker Nedir? yazısını okuyun.
IoT MQTT Broker Seçimi Neden Önemli?
Broker her mesajın ortasında durur: cihazlar ona yayın yapar, uygulamalar onun üzerinden abone olur. Binlerce cihazın firmware'ine bir hostname, port, sertifika zinciri ve topic yapısı gömüldükten sonra broker değiştirmek pahalı bir göçe dönüşür. Broker aynı zamanda güvenlik sınırınızı, ölçekleme tavanınızı ve aylık işletme maliyetinizin büyük bir kısmını belirler.
Bu nedenle iyi bir seçim süreci "MQTT konuşuyor mu?" sorusunun ötesine bakar; protokol derinliğini, güvenliği, izolasyonu, operasyonları ve prototipten üretime giden yolu kontrol eder.
12 Maddelik IoT MQTT Broker Kontrol Listesi
1. Protokol Desteği: MQTT 3.1.1 ve MQTT 5.0
Mevcut cihaz ve kütüphanelerin çoğu MQTT 3.1.1 konuşurken, yeni projeler MQTT 5.0 özelliklerinden yararlanır: reason code'lar, session ve message expiry, topic alias'lar, shared subscription'lar ve istek/yanıt. Bir broker, eski ve yeni cihazların bir arada yaşayabilmesi için her ikisini yan yana desteklemelidir. Yalnızca CONNECT paketinin kabul edilip edilmediğine değil, hangi MQTT 5 özelliklerinin gerçekten uygulandığına bakın. Tam özellik listesi OASIS MQTT 5.0 spesifikasyonunda yer alır; MQTT 5 özellikleri rehberimiz ise bunları pratikte açıklar.
ConnectMQ: Shared subscription'lar, retained message'lar, session expiry, topic alias, message expiry interval, response topic ve reason code'lar dahil MQTT 3.1.1 ve MQTT 5.0'ı destekler. CONNACK, broker'ın limitlerini bildirir (Maximum QoS, Retain Available, Wildcard ve Shared Subscription Available, Receive Maximum).
2. Taşıma: TCP, TLS ve WebSocket
Kısıtlı ağlardaki cihazlar geliştirme sırasında düz TCP kullanabilir, ancak üretim trafiği şifrelenmelidir. Tarayıcılar ve dashboard'lar WebSocket üzerinden MQTT'ye, ideal olarak da HTTPS sayfalarından çalışabilmeleri için Güvenli WebSocket'e (WSS) ihtiyaç duyar.
ConnectMQ: 1883'te TCP, 8883'te TLS, 8083'te WebSocket ve 8084'te WSS (yol /mqtt); standart CA depolarının zaten güvendiği bir Let's Encrypt sertifikasıyla.
3. Kimlik Doğrulama
Cihazların kimliklerini nasıl kanıtladığını ve kimlik bilgilerinin nasıl verilip yenilendiğini sorun. En azından broker başına kimlik bilgileri ve client'ların client ID üzerinden birbirini taklit etmesine karşı koruma istersiniz.
ConnectMQ: Kullanıcı adı ve parola portalda broker başına verilir; client ID'ler verilen client ID ve onun _suffix varyantlarıyla (örneğin YOUR_CLIENT_ID_sensor1) sınırlıdır. Bütünlüklü bir bakış için MQTT güvenliği en iyi uygulamaları yazısına bakın.
4. Çok Kiracılılık ve İzolasyon
Paylaşımlı bir hizmette topic'leriniz diğer tüm müşterilere görünmez olmalıdır. Kendi müşterileriniz için bir ürün geliştiriyorsanız aynı garantiye bir seviye aşağıda da ihtiyacınız olur.
ConnectMQ: Her kiracının topic'leri diğer kiracılardan ve public test alanından izoledir. Altyapı seviyesinde de izolasyona ihtiyacınız varsa Dedicated plan size ait bir broker kümesi sunar.
5. Ölçeklenebilirlik ve Bağlantı Limitleri
Plan başına eşzamanlı bağlantı limitlerine, mesaj boyutu limitlerine ve cihaz kodunu değiştirmeden bir kademeden diğerine nasıl büyüdüğünüze bakın.
ConnectMQ: Serverless (Free) en fazla 25 eşzamanlı bağlantıya ve 256 KB mesajlara izin verir; Serverless (Paid) en fazla 1.000 bağlantı ve 1 MB mesaj sunar; Dedicated, BYOC ve Self Managed Enterprise daha büyük ve izole kurulumları karşılar.
6. QoS ve Oturumlar
QoS 1 ve 2 teslimat garantisi verir; kalıcı oturumlar yeniden bağlanan cihazların kuyruktaki mesajları almasını sağlar. Her planın hangi QoS seviyelerini desteklediğini ve oturumların ne kadar süre tutulduğunu doğrulayın. Arka plan için: MQTT QoS Seviyeleri.
ConnectMQ: Serverless (Free) planında QoS 1'e kadar, Serverless (Paid) planında QoS 2; session expiry plan başına sınırlandırılmıştır.
7. Retained ve Çevrimdışı Mesajlar
Retained message'lar her yeni subscriber'a bilinen son değeri anında verir; cihaz durumu ve yapılandırma için vazgeçilmezdir. Last Will mesajları ise bir cihaz düştüğünde sistemin geri kalanını haberdar eder.
ConnectMQ: Retained message'lar her planda desteklenir, Last Will mesajları spesifikasyonun gerektirdiği şekilde iletilir ve $SYS/broker/connection/{clientId}/state bir client'ın bağlantı durumunu gösterir.
8. Endüstriyel Standartlar: Sparkplug B ve ISA-95
Fabrikalar veriyi giderek daha fazla ISA-95 seviyelerini (kurum, saha, alan, hat, hücre) izleyen bir Unified Namespace içinde düzenliyor ve tipli, durum bilgili payload'lar için Sparkplug B kullanıyor. Bu kuralları anlayan bir broker entegrasyon emeğinden tasarruf ettirir.
ConnectMQ: ISA-95 / Unified Namespace topic yapılarını algılar, Sparkplug B'yi (Protobuf ve JSON) algılayıp çözer ve Sparkplug B'yi bir ISA-95 yapısına yeniden yayınlayabilir; örneğin spBv1.0/factory1/DDATA/line1/cnc1, connectmq/factory1/production/line1/cnc1/telemetry olur. Ayrıntılar Sparkplug B ve Unified Namespace yazısında.
9. Gözlemlenebilirlik
Bir cihaz gece 3'te sorun çıkardığında ne yayınladığını ve neden reddedildiğini görmeniz gerekir. Canlı topic görünümü, bağlantı durumu ve anlamlı hata kodları arayın.
ConnectMQ: Portal bir dashboard, tarayıcı içi MQTT client, canlı topic gezgini, ISA-95 seviyelerine göre düzenlenmiş cihaz görünümü, eşik alarm kuralları ve alarm günlüğü içerir. 0x97 (Quota exceeded) ve 0x89 (Server busy) gibi MQTT 5 reason code'ları retlerin nedenini açıklar; ConnectMQ VS Code eklentisi de geliştirme sırasında CONNACK, SUBACK ve PUBACK reason code'larını gösterir.
10. Dağıtım Modelleri
Bazı ekipler sıfır operasyon ister; bazılarıysa veriyi kendi bulut hesabında veya şirket içinde tutmak zorundadır.
ConnectMQ: Serverless (paylaşımlı küme), Dedicated (izole küme), BYOC (kendi bulut hesabınızda, ConnectMQ tarafından yönetilen broker'lar) ve Self Managed Enterprise (kendi altyapınızda lisanslı broker).
11. Kotalar ve Koruma
Yeniden bağlanma döngüsüne takılmış tek bir hatalı cihaz, broker'daki herkese zarar verebilir. Broker'ın kendisini ve kiracınızı nasıl koruduğunu sorun.
ConnectMQ: Plan bazlı kotalar, geçici yasaklamalarla bağlantı seli koruması, tekrarlanan hatalı kimlik bilgisi denemelerinden sonra IP engelleme ve uyarlanabilir aşırı yük koruması.
12. Maliyet ve Operasyon
Toplam maliyeti karşılaştırın: işlem gücü, depolama, yama, sertifika yenileme, izleme, nöbet süresi ve güncellemeler. Kredi kartı olmadan prototip geliştirmenize izin veren ücretsiz bir kademe, değerlendirme riskini azaltır.
ConnectMQ: Ücretsiz Serverless planı (kredi kartı gerekmez) ve üretim limitlerine ihtiyaç duyduğunuzda ücretli kademeleri olan tam yönetilen bir hizmet. Güncel plan ayrıntılarını connectmq.com üzerinden kontrol edin.
IoT MQTT Broker Sağlayıcınıza Neler Sormalısınız?
Bu tabloyu bir değerlendirme formu olarak kullanın. Kendi dokümanınıza kopyalayın ve her aday için bir sütun doldurun.
| Kriter | Sorulacak soru | ConnectMQ'nun yanıtı |
|---|---|---|
| Protokol | Hangi MQTT sürümleri ve hangi MQTT 5 özellikleri uygulanmış? | MQTT 3.1.1 ve 5.0; shared subscription, topic alias, expiry, response topic, reason code |
| Taşıma | TCP, TLS, WS ve WSS için hangi portlar? Hangi sertifika? | 1883, 8883, 8083, 8084; Let's Encrypt |
| Kimlik doğrulama | Kimlik bilgileri nasıl veriliyor? Bir cihaz başka bir client ID'yi taklit edebilir mi? | Broker başına kullanıcı adı/parola; client ID, verilen ID ve _suffix varyantlarıyla sınırlı |
| İzolasyon | Diğer müşteriler topic'lerimi görebilir mi? | Hayır, kiracı topic'leri izoledir |
| Ölçek | Plan başına bağlantı ve mesaj boyutu limitleri neler? | 25 / 256 KB (Free), 1.000 / 1 MB (Paid), daha fazlası için Dedicated |
| QoS | Plan başına hangi QoS seviyeleri? Session expiry? | QoS 1 (Free), QoS 2 (Paid); session expiry plan başına sınırlı |
| Durum | Retained message, Last Will, bağlantı durumu? | Evet; $SYS/broker/connection/{clientId}/state |
| Endüstriyel | Sparkplug B ve ISA-95 desteği? | Sparkplug B'yi algılar ve çözer, ISA-95 topic'lerine yeniden yayınlar |
| Gözlemlenebilirlik | Canlı topic'leri, cihazları ve alarmları görebilir miyim? | Portal dashboard'u, topic gezgini, cihaz görünümü, alarm kuralları |
| Dağıtım | Paylaşımlı, dedicated, kendi bulutum, şirket içi? | Serverless, Dedicated, BYOC, Self Managed Enterprise |
| Koruma | Bağlantı selleri ve brute-force denemeleri nasıl ele alınıyor? | Kotalar, flood yasakları, IP engelleme, aşırı yük koruması |
| Deneme | Kredi kartı olmadan test edebilir miyim? | Evet, Serverless (Free) ve public test broker |
Her sağlayıcıya neyin dahil olmadığını da sorun. Örneğin ConnectMQ broker'ın kendisine odaklanır: sunucu taraflı bir kural motoru, webhook'lar veya Kafka ya da veritabanlarına yerleşik veri köprüleri sunmaz; bunlara ihtiyacınız varsa veriyi kendi subscriber servisinizle tüketmeyi planlayın.
broker.connectmq.com Üzerinde Hızlı Test
Teknik dokümanların da bir sınırı var. Herhangi bir IoT MQTT broker'ı kısa listeye almadan önce gerçek bir client bağlayın. ConnectMQ public test broker'ı hesap gerektirmez; yalnızca boş olmayan bir client ID ve benzersiz bir topic öneki yeterlidir (public alandaki her şey başkaları tarafından okunabilir, bu yüzden yalnızca test verisi kullanın). Ayrıntılar ücretsiz public MQTT broker rehberimizde.
export ID=eval-$(openssl rand -hex 3)
# Terminal 1: MQTT 5 ile abone olun
mosquitto_sub -h broker.connectmq.com -p 1883 -i $ID-sub -t "connectmq/demo/$ID/#" -v -V mqttv5
# Terminal 2: TLS üzerinden retained bir durum ve bir telemetri ölçümü yayınlayın
mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -i $ID-pub -V mqttv5 -t "connectmq/demo/$ID/status" -m "online" -r -q 1
mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -i $ID-pub -V mqttv5 -t "connectmq/demo/$ID/telemetry" -m '{"temp": 23.1}'
# Retained mesajı temizleyin
mosquitto_pub -h broker.connectmq.com -p 1883 -i $ID-pub -t "connectmq/demo/$ID/status" -n -r
Windows veya macOS'ta --capath /etc/ssl/certs yerine bir PEM CA paketini gösteren --cafile kullanın. Test sırasında doğrudan gözlemleyebileceğiniz kriterleri kontrol edin:
- Gecikme: Mesajlar Terminal 1'de neredeyse anında görünmelidir.
- Retained message'lar: Subscriber'ı durdurup yeniden başlatın;
onlinedurumu hemen gelir. - Last Will: Bir client'a
--will-topic "connectmq/demo/$ID/status" --will-payload offlineekleyin ve süreci sonlandırın; subscriberofflinealır. - Limitler: Public alan mesaj başına 64 KB'a ve client başına saniyede 10 mesaja izin verir; bunları aşmak sessiz düşmeler yerine MQTT 5 reason code'ları döndürür.
Üretime yönelik bir değerlendirme için testi özel bir broker ve portaldan alınan kimlik bilgileriyle tekrarlayın:
mosquitto_sub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs -V mqttv5 -u YOUR_USERNAME -P YOUR_PASSWORD -i YOUR_CLIENT_ID -t "#" -v
ConnectMQ ile Başlayın
Bir IoT MQTT broker'ı değerlendirmenin en iyi yolu ona kendi cihazlarınızı bağlamaktır. app.connectmq.com adresinden kaydolun; Serverless (Free) planı kredi kartı gerektirmez. Bir broker oluşturun, üretilen kullanıcı adını, parolayı ve client ID'yi kopyalayın ve ilk mesajlarınızın canlı topic gezginine düşüşünü izleyin.
Sık Sorulan Sorular
IoT MQTT broker seçerken en önemli kriter nedir?
Önce güvenlik ve izolasyon gelir: şifreli taşıma, cihaz başına kimlik doğrulama ve diğer kiracılardan garanti edilmiş ayrım. Ardından MQTT 5 desteğini ve filo büyüklüğünüze uyan limitleri kontrol edin.
Bir IoT projesi için MQTT 5.0 şart mı?
Tam olarak değil; MQTT 3.1.1 hâlâ iyi çalışır. Ancak MQTT 5; reason code'lar, expiry aralıkları, shared subscription'lar ve istek/yanıt ekleyerek büyük sistemlerin işletilmesini kolaylaştırır. Her iki sürümü de destekleyen bir broker seçin.
ConnectMQ Sparkplug B'yi destekliyor mu?
Evet. ConnectMQ, Sparkplug B payload'larını (Protobuf ve JSON) algılar ve çözer; bunları bir ISA-95 Unified Namespace topic yapısına yeniden yayınlayabilir.
ConnectMQ'yu hesap oluşturmadan test edebilir miyim?
Evet. broker.connectmq.com'a kimlik bilgisi olmadan, boş olmayan bir client ID ve benzersiz bir topic önekiyle bağlanın. Public alanın herkes tarafından okunabildiğini unutmayın.
ConnectMQ'yu kendi bulutumda veya veri merkezimde çalıştırabilir miyim?
Evet. ConnectMQ, Serverless ve Dedicated planlarının yanı sıra BYOC (kendi bulut hesabınızda, ConnectMQ tarafından yönetilen broker'lar) ve kendi altyapınız için Self Managed Enterprise sunar.



