Bir EMQX Cloud alternatifini değerlendirmek, ancak projenizin gerçekten hangi broker özelliklerine bağımlı olduğunu bildiğinizde anlamlıdır. Bu rehber bu gereksinimleri listelemenize, yönetilen MQTT hizmetlerinin sunduğu yeteneklerle eşleştirmenize ve yerleşik Sparkplug B çözümleme ile ISA-95 görünümlerine sahip yalın bir broker'ın geniş bir veri platformundan nerede daha uygun olduğunu görmenize yardımcı oluyor.
Bağlamıyla EMQX
EMQX, EMQ'nun yatay ölçeklenebilirliği ve SQL tarzı bir rule engine ile harici sistemlere veri entegrasyonları dahil geniş özellik setiyle bilinen, yaygın olarak kullanılan açık kaynak bir MQTT broker'ıdır. EMQX Cloud ise onu birkaç katmanda yönetilen bir hizmet olarak paketler. Mesaj işleme ve veritabanlarına yönlendirmeyi broker içinde yapmak isteyen ekipler için bu gerçek bir güçtür.
Özelliklerin kullanılabilirliği katmanlar arasında farklılık gösterebilir ve zamanla değişir; bu yüzden karşılaştırmadan önce her EMQX Cloud katmanının neleri içerdiğini EMQ'nun güncel dokümantasyonundan kontrol edin. Aynı tavsiye bu makaledeki her tedarikçi için geçerlidir.
Özellik Listelerinden Değil, Gereksinimlerden Başlayın
Özellik matrisleri en uzun listeye sahip ürünü ödüllendirir. Projeniz ise ihtiyacınız olanı en az operasyonel karmaşıklıkla yapan ürünü ödüllendirir. Herhangi bir tedarikçiye bakmadan önce şu soruların yanıtlarını yazın:
- Mesaj işleme nerede gerçekleşecek? Broker'ın içinde mi, ayrı bir serviste mi yoksa Node-RED ya da bir akış işlemci gibi zaten çalıştırdığınız araçlarda mı?
- Veriyi kim tüketiyor? Dashboard'lar, historian'lar, MES ya da ERP sistemleri, mobil uygulamalar?
- Hangi payload biçimleri geliyor? JSON, Sparkplug B Protobuf, düz değerler, tedarikçiye özgü ikili biçim?
- Bir yıl içinde kaç bağlantı ve saniyede kaç mesaj bekliyorsunuz?
- Hangi MQTT 5 özelliklerini kullanıyorsunuz? Shared subscription'lar, message expiry, topic alias'ları?
- Hangi dağıtım modeli gerekli? Paylaşımlı, dedicated, kendi bulut hesabınızda ya da kendi yönetiminizde?
- Gece saat 2'de hata ayıklamayı kim yapacak? Canlı topic'leri ve payload'ları görmek için hangi araçlara ihtiyaç duyacaklar?
İhtiyaçları Broker Yetenekleriyle Eşleştirmek
| İhtiyacınız | Aranacak yetenek | Her tedarikçiye sorulacak sorular | ConnectMQ |
|---|---|---|---|
| Veriyi broker içinden veritabanlarına yönlendirmek | Rule engine ve yerel veri entegrasyonları | Hangi entegrasyonlar hangi katmanda? | Sunulmuyor; Node-RED, Telegraf ya da kendi abonenizi kullanın |
| Sparkplug B'yi insanlar için çözümlemek | Sparkplug farkındalıklı araçlar | Çözümleme konsolda yerleşik mi? | Sparkplug B'yi (Protobuf/JSON) çözümler |
| Unified Namespace görünümleri | ISA-95 hiyerarşi farkındalığı | Kurum/tesis/alan/hat düzeyinde gezinebilir misiniz? | ISA-95/UNS topic'lerini tespit eder; ISA-95 seviyelerine göre cihaz görünümü |
| Sparkplug'ı okunabilir topic'lere normalleştirmek | Bir UNS yapısına yeniden yayınlama | Yapılandırılabilir mi yoksa özel kod mu? | Sparkplug B'yi ISA-95 topic'lerine yeniden yayınlar |
| Basit eşik alarmları | Topic değerleri üzerinde alarm kuralları | Yerleşik mi yoksa ayrı bir ürün mü? | Alarm günlüğüyle eşik alarm kuralları |
| Yük dengeli tüketiciler | MQTT 5 shared subscription'lar | Hangi katmanda mevcut? | Ücretli Serverless ve üzeri |
| İzolasyon | Dedicated kümeler, BYOC | Uç noktaları değiştirmeden yükseltebilir misiniz? | Dedicated, BYOC, Self Managed Enterprise |
| Tarayıcı uygulamaları | Secure WebSocket | Port ve path? | 8084, path /mqtt |
Desen açıktır: broker içinden veritabanlarına yönlendirme temel bir gereksinimse rule engine'li bir platform size daha uygun olabilir. Asıl sıkıntınız broker'dan akan endüstriyel veriyi anlamak ve düzenlemekse, yerleşik Sparkplug ve ISA-95 araçlarına sahip bir broker sizi oraya daha az hareketli parçayla daha hızlı ulaştırabilir.
Endüstriyel Ekipler Sparkplug B Çözümlemeyi Neden Önemser
Sparkplug B payload'ları Protobuf ile kodlanmıştır. Her broker onları iletir, ancak genel bir istemciyle abone olduğunuzda ikili bir gürültü görürsünüz. Devreye alma ve sorun giderme sırasında bu herkesi yavaşlatır. Broker konsolundaki yerleşik çözümleme, bir mühendisin metrik adlarını, değerleri ve zaman damgalarını doğrudan okumasını sağlar.
ConnectMQ bir adım daha ileri gider ve Sparkplug B verisini ISA-95 tarzı topic'lere yeniden yayınlar. Şu topic'teki bir mesaj:
spBv1.0/factory1/DDATA/line1/cnc1
şu topic'te de kullanılabilir hale gelir:
connectmq/factory1/production/line1/cnc1/telemetry
Basit bir dashboard gibi Sparkplug'ı anlamayan tüketiciler okunabilir topic'e abone olabilir. MQTT Sparkplug B ve Unified Namespace rehberi temel kavramları açıklıyor.
Rule Engine Olmadan Entegrasyon
Yalın bir broker seçerseniz entegrasyonlar onun dışında, standart MQTT istemcilerinde yaşar. Bu birçok ekip için tanıdık bir modeldir ve her parçanın değiştirilebilir kalmasını sağlar. İşte yeniden yayınlanan ISA-95 topic'lerini dinleyen ve her mesajı kendi depolama fonksiyonunuza aktaran minimal bir Python abonesi (paho-mqtt 2.x):
import json
import ssl
import paho.mqtt.client as mqtt
TOPIC = "connectmq/factory1/production/#"
def store(topic, payload):
# Kendi historian, veritabanı ya da HTTP çağrınızla değiştirin
print(f"{topic}: {payload}")
def on_connect(client, userdata, flags, reason_code, properties):
if reason_code.is_failure:
print("Connect failed:", reason_code)
return
client.subscribe(TOPIC, qos=1)
def on_message(client, userdata, msg):
try:
payload = json.loads(msg.payload)
except ValueError:
payload = msg.payload.decode(errors="replace")
store(msg.topic, payload)
client = mqtt.Client(
mqtt.CallbackAPIVersion.VERSION2,
client_id="YOUR_CLIENT_ID",
protocol=mqtt.MQTTv5,
)
client.username_pw_set("YOUR_USERNAME", "YOUR_PASSWORD")
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 8883, keepalive=60)
client.loop_forever()
store fonksiyonunu bir InfluxDB yazması, MES'inize bir HTTP POST ya da mevcut veri hattınıza bir mesajla değiştirin. Node-RED ve Telegraf aynı işi kod yerine yapılandırmayla yapabilir.
Bir Deneme Sürecinde Netleştirilecek Sorular
- Payload görünürlüğü. Gerçek bir PLC gateway'i ya da edge düğümü bağlayın. Ekibiniz dakikalar içinde verisini konsolda okuyabiliyor mu?
- Topic düzeni. Broker tesis hiyerarşisini görmenize yardımcı oluyor mu, yoksa yalnızca düz bir topic listesi mi sunuyor?
- Entegrasyon eforu. Tek bir veri akışını historian'ınıza almak ne kadar sürüyor?
- Sınırlar. Planınızın sınırında ne oluyor? ConnectMQ'da bir kotanın aşılması, istemcilerinizin loglayıp ele alabileceği MQTT 5 reason code 0x97 (quota exceeded) döndürür.
- Çıkış yolu. Yalnızca bağlantı ayarlarını değiştirerek cihazları başka bir yere taşıyabilir misiniz? Bkz. MQTT tedarikçi bağımlılığı.
Yalnızca Özellikleri Değil, Ekip Becerilerini de Düşünün
Bir yetenek ancak ekibiniz onu işletebiliyorsa faydalıdır. Broker içindeki bir rule engine güçlüdür, ancak kurallar üretim mantığınızın bir parçası olur ve diğer kodlar gibi sürümleme, test ve gözden geçirme gerektirir. Aynı şekilde entegrasyonları harici araçlara taşımak, birinin bu araçları çalıştırıp izlemesi gerektiği anlamına gelir. Hiçbir yaklaşım bedava değildir.
İki yıl sonra veri yolunun sahibinin kim olacağını sorun. Node-RED akışlarıyla rahat olan otomasyon mühendisleri, görsel olarak görüp düzenleyebilecekleri entegrasyonları tercih edebilir. Mevcut bir akış işleme altyapısına sahip bir yazılım ekibi, broker'ın basit ve hızlı bir taşıma katmanı olarak kalmasını tercih edebilir. İkisine de sahip olmayan bir ekip ise daha fazlasını bir arada sunan bir platforma değer verebilir. Mimariyi onu sürdürecek insanlarla eşleştirmek, genellikle bir karşılaştırma tablosundaki herhangi bir özellikten daha önemlidir.
Yalın Bir Broker'ın Doğru Seçim Olmadığı Durumlar
Karşılaştırmaya karşı adil olmak gerekirse: veri alımını, dönüştürmeyi, birçok veritabanına yönlendirmeyi ve akış işlemeyi tek bir üründe istiyorsanız, yerleşik rule engine ve veri entegrasyonlarına sahip bir broker sizi o katmanı inşa etmekten kurtarır. ConnectMQ rule engine, webhook'lar, yerel veritabanı köprüleri ya da broker kümeleme kontrolleri sunmaz. Ekibinizin hangi mimarinin sahibi olmak istediğine göre seçin.
Yalın, Endüstri Dostu Bir Broker Deneyin
Sparkplug çözümlemeyi ve ISA-95 görünümlerini kendi verilerinizle ücretsiz test edebilirsiniz. Kredi kartı gerektirmeden ücretsiz bir Serverless broker başlatın, bir edge düğümünü ya da gateway'i ona yönlendirin ve canlı topic gezginini ile cihaz görünümünü açın. Daha geniş bağlam için bulut MQTT broker rehberini okuyun, HiveMQ Cloud alternatifi çerçevemizle karşılaştırın ve barındırılan bir MQTT broker'ın sizin için neleri üstlendiğini öğrenin. Daha fazlası connectmq.com adresinde.
Sık Sorulan Sorular
EMQX istemcileri ConnectMQ'ya değişiklik yapmadan bağlanabilir mi?
Standart MQTT 3.1.1 veya 5.0 kullanan istemciler uyumlu her broker ile çalışır. Tedarikçiye özgü özelliklere güvenmiyorsanız yalnızca host, port, kimlik bilgileri ve client ID değişir.
ConnectMQ'da EMQX'teki gibi bir rule engine var mı?
Hayır. İşleme ve entegrasyonlar Node-RED, Telegraf ya da kendi servisleriniz gibi harici MQTT istemcileri tarafından yapılır.
Sparkplug kullanmak için Sparkplug B çözümleme gerekli mi?
Hayır, her broker Sparkplug B taşıyabilir. Broker konsolundaki çözümleme yalnızca veriyi ek araç gerektirmeden insanlar için okunabilir kılar.
Güncel EMQX Cloud özelliklerini nereden kontrol ederim?
Katmanlar, sınırlar ve özellikler zamanla değiştiğinden EMQ'nun resmi dokümantasyon ve fiyatlandırma sayfalarını kullanın.



