Yönetilen MQTT Bulutu

Girişimler İçin MQTT Broker Seçimi: Ücretsiz Başlayın, Bağımlılık Olmadan Ölçeklenin

Erken aşama IoT ekipleri, ilk gün hiçbir maliyeti olmayan ve sonradan onları tuzağa düşürmeyen bir broker'a ihtiyaç duyar. Bu rehber neyi seçeceğinizi, nelerden kaçınacağınızı ve büyümeyi nasıl planlayacağınızı anlatıyor.

Küçük bir ekibin prototip cihazlarının bir bulut broker üzerinde daha büyük bir filoya dönüştüğünü gösteren girişimler için MQTT broker illüstrasyonu
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Girişimler için MQTT broker seçmek, köklü bir kurum için seçmekten farklı bir problemdir: bugün ücretsiz veya neredeyse ücretsiz, hızlı entegre edilebilen ve iş büyürse kolayca bırakılabilen ya da ölçeklenebilen bir şeye ihtiyacınız vardır. Bu rehber erken aşama IoT ekiplerine pratik bir karar süreci, sizi taşınabilir tutan bir firmware tasarımı ve ücretsiz bir ConnectMQ Serverless broker'dan dedicated kapasiteye uzanan aşamalı bir plan sunuyor.

Girişimlerin Bir Broker'dan Gerçekte İhtiyaç Duydukları

Bir girişimin kısıtları zaman, para ve belirsizliktir. Gelecek yıl elli cihazınız mı yoksa elli bin cihazınız mı olacağını, müşterilerinizin BT ekiplerinin hangi protokolleri kabul edeceğini ya da ürününüzün hangi özelliklerinin pazarla temastan sağ çıkacağını henüz bilmezsiniz. Bu da kısa bir gereksinim listesine yol açar:

  • Sıfır operasyon. Bir broker VM'ini yamalamaya harcanan her saat, ürüne harcanmayan bir saattir. Tam yönetilen bir MQTT servisi bu işi ortadan kaldırır.
  • Küçük ölçekte ücretsiz veya çok ucuz. MVP'niz üretim filoları için tasarlanmış altyapı maliyetlerini taşımamalıdır.
  • Standart protokol, tescilli SDK yok. Düz MQTT 3.1.1 ve 5.0, her cihazda her kütüphanenin çalışması ve ileride sağlayıcı değiştirebilmeniz anlamına gelir.
  • İlk günden TLS ve kimlik bilgileri. Güvenliği sonradan eklemek pahalıdır; şifreli bağlantılarla başlayın.
  • Görünür bir büyüme yolu. 25, 1.000 ve 10.000 bağlantıda ne olacağını oraya varmadan önce bilmek istersiniz.

Seçeneklerin Karşılaştırması

Seçenek Başlangıç eforu MVP aşamasında maliyet Bağımlılık riski Notlar
Herkese açık test broker'ı Yok Ücretsiz Yok Demolar için harika, müşteri verisi için asla
Bir VM'de kendi barındırılan Mosquitto Orta Düşük VM maliyeti artı sizin zamanınız Düşük Yama, TLS, izleme ve kesintiler size aittir
Tescilli SDK'lı bulut IoT platformu Orta Değişken Yüksek Cihaz kodu üretici API'lerine bağlıdır
Yönetilen serverless MQTT broker Düşük Ücretsiz katman mevcut Standart MQTT ile düşük Ne zaman yükselteceğinizi kotalar belirler

Çoğu erken aşama ekip için doğru cevap, gerçek her şey için yönetilen serverless bir broker ve atılacak deneyler için herkese açık bir broker'dır. broker.connectmq.com adresindeki herkese açık MQTT test broker'ı ilk deneme için idealdir: anonim, boş olmayan benzersiz herhangi bir client ID ve connectmq/demo/k29xq/... gibi benzersiz bir önek altındaki topic'ler. Oradaki her şey herkes tarafından okunabildiği için, bir pilot müşterinin verisi işin içine girdiği anda özel bir broker'a geçin.

Aşama Aşama Plan

Aşama 1: Deneme (Günler)

Cihazdan dashboard'a döngüyü kanıtlamak için herkese açık broker'ı kullanın. Topic'leri kontrol etmek için mosquitto_pub ve mosquitto_sub kullanın:

mosquitto_sub -h broker.connectmq.com -p 1883 -i spike-sub-k29xq -t 'connectmq/demo/k29xq/#' -v
mosquitto_pub -h broker.connectmq.com -p 1883 -i spike-pub-k29xq \
  -t 'connectmq/demo/k29xq/dev1/telemetry' -m '{"temp":22.4}'

Aşama 2: MVP ve Pilotlar (Haftalardan Aylara)

Ücretsiz bir ConnectMQ Serverless broker oluşturun. 25'e kadar bağlantıyı, QoS 1'e kadar ve 256 KB mesajları destekler; bu da birkaç pilot ünite, bir backend işçisi ve birkaç dashboard'u karşılar. 8883'te TLS, 8083 ve 8084'te WebSocket, tarayıcı içi bir istemci, bir topic gezgini, bir dashboard ve eşik uyarı kuralları elde edersiniz; bu da kendi yönetim arayüzünüzü kurmadan yatırımcılara demo yapmak için çoğu zaman yeterlidir.

Aşama 3: İlk Gelirler (Yüzlerce Cihaz)

Serverless (Paid) planına geçin: 1.000'e kadar bağlantı, QoS 2, 1 MB mesajlar ve shared subscription; böylece $share/workers/devices/+/telemetry ile tek bir akışı bölen birkaç backend işçisi çalıştırabilirsiniz. QoS 2'yi her yerde açmadan önce MQTT QoS seviyeleri yazısını okuyun; çoğu telemetri QoS 1 ile sorunsuzdur.

Aşama 4: Ölçek ve Kurumsal Müşteriler

İzolasyona, öngörülebilir kapasite payına veya bir güvenlik incelemesi için cevaplara ihtiyaç duyduğunuzda dedicated MQTT broker seçeneğine geçin. Büyük bir müşteri broker'ın kendi bulut hesabında çalışmasında ısrar ederse, BYOC bunu karşılar ve ConnectMQ yine de onu işletir.

İlk Günden Taşınabilirlik İçin Tasarlayın

Bağımlılık nadiren broker'ın kendisinden kaynaklanır. Firmware ve backend'inizdeki kısayollardan kaynaklanır. Bu alışkanlıklar taşınma özgürlüğünüzü korur.

Bağlantı Ayarlarını Kodun Dışında Tutun

Hostname ve kimlik bilgilerini asla firmware'e değiştiremeyeceğiniz sabitler olarak derlemeyin. Bunları üretim sırasında veya güvenli bir ilk kurulum akışıyla sağlayın ve kalıcı depolamada saklayın. İşte Preferences kütüphanesini kullanan bir ESP32 için minimal bir desen:

#include <Preferences.h>

struct MqttConfig {
  String host;
  uint16_t port;
  String user;
  String pass;
  String clientId;
};

MqttConfig loadMqttConfig() {
  Preferences prefs;
  prefs.begin("mqtt", true);  // salt okunur
  MqttConfig cfg;
  cfg.host = prefs.getString("host", "broker.connectmq.com");
  cfg.port = prefs.getUShort("port", 8883);
  cfg.user = prefs.getString("user", "");
  cfg.pass = prefs.getString("pass", "");
  cfg.clientId = prefs.getString("cid", "");
  prefs.end();
  return cfg;
}

void saveMqttConfig(const MqttConfig& cfg) {
  Preferences prefs;
  prefs.begin("mqtt", false);
  prefs.putString("host", cfg.host);
  prefs.putUShort("port", cfg.port);
  prefs.putString("user", cfg.user);
  prefs.putString("pass", cfg.pass);
  prefs.putString("cid", cfg.clientId);
  prefs.end();
}

Bu yapı yerindeyken serverless'tan dedicated bir broker'a ya da tamamen başka bir sağlayıcıya geçmek, bir firmware sürümü değil, bir yapılandırma gönderimi olur.

Üretici SDK'sı Yerine Düz MQTT Kullanın

Yaygın kullanılan açık kütüphanelere bağlı kalın: ESP32'de PubSubClient veya AsyncMqttClient, Python'da paho-mqtt, Node.js'te ve tarayıcılarda MQTT.js. Bunlar standartlara uyan her broker'la çalışır.

Topic Yapınızın Sahibi Olun

Topic'leri sağlayıcınıza göre değil, alanınıza göre tasarlayın: acme/{customerId}/{siteId}/{deviceId}/telemetry. Bir IoT MQTT broker nasıl seçilir rehberimiz daha fazla değerlendirme kriteri sunuyor; iyi bir topic yapısı her broker değişikliğinden sağ çıkar.

Entegrasyonları Broker'ın Dışında Tutun

Telemetriyi kendi abone servisiniz, Node-RED akışınız veya Telegraf ile veritabanınıza yazın. Bu mantık sizinle birlikte taşınır. ConnectMQ bilinçli olarak broker'ı bir broker olarak tutar; entegrasyonlar normal MQTT istemcileri olarak çalışır ve bu da zaten tam olarak istediğiniz taşınabilir desendir.

Girişimlerin Sık Yaptığı Hatalar

  1. Herkese açık bir broker'a yönlendirilmiş demo ünitelerini müşteriye göndermek. Bir müşteri verisinin herkes tarafından okunabildiğini fark edene kadar çalışır.
  2. Her cihaz için tek bir ortak kullanıcı adı. Ele geçirilmiş tek bir üniteyi iptal edemezsiniz. Cihaz başına ayrı kimlik bilgileri veya en azından ayrı client ID'ler kullanın.
  3. Yinelenen client ID'ler. Aynı ID'ye sahip iki cihaz bir döngü içinde birbirinin bağlantısını keser.
  4. Yeniden bağlanma backoff'unun olmaması. Bir kesintiden sonra her cihaz broker'a aynı anda yüklenir. Jitter'lı üstel backoff ekleyin.
  5. QoS 2'yi "daha güvenilir, o hâlde her zaman daha iyi" olarak görmek. Gidiş-dönüşler ve durum ekler; tüketicileri idempotent yapın ve QoS 1 kullanın.
  6. Devasa payload'lar. Görüntüleri veya logları nesne depolamaya gönderin ve bir referans yayımlayın.
  7. Durum topic'inin olmaması. Dashboard'unuzun hangi cihazların çevrimdışı olduğunu bilmesi için bir Last Will mesajı ve retained bir durum topic'i kullanın.

Basit Bir Karar Kontrol Listesi

Karar vermeden önce bunları ekibinizle yanıtlayın:

  1. Bir saatten kısa sürede bir broker oluşturup TLS üzerinden bir cihaz bağlayabiliyor muyuz?
  2. Protokol, zorunlu SDK olmadan düz MQTT 3.1.1 veya 5.0 mı?
  3. Ücretsiz katman limitleri belgelenmiş mi ve ilk hangisine ulaşacağımızı biliyor muyuz?
  4. Daha fazla bağlantıya, ardından izole kapasiteye net bir yükseltme yolu var mı?
  5. Yalnızca yapılandırmayı değiştirerek başka bir broker'a geçebilir miyiz?
  6. Portal, ilk gün kendi araçlarımızı kurmaktan kaçınacak kadar görünürlük (topic gezgini, dashboard, uyarılar) sağlıyor mu?

Cevaplar evet ise bir girişime uyan bir broker'ınız var demektir. Barındırma modellerine daha geniş bir bakış için bulut MQTT broker rehberimize bakın.

MVP'nizi ConnectMQ'da Başlatın

app.connectmq.com adresinde kredi kartı gerekmeden ücretsiz bir Serverless broker oluşturun. Dakikalar içinde kimlik bilgilerinizi, TLS ve WebSocket uç noktalarını ve ürününüzü tanıtmak için portal araçlarını alırsınız. Filo büyüdüğünde ConnectMQ, aynı standart protokol üzerinde Serverless (Paid), Dedicated ve BYOC planları sunar; böylece ölçeklemek bir yeniden yazım değil, bir yükseltmedir.

Sık Sorulan Sorular

Kısıtlı bütçeli girişimler için en iyi MQTT broker hangisidir?

Gerçekten ücretsiz bir katmana ve standart MQTT desteğine sahip yönetilen bir broker; böylece MVP süresince hiçbir şey ödemez ve operasyon işinden kaçınırsınız. Örneğin ücretsiz bir Serverless plan, TLS ile 25'e kadar bağlantıyı destekler.

Bir girişim bunun yerine Mosquitto'yu kendisi mi barındırmalı?

Barındırabilir, ancak o zaman yama, sertifikalar, izleme ve kesintiler size ait olur. Çoğu küçük ekip bu zamanı ürüne harcayarak daha fazla değer elde eder.

Bir MQTT broker'da sağlayıcı bağımlılığından nasıl kaçınırız?

Düz MQTT kütüphaneleri kullanın, bağlantı ayarlarını yapılandırılabilir tutun, kendi topic yapınızı tasarlayın ve entegrasyonları harici aboneler olarak çalıştırın.

Bir girişim ne zaman dedicated bir broker'a geçmeli?

Bağlantı kotalarına yaklaştığınızda, sabit yük altında öngörülebilir performansa ihtiyaç duyduğunuzda veya bir müşterinin güvenlik incelemesi izole altyapı istediğinde.

İlgili yazılar

BYOC MQTT Broker: Kendi Bulutunuzu Getirin Modeli Açıklandı

BYOC MQTT broker sizin bulut hesabınızda çalışır ama bir sağlayıcı tarafından işletilir. Modelin nasıl işlediğini, sorumluluk paylaşımını ve hesabınızı buna nasıl hazırlayacağınızı öğrenin.

7 dk okuma

Google Cloud IoT Core Alternatifi: Kapanış Sonrası Seçenekler ve Geçiş

Google, Cloud IoT Core'u Ağustos 2023'te kullanımdan kaldırdı. Bu rehber gerçekçi alternatifleri karşılaştırıyor, IoT Core kavramlarını standart MQTT'ye eşliyor ve verileriniz Google Cloud'a akmaya devam ederken cihazlarınızı yönetilen bir broker'a nasıl taşıyacağınızı gösteriyor.

7 dk okuma

Saniyede MQTT Mesaj Sayısı: Verim Nasıl Tahmin Edilir ve Ölçülür

MQTT verim planlaması birkaç formüle ve tek bir dürüst ölçüme dayanır. Saniyedeki gelen ve giden mesaj sayısını nasıl tahmin edeceğinizi, tepe değerleri nasıl hesaba katacağınızı ve sonucu bir broker planına nasıl eşleyeceğinizi öğrenin.

6 dk okuma

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.