Yönetilen MQTT Bulutu

Yönetilen MQTT Broker Nedir? Avantajları, Maliyetleri ve Doğru Seçim

Yönetilen bir MQTT broker ile sunucu, sertifika ve yama yükünü üstlenmeden IoT mesajlaşmasını çalıştırırsınız. Yönetilen ve self-hosted seçenekleri karşılaştırın, dağıtım modelinizi seçin ve ilk client'ınızı beş dakikada bağlayın.

IoT cihazlarının TLS üzerinden buluttaki yönetilen bir MQTT broker'a bağlandığını gösteren diyagram
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

Yönetilen MQTT broker, sizin yerinize başkasının işlettiği bir MQTT sunucusudur: siz bir hostname, portlar ve kimlik bilgileri alırsınız; sunucular, sertifikalar, güncellemeler ve kapasite ise sağlayıcının sorumluluğundadır. Bu rehberde yönetilen bir MQTT broker'ın sizin için gerçekte neler yaptığını, kendi broker'ınızı çalıştırmaya kıyasla nasıl konumlandığını, projenize hangi dağıtım modelinin uyduğunu ve ilk client'ınızı yaklaşık beş dakikada nasıl bağlayacağınızı öğreneceksiniz.

MQTT'ye yeniyseniz önce MQTT Broker Nedir? yazısıyla başlayın, barındırma konusunu düşünmeye hazır olduğunuzda buraya dönün.

Yönetilen MQTT Broker Nedir?

MQTT hafif bir publish/subscribe protokolüdür. Cihazlar ve uygulamalar birbiriyle doğrudan konuşmaz; bir broker'a bağlanır, topic'lere mesaj yayınlar ve ilgilendikleri topic'lere abone olurlar. Broker, her mesajın içinden geçtiği tek altyapı bileşenidir; bu da onu hem basit hem de kritik kılar.

Self-hosted bir broker, broker yazılımını bir sanal makineye veya Kubernetes kümesine kurmanız ve etrafındaki her şeyin sahibi olmanız demektir. Yönetilen bir MQTT broker (bazen "hizmet olarak MQTT broker" ya da bulut MQTT broker olarak da anılır) bu sorumluluğu bir sağlayıcıya devreder. Pratikte elinize şunlar geçer:

  • mqtts://your-broker:8883 gibi herkese açık bir uç nokta ve tarayıcılar için WebSocket uç noktaları.
  • Her broker için üretilen kimlik bilgileri (kullanıcı adı, parola, client ID).
  • Geçerli ve otomatik yenilenen sertifikayla TLS.
  • Broker oluşturmak, topic'leri incelemek, bağlantıları izlemek ve alarmları yapılandırmak için bir web konsolu.
  • Bağlantı sayısı, mesaj boyutu ve QoS için plana bağlı limitler; bunları altyapıyı yeniden kurmak yerine plan değiştirerek yükseltebilirsiniz.

Cihazlarınız yine sade, standart MQTT konuşur. Bu önemlidir: tescilli bir SDK'ya kilitlenmezsiniz ve herhangi bir MQTT 3.1.1 veya MQTT 5.0 client kütüphanesi çalışır.

Yönetilen ve Self-Hosted MQTT Broker Karşılaştırması

Tek bir VM üzerinde açık kaynaklı bir broker çalıştırmak ilk gün kolaydır. Asıl iş sonra ortaya çıkar: sertifika yenilemeleri, işletim sistemi yamaları, bir cihaz filosunun aynı anda yeniden bağlandığı ilk an ve gece 3'te "broker ayakta mı?" sorusu. Sorumlulukların nasıl paylaşıldığı aşağıda.

Operasyon ve yama yönetimi

Self-hosted bir broker'da broker, TLS kütüphanesi ve işletim sistemi için güvenlik bültenlerini takip eder, bakım pencereleri planlar ve güncellemeleri test edersiniz. Yönetilen bir MQTT broker'da güncellemeleri broker filosuna sağlayıcı uygular; siz aynı hostname ve kimlik bilgileriyle çalışmaya devam edersiniz.

Ölçekleme

Self-hosted tek bir node'un tavanı CPU, bellek ve dosya tanımlayıcı limitleriyle belirlenir. Bu tavanı yükseltmek; yeniden boyutlandırma, çekirdek ayarı ve bazen yeniden tasarım gerektirir. Yönetilen bir hizmette daha yüksek limitli bir plana veya dedicated bir kümeye geçerek ölçeklersiniz. ConnectMQ ayrıca paylaşımlı altyapıyı plan bazlı kotalar, bağlantı seli (connection flood) koruması ve uyarlanabilir aşırı yük korumasıyla korur; böylece hatalı davranan bir client diğer herkesi çökertemez.

TLS sertifikaları

8883 portunda şifreli MQTT, client'ların güvendiği bir sertifika gerektirir. Self-hosting'de bu sertifikayı edinmek, yenileme otomasyonunu kurmak ve listener'ları yeniden başlatmak size kalır. ConnectMQ, 8883'te TLS'i ve 8084'te güvenli WebSocket'i Let's Encrypt sertifikasıyla sunar; böylece standart client'lar sertifikaya kutudan çıktığı gibi güvenir. Taşıma katmanı güvenliğine daha ayrıntılı bakmak için MQTT Güvenliği: En İyi Uygulamalar yazısına göz atın.

İzleme

Çıplak bir broker size loglar ve en iyi ihtimalle $SYS topic'lerini verir. Yine de dashboard'lara, alarmlara ve hangi cihazın bağlı olduğunu görmenin bir yoluna ihtiyacınız vardır. ConnectMQ portalı bir dashboard, canlı topic gezgini, tarayıcı içi MQTT client, ISA-95 seviyelerine göre düzenlenmiş cihaz görünümü, eşik tabanlı alarm kuralları ve alarm günlüğü içerir.

Toplam sahip olma maliyeti

Sunucu faturası nadiren pahalı kalemdir. Aşağıdaki tablo eforun nereye gittiğini karşılaştırır.

Alan Self-hosted broker Yönetilen MQTT broker
Sunucular ve işletim sistemi Siz kurar, boyutlandırır ve yamalarsınız Sağlayıcı işletir
Broker güncellemeleri Siz test eder ve yayarsınız Sağlayıcı yayar
TLS sertifikaları Siz üretir, yeniler ve dağıtırsınız Dahil ve otomatik yenilenir
Kimlik doğrulama Kullanıcıları ve depolamayı siz yapılandırırsınız Kimlik bilgileri portalda üretilir
Kötüye kullanım ve aşırı yük koruması Hız limitlerini ve engellemeleri siz kurarsınız Kotalar, flood koruması ve IP engelleme yerleşik
İzleme ve alarmlar Dashboard ve alarm sistemini siz kurarsınız Dashboard, topic gezgini ve alarm kuralları dahil
Ölçekleme Yeniden boyutlandırma, ayar, yeniden tasarım Plan değiştirme veya dedicated'a geçiş
Nöbet (on-call) Sizin ekibiniz Broker için sağlayıcı, uygulamalarınız için siz
İlk mesaja kadar geçen süre Saatler ile günler Dakikalar

Verinin ağınızdan asla çıkmaması gerektiğinde, katı air-gap gereksinimleriniz olduğunda veya boşta kapasitesi olan bir platform ekibiniz zaten varsa self-hosting hâlâ mantıklıdır. Ürün geliştiren ekiplerin çoğu için ise yönetilen bir MQTT broker, tekrar eden operasyon yükünü öngörülebilir bir aboneliğe dönüştürür.

Yönetilen MQTT Broker Dağıtım Modelleri

"Yönetilen" tek bir şey değildir. Doğru model, ne kadar izolasyona ihtiyaç duyduğunuza ve verinizin nerede durması gerektiğine bağlıdır. ConnectMQ, planlarıyla eşleşen dört model sunar.

Dağıtım modeli ConnectMQ planı Altyapıyı kim işletir Tipik kullanım
Serverless (paylaşımlı) Serverless Free / Serverless Paid ConnectMQ, paylaşımlı çok kiracılı bir kümede Prototipler, pilotlar, küçük ve orta ölçekli üretim filoları
Dedicated Dedicated ConnectMQ, yalnızca size ait izole bir kümede Kendi kaynaklarına ihtiyaç duyan üretim iş yükleri
Bring Your Own Cloud BYOC ConnectMQ, broker'ları sizin bulut hesabınızda yönetir Veri yerelliği, mevcut bulut taahhütleri
Self-managed Self Managed Enterprise Siz, lisanslı bir ConnectMQ broker ile Şirket içi (on-premises), regüle veya air-gapped sahalar

Serverless (paylaşımlı küme)

Makine boyutu seçmeden saniyeler içinde bir broker'a sahip olursunuz. Her kiracının topic'leri diğer kiracılardan ve public alandan izoledir. Ücretsiz Serverless planı deneme ve prototipler içindir: en fazla 25 eşzamanlı bağlantı, en fazla QoS 1, 256 KB mesajlar, retained message'lar ve wildcard abonelikler. Ücretli Serverless planı aynı paylaşımlı kümede bunu üretim limitlerine çıkarır: en fazla 1.000 bağlantı, QoS 2, 1 MB mesajlar ve shared subscription'lar.

Dedicated

Dedicated plan size ait izole bir broker kümesi verir. Gürültülü komşular denklemden çıkar ve kapasite iş yükünüz için ayrılır; operasyonu yine ConnectMQ yürütür.

BYOC (Bring Your Own Cloud)

BYOC ile broker'lar kendi bulut hesabınızda çalışır ve ConnectMQ tarafından yönetilir. Güvenlik ekibiniz verinin hesap sınırlarınız içinde kalmasını şart koştuğunda veya mevcut bulut harcamanızı kullanmak istediğinizde kullanışlıdır.

Self Managed Enterprise

Broker'ın sizin donanımınızda yaşaması gereken fabrikalar, enerji/su şirketleri ve benzeri sahalar için Self Managed Enterprise planı, kendi altyapınızda çalıştırdığınız lisanslı bir broker sağlar. Endüstriyel kurulumlara uygundur; ConnectMQ'nun ISA-95 ve Sparkplug B topic yapılarını nasıl ele aldığını görmek için MQTT Sparkplug B ve Unified Namespace yazısını okuyun.

Hangisini seçeceğinizden emin değil misiniz? IoT MQTT broker nasıl seçilir rehberimiz karar kriterlerini adım adım ele alıyor.

Hızlı Başlangıç: 5 Dakikada İlk Yönetilen MQTT Broker'ınız

Hesap oluşturmadan önce MQTT'yi deneyebilir, ardından kimlik bilgileriyle özel bir broker'a geçebilirsiniz.

Adım 0: Public broker üzerinde anonim test

broker.connectmq.com bir public alana sahiptir. Kullanıcı adı ve parola olmadan, benzersiz ve boş olmayan bir client ID ile bağlanın. Public alandaki her şeyi herkes okuyabilir; bu yüzden rastgele bir önek kullanın ve asla kişisel veya hassas veri göndermeyin.

Bir terminal açın ve abone olun:

mosquitto_sub -h broker.connectmq.com -p 1883 -i demo-sub-7f3k \
  -t "connectmq/demo/7f3k/#" -v

İkinci bir terminalde yayın yapın:

mosquitto_pub -h broker.connectmq.com -p 1883 -i demo-pub-7f3k \
  -t "connectmq/demo/7f3k/room1/temp" -m '{"temp":22.5}' -q 1

Abone connectmq/demo/7f3k/room1/temp {"temp":22.5} çıktısını basar. Public alan limitleri şunlardır: mesaj başına 64 KB, client başına saniyede 10 mesaj, client başına 10 abonelik ve en fazla 8 topic seviyesi. Test için yeterlidir; üretim için kendi broker'ınızı istersiniz.

Adım 1: Kaydolun ve bir broker oluşturun

  1. app.connectmq.com adresine gidin ve kaydolun. Ücretsiz Serverless planı kredi kartı gerektirmez.
  2. Bir plan seçin ve broker oluşturun.
  3. Üretilen kullanıcı adını, parolayı ve client ID'yi kopyalayın. Client ID'niz verilen değerle ve onun _suffix varyantlarıyla (örneğin YOUR_CLIENT_ID_sensor1) sınırlıdır; bu sayede tek bir broker altında birden fazla client çalıştırabilirsiniz.

Adım 2: mosquitto ile TLS üzerinden bağlanın

Şifreli MQTT için 8883 portunu kullanın. Sertifika Let's Encrypt tarafından verildiği için client'ı sisteminizin CA deposuna yönlendirmeniz yeterlidir. Linux ve macOS'ta:

mosquitto_sub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs \
  -u YOUR_USERNAME -P YOUR_PASSWORD -i YOUR_CLIENT_ID_sub \
  -t "factory1/line1/#" -v -V mqttv5
mosquitto_pub -h broker.connectmq.com -p 8883 --capath /etc/ssl/certs \
  -u YOUR_USERNAME -P YOUR_PASSWORD -i YOUR_CLIENT_ID_pub \
  -t "factory1/line1/cnc1/telemetry" -m '{"spindle_rpm":12000}' -q 1 -V mqttv5

Windows'ta --capath yerine --cafile ile bir CA paket dosyası verin.

Adım 3: Python ile bağlanın

Client'ı pip install paho-mqtt (2.x sürümü) ile kurun, ardından şunu çalıştırın:

import json
import ssl
import paho.mqtt.client as mqtt

BROKER = "broker.connectmq.com"
PORT = 8883
USERNAME = "YOUR_USERNAME"
PASSWORD = "YOUR_PASSWORD"
CLIENT_ID = "YOUR_CLIENT_ID"
TOPIC = "factory1/line1/cnc1/telemetry"


def on_connect(client, userdata, flags, reason_code, properties):
    print("Connected:", reason_code)
    client.subscribe(TOPIC, qos=1)
    client.publish(TOPIC, json.dumps({"spindle_rpm": 12000}), qos=1)


def on_message(client, userdata, msg):
    print(f"{msg.topic} -> {msg.payload.decode()}")


client = mqtt.Client(
    mqtt.CallbackAPIVersion.VERSION2,
    client_id=CLIENT_ID,
    protocol=mqtt.MQTTv5,
)
client.username_pw_set(USERNAME, PASSWORD)
client.tls_set(cert_reqs=ssl.CERT_REQUIRED)
client.on_connect = on_connect
client.on_message = on_message

client.connect(BROKER, PORT, keepalive=60)
client.loop_forever()

Önce Connected: Success, ardından kendi mesajınızı görmelisiniz. Portaldaki canlı topic gezginini açın; aynı mesaj orada da görünür.

Adım 4: İzleyin ve alarm kurun

Portaldan topic'leri geldikleri anda inceleyebilir, hangi client'ların bağlı olduğunu kontrol edebilir ve bir eşik alarm kuralı ekleyebilirsiniz (örneğin spindle_rpm bir limiti aştığında bildirim). VS Code kullanıyorsanız ConnectMQ eklentisi CONNACK, SUBACK ve PUBACK reason code'larını gösterir ve sayısal JSON alanlarını canlı olarak grafiğe döker.

Yönetilen MQTT Broker Seçmeden Önce Neleri Kontrol Etmelisiniz?

Hangi sağlayıcıyı değerlendirirseniz değerlendirin, şu soruları sorun:

  • Protokol desteği: Hem MQTT 3.1.1'i hem MQTT 5.0'ı destekliyor mu? Session expiry, message expiry, topic alias ve reason code gibi MQTT 5 özellikleri filoların işletilmesini kolaylaştırır.
  • Taşıma seçenekleri: TCP, TLS ve WebSocket (tarayıcı dashboard'ları için güvenli WebSocket dahil).
  • Kiracı izolasyonu: Paylaşımlı bir kümede topic'leriniz diğer müşterilere görünmez mi?
  • Kötüye kullanım koruması: Kotalar, flood koruması ve tekrarlanan hatalı kimlik bilgisi denemelerinin engellenmesi.
  • Tahmin edilen değil, bildirilen limitler: Bir MQTT 5 broker, limitlerini CONNACK içinde client'lara bildirebilir (Maximum QoS, Retain Available, Wildcard ve Shared Subscription Available, Receive Maximum). ConnectMQ bunu yapar; böylece client'lar sessizce başarısız olmak yerine kendilerini uyarlayabilir.
  • Yükseltme yolu: Cihazları yeniden yazmadan ücretsiz paylaşımlı broker'dan dedicated'a, kendi bulutunuza veya şirket içine geçebiliyor musunuz?

ConnectMQ ile Başlayın

İlk yönetilen MQTT broker'ınızı app.connectmq.com adresinde oluşturun. Serverless planı ücretsizdir, kredi kartı gerektirmez ve dakikalar içinde size kimlik bilgileri, TLS ve topic gezginli bir portal sunar. İhtiyaçlarınız büyüdüğünde MQTT kodunuzu değiştirmeden Serverless Paid, Dedicated, BYOC veya Self Managed Enterprise'a geçin.

Sık Sorulan Sorular

Yönetilen MQTT broker nedir?

Yönetilen MQTT broker, bir sağlayıcı tarafından işletilen MQTT sunucusudur. Standart MQTT client'larıyla bir hostname ve kimlik bilgileri kullanarak bağlanırsınız; sunucular, güncellemeler, TLS sertifikaları, kapasite ve koruma ise sağlayıcının işidir.

Yönetilen MQTT broker, self-hosting'den daha pahalı mı?

Abonelik ücreti tek bir VM'den yüksek görünebilir; ancak self-hosting de yama, sertifika, izleme ve nöbet için mühendislik zamanına mal olur. Çoğu ekip için toplam sahip olma maliyeti yönetilen bir hizmetle daha düşüktür ve ConnectMQ başlangıç için ücretsiz bir Serverless planı sunar.

Mevcut MQTT client kütüphanelerimi kullanabilir miyim?

Evet. ConnectMQ, TCP, TLS ve WebSocket üzerinden standart MQTT 3.1.1 ve MQTT 5.0 konuşur; bu nedenle Eclipse Paho, MQTT.js ve PubSubClient gibi kütüphaneler değişiklik yapmadan çalışır.

ConnectMQ ile hangi portları kullanmalıyım?

Üretimde TLS üzerinden MQTT için 8883'ü, güvenli WebSocket için 8084'ü kullanın. 1883 (TCP) ve 8083 (WebSocket) portları public broker üzerinde hızlı testler için kullanılabilir.

Verilerimi kendi bulutumda veya şirket içinde tutabilir miyim?

Evet. BYOC planı, ConnectMQ tarafından yönetilen broker'ları kendi bulut hesabınızda çalıştırır; Self Managed Enterprise planı ise kendi altyapınızda çalıştırdığınız lisanslı bir broker sağlar.

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