Yönetilen MQTT Bulutu

EMQX Cloud Alternatifi: Yönetilen MQTT'yi Gerçekten İhtiyaç Duyduğunuz Özelliklere Göre Seçmek

EMQX yetenekli ve zengin özellikli bir broker'dır. Alternatifleri değerlendiriyorsanız kendi gereksinimlerinizden başlayın. Bu rehber yaygın ihtiyaçları broker yetenekleriyle eşleştiriyor ve yalın, endüstri dostu bir broker'ın nerede uygun düştüğünü gösteriyor.

Endüstriyel cihazların yönetilen bir MQTT broker'a Sparkplug B verisi yayınladığı, EMQX Cloud alternatifi seçimi için özellik kontrol listesi 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

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:

  1. 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ı?
  2. Veriyi kim tüketiyor? Dashboard'lar, historian'lar, MES ya da ERP sistemleri, mobil uygulamalar?
  3. Hangi payload biçimleri geliyor? JSON, Sparkplug B Protobuf, düz değerler, tedarikçiye özgü ikili biçim?
  4. Bir yıl içinde kaç bağlantı ve saniyede kaç mesaj bekliyorsunuz?
  5. Hangi MQTT 5 özelliklerini kullanıyorsunuz? Shared subscription'lar, message expiry, topic alias'ları?
  6. Hangi dağıtım modeli gerekli? Paylaşımlı, dedicated, kendi bulut hesabınızda ya da kendi yönetiminizde?
  7. 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.

İ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.