Yönetilen MQTT Bulutu

Hizmet Olarak MQTT Broker: Neler Alırsınız, Neler Almazsınız

Hizmet olarak MQTT broker sunucu işini ortadan kaldırır, ancak her sorumluluğu değil. Sağlayıcının üstlendikleri ile sizde kalanlar arasındaki net ayrımı ve pratik bir entegrasyon desenini burada bulabilirsiniz.

Yama ve TLS gibi sağlayıcı sorumluluklarını cihazlar ve veri gibi müşteri sorumluluklarından ayıran hizmet olarak 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

Hizmet olarak MQTT broker, bir sunucuyu kendiniz kurmadan, yamalamadan veya izlemeden çalışan ve güvenli bir broker uç noktası sunar. Bu yazı hangi sorumlulukların sağlayıcıya geçtiğini, hangilerinin sizde kaldığını ve bir broker'ın içermediği parçaları nasıl kuracağınızı tam olarak açıklıyor; böylece kaydolmadan önce doğru beklentileri belirleyebilirsiniz.

"Hizmet Olarak MQTT Broker" Ne Anlama Gelir

Hizmet olarak, broker'ı çalıştırdığınız bir yazılım olarak değil, bir uç nokta olarak tükettiğiniz anlamına gelir. Bir hostname, portlar, kimlik bilgileri ve bir yönetim portalı alırsınız. Sağlayıcı makineleri, broker yazılımını, TLS sertifikalarını ve bunların arkasındaki operasyonel süreçleri yürütür. Cihazlarınızı ve uygulamalarınızı, kendi barındırdığınız bir broker'a bağlar gibi standart MQTT ile bağlarsınız.

Bu son nokta önemlidir. MQTT açık bir standart olduğu için aynı istemci kütüphaneleri, firmware ve araçlar, broker ister ofisinizdeki bir Raspberry Pi'da ister bir sağlayıcının bulutunda çalışsın, aynı şekilde çalışır. Protokolde yeniyseniz bir MQTT broker'ın ne yaptığı yazısıyla başlayın.

Sorumluluk Paylaşımı

Aşağıdaki tablo tipik bir paylaşımı gösteriyor. Sağdaki sütun somut bir referans olarak ConnectMQ'yu kullanıyor.

Alan Sağlayıcı Siz ConnectMQ sağlayıcı tarafını nasıl üstlenir
Sunucular ve işletim sistemi Evet Serverless ve Dedicated için altyapıyı çalıştırır; BYOC için hesabınızda yönetir
Broker yazılımı ve yamalar Evet MQTT 3.1.1 ve 5.0 destekli yönetilen broker
TLS sertifikaları Evet TLS 8883 ve Secure WebSocket 8084 üzerinde Let's Encrypt sertifikası
Uç noktalar ve portlar Evet TCP 1883, TLS 8883, WebSocket 8083, Secure WebSocket 8084 (yol /mqtt)
Kimlik bilgisi üretimi Evet Güvenle saklamak Broker başına üretilen kullanıcı adı, parola ve client ID
Kötüye kullanım koruması Evet Plan başına kotalar, flood koruması, tekrarlanan başarısız girişlerden sonra IP engelleme
Kiracı izolasyonu Evet Paylaşımlı planlarda çok kiracılı izolasyon, Dedicated'da izole kümeler
Görünürlük araçları Evet Kullanmak Tarayıcı içi istemci, canlı topic gezgini, dashboard, cihazlar görünümü, eşik uyarıları
Cihaz firmware'i ve kütüphaneler Evet
Topic tasarımı ve adlandırma Evet Kullanıyorsanız portal ISA-95 ve Unified Namespace topic'lerini algılar
Payload formatı ve doğrulama Evet Sparkplug B'yi görüntüleme için çözer ve ISA-95 topic'lerine yeniden yayımlar
Veri depolama ve geçmiş Evet Dahil değil; kendi abonenizi ve veritabanınızı çalıştırırsınız
Diğer sistemlerle entegrasyonlar Evet Dahil değil; Node-RED veya Telegraf gibi araçları MQTT istemcisi olarak bağlarsınız
İstemci tarafı güvenilirlik Evet Yeniden bağlanma, tamponlama, QoS seçimi

Neler Alırsınız

Çalıştırılacak sunucu yok

Hiçbir zaman Mosquitto kurmaz, systemd birimleri yapılandırmaz, dosya tanımlayıcı limitlerini yükseltmez veya işletim sistemi yamaları planlamazsınız. Serverless planlarda makine boyutlandırmayı da hiç düşünmezsiniz; ihtiyacınız olan limitlere sahip bir plan seçersiniz.

Yanlış yapılması zor güvenlik varsayılanları

TLS ilk günden herkesçe güvenilen bir sertifikayla hazırdır, kimlik bilgileri elle seçilmek yerine üretilir ve client ID'ler kendileri için üretilen kimlik bilgilerine bağlanır. Kaba kuvvet giriş denemeleri IP engellemeyle sonuçlanır. Kendi barındırılan broker'lar çoğu zaman bu korumaların bazıları olmadan yayına alınır ve bunlar sonradan eklenir. MQTT güvenlik en iyi uygulamaları yazımız aynı hikâyenin istemci tarafını ele alıyor.

Öngörülebilir limitler

Planlar yayımlanmış limitlerle gelir. ConnectMQ'da Serverless (Free) planı 25'e kadar bağlantıya, QoS 1'e kadar ve 256 KB mesajlara izin verir; ücretli Serverless planı 1.000'e kadar bağlantıya, QoS 2'ye, 1 MB mesajlara ve shared subscription'a izin verir. Dedicated, BYOC ve Self Managed Enterprise izole ve müşteri kontrolündeki kurulumları kapsar.

Neler olup bittiğini görmek için araçlar

İçini göremediğiniz bir broker'da hata ayıklamak zordur. İyi bir servis, tümü tarayıcıdan olmak üzere test mesajları yayımlamanın, canlı topic'leri izlemenin, hangi cihazların bağlı olduğunu görmenin ve değerler bir eşiği aştığında bildirim almanın bir yolunu sunar.

Neler Almazsınız

Bu konuda net olmak sonradan hayal kırıklığını önler.

Broker bir veritabanı değildir. Mesajları yönlendirir; geçmişi saklamaz. Retained message'lar topic başına yalnızca son değeri saklar. Zaman içindeki grafiklere ihtiyacınız varsa bir zaman serisi veritabanına veya historian'a ihtiyacınız vardır.

Broker bir entegrasyon platformu değildir. Bazı IoT platformları kural motorlarını, webhook'ları ve veritabanlarına veya diğer bulutlara bağlayıcıları bir arada sunar. ConnectMQ dahil saf bir hizmet olarak broker bunu yapmaz. Entegrasyonları, abone olan ve ileten bir istemci çalıştırarak kurarsınız.

Broker istemcileri güvenilir yapmaz. Yeniden bağlanma mantığı, yerel tamponlama, idempotent komutlar ve mantıklı QoS seçimleri sizin kodunuzda yer alır. İstemci desenleri için MQTT broker yüksek erişilebilirliği yazısına bakın.

Broker topic'lerinizi tasarlamaz. Net bir isim alanı sizin işinizdir ve diğer her şeyin ne kadar kolay olacağını belirler.

Entegrasyon Deseni: Abone Ol ve İlet

Hizmet olarak bir broker'ı yığınınızın geri kalanına bağlamanın dürüst ve taşınabilir yolu küçük bir abone sürecidir. Her broker'la çalışır ve ileride veritabanlarını veya sağlayıcıları değiştirme özgürlüğünüzü korur. İşte her telemetri mesajını SQLite'ta saklayan eksiksiz bir Python örneği. Gerektiğinde SQLite yerine PostgreSQL, InfluxDB veya bir dosya kullanın.

# store_telemetry.py - telemetriye abone olur ve SQLite'ta saklar
import json
import sqlite3
import time

import paho.mqtt.client as mqtt

DB = sqlite3.connect("telemetry.db", check_same_thread=False)
DB.execute("""CREATE TABLE IF NOT EXISTS telemetry (
                ts REAL, topic TEXT, payload TEXT)""")
DB.commit()

def on_connect(client, userdata, flags, reason_code, properties):
    print("connected:", reason_code)
    client.subscribe("acme/+/+/+/+/telemetry", qos=1)

def on_message(client, userdata, msg):
    try:
        payload = json.dumps(json.loads(msg.payload))   # JSON'u doğrula
    except ValueError:
        print("skipping non-JSON message on", msg.topic)
        return
    DB.execute("INSERT INTO telemetry VALUES (?, ?, ?)",
               (time.time(), msg.topic, payload))
    DB.commit()

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()
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 8883, keepalive=60)
client.loop_forever()

Aynı desen low-code araçlar için de geçerlidir. Node-RED bir mqtt-broker yapılandırma düğümüyle bağlanır, Telegraf MQTT consumer girdisini kullanır, Home Assistant ise MQTT entegrasyonunu kullanır. Her biri broker'ın sıradan bir MQTT istemcisidir.

Doğru Hizmet Seviyesini Seçmek

İhtiyacınız Değerlendirin
Öğrenme, demolar ve hızlı testler broker.connectmq.com adresindeki ücretsiz herkese açık MQTT broker
Bir prototip veya küçük pilot için özel bir broker Serverless (Free)
Büyüyen bir filo, QoS 2, daha büyük mesajlar, shared subscription Serverless (Paid)
Diğer kiracılardan izolasyon Dedicated
Broker'ın kendi bulut hesabınızın içinde olması BYOC
Broker'ı üretici yazılımıyla kendiniz işletmek Self Managed Enterprise

Hizmet almak ile kendiniz çalıştırmak arasında karar veriyorsanız kendi barındırılan ve yönetilen MQTT broker karşılaştırması ve MQTT broker barındırma seçenekleri karşılaştırması yazılarını okuyun. Bulut MQTT broker rehberi bu konunun tamamına genel bir bakış sunuyor.

Sağlayıcı Seçmeden Önce Sorulacak Sorular

  1. Hangi MQTT sürümleri ve taşıma katmanları destekleniyor?
  2. Her planda bağlantı, mesaj boyutu ve QoS için kesin limitler nelerdir?
  3. Kimlik bilgileri nasıl üretilir, yenilenir ve iptal edilir?
  4. Servis kota ihlallerini istemcilere nasıl bildirir?
  5. Hangi görünürlük araçları dahildir?
  6. Depolama, kural motorları veya bağlayıcılar gibi neler dahil değildir?
  7. Paylaşımlı planların ötesinde hangi izolasyon seçenekleri vardır?
  8. Yazılı SLA koşulları nelerdir?
  9. Cihazların yalnızca bir hostname ve kimlik bilgilerini bildiği düşünülürse ayrılmak ne kadar kolaydır?

ConnectMQ ile Hizmet Olarak MQTT'yi Deneyin

ConnectMQ broker'ı, TLS'i ve kotaları yönetir; siz de cihazlara ve veriye odaklanırsınız. app.connectmq.com adresinden kaydolun, kredi kartı olmadan ücretsiz Serverless planında bir broker oluşturun ve ilk istemcinizi dakikalar içinde bağlayın.

Sık Sorulan Sorular

Hizmet olarak MQTT broker neleri içerir?

Genellikle broker yazılımını, sunucuları, yamaları, TLS sertifikalarını, uç noktaları, kimlik bilgilerini, kotaları ve bir yönetim portalını. Cihazlar, topic'ler, payload'lar ve veri depolama sorumluluğu sizde kalır.

Yönetilen bir MQTT broker verilerimi saklar mı?

Broker mesajları yönlendirir ve topic başına yalnızca retained son değerleri tutar. Geçmiş için mesajları kontrolünüzdeki bir veritabanına yazan bir abone çalıştırın.

Node-RED veya Telegraf'ı hizmet olarak bir broker'a bağlayabilir miyim?

Evet. Portaldaki hostname, port ve kimlik bilgilerini kullanarak sıradan MQTT istemcileri olarak bağlanır, ardından veriyi ihtiyaç duyduğunuz yere iletirler.

Hizmet olarak bir MQTT broker'dan ayrılmak zor mudur?

MQTT bir standart olduğu için cihazların yalnızca yeni bir hostname'e ve kimlik bilgilerine ihtiyacı vardır. Tescilli özelliklerden kaçınmak geçiş maliyetlerini düşük tutar.

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