Rehberler

En İyi MQTT Broker’ları Karşılaştırması: Mosquitto, EMQX, HiveMQ ve Yönetilen Servisler

Dürüst bir MQTT broker karşılaştırması: Mosquitto, EMQX, HiveMQ, VerneMQ, NanoMQ ve yönetilen bulut broker’ları — dil, cluster, MQTT 5, lisans ve seçim.

Güncellendi · 8 dk okuma

Her MQTT broker’ı mesajları publisher’lardan subscriber’lara yönlendirir ve ciddiye alınabilecek her broker MQTT 3.1.1 ile 5’i destekler. Asıl farklar ölçek, operasyon ve lisanslama konusundadır: nasıl cluster kurduğu, hangi dille yazıldığı, çalıştırmanın maliyeti ve bakımını kimin yaptığı. Bu karşılaştırma iyi bilinen, doğrulanabilir gerçeklere dayanır — uydurma benchmark yok — ve seçim yapmanız için pratik bir rehberle sona erer.

Hemen bir broker denemek mi istiyorsunuz? Public broker listemizde kullanıma hazır test endpoint’leri bulunur ve bunların herhangi birine doğrudan tarayıcıdan bağlanabilirsiniz.

Tarayıcınızdan bir public broker’a bağlanın

Bir bakışta MQTT broker’ları

Filtreleyebileceğiniz özellik bazlı bir matris için etkileşimli MQTT broker karşılaştırmasını kullanın.

BrokerDilÜcretsiz / açık kaynak sürümde cluster desteğiMQTT 5Lisans (ücretsiz sürüm)
Eclipse MosquittoCHayır (yalnızca bridge)EvetEPL-2.0 / EDL-1.0
EMQXErlang/OTPEvetEvetEski sürümler için Apache 2.0; yeni sürümler Business Source License kullanır
HiveMQ Community EditionJavaHayır (cluster desteği HiveMQ Enterprise’dadır)EvetApache 2.0
VerneMQErlang/OTPEvetEvetApache 2.0
NanoMQCHayır (yalnızca bridge)EvetMIT

Eclipse Mosquitto

Mosquitto en yaygın kullanılan açık kaynak broker’dır ve küçük ile orta ölçekli kurulumlar için varsayılan tercihtir. C ile yazılmıştır, bir Raspberry Pi’da veya edge gateway’de rahatça çalışır ve tek bir metin dosyasıyla yapılandırılır. MQTT eğitimlerinin çoğunun kullandığı mosquitto_pub ve mosquitto_sub komut satırı client’larıyla birlikte gelir.

  • Güçlü yanları: çok küçük kaynak tüketimi, basit kurulum, olgunluk; çoğu Linux dağıtımında paket olarak ve resmi bir Docker imajı olarak mevcuttur.
  • Sınırları: tek node — yerleşik cluster desteği yoktur; broker’ları birbirine bridge ile bağlayabilirsiniz ama session’lar paylaşılmaz. Kimlik doğrulama dosya veya plugin tabanlıdır.

Mosquitto kurulumu, mosquitto.conf oluşturucu ve test.mosquitto.org public broker’ı ile başlayın.

EMQX

EMQ Technologies tarafından geliştirilen EMQX, Erlang/OTP ile yazılmıştır ve cluster kurulumu ile çok yüksek sayıda eşzamanlı bağlantı için tasarlanmıştır. Saf MQTT’nin ötesinde SQL benzeri bir rule engine, veritabanları ve streaming platformlarıyla veri entegrasyonları, bir web dashboard’u ve yerleşik kimlik doğrulama ile yetkilendirme backend’leri sunar.

  • Güçlü yanları: yerleşik cluster desteği, kutudan çıktığı haliyle zengin özellik seti, iyi gözlemlenebilirlik; shared subscription stratejileri ve $queue prefix’i gibi ekstralar.
  • Sınırları: çalıştırması ve işletmesi Mosquitto’ya göre daha ağırdır; deploy ettiğiniz sürümün lisansını gözden geçirin.

EMQX public broker’ı üzerinden deneyebilirsiniz.

HiveMQ

HiveMQ, güçlü bir kurumsal odağa sahip Java tabanlı bir broker’dır. Açık kaynak HiveMQ Community Edition, extension SDK’sı olan, tek node kullanımına yönelik tam bir MQTT 3.1.1 ve 5 broker’ıdır. Cluster desteği, kurumsal güvenlik, izleme ve ticari destek HiveMQ Enterprise’ın parçasıdır; HiveMQ ayrıca yönetilen bir bulut hizmeti de sunar.

  • Güçlü yanları: spesifikasyona uyumlu, iyi dokümante edilmiş; regüle sektörler için güçlü ticari destek ve araçlar.
  • Sınırları: cluster desteği için ticari sürüm gerekir; JVM, C tabanlı broker’lara göre daha fazla bellek ister.

HiveMQ public broker’ı üzerinden deneyebilirsiniz.

VerneMQ ve NanoMQ

VerneMQ

VerneMQ, yerleşik cluster desteği ve MQTT 5 desteğine sahip, Apache lisanslı, Erlang tabanlı bir broker’dır. Esnek (permissive) bir lisans altında açık kaynak cluster desteği istiyorsanız sağlam bir seçenektir. Karar vermeden önce projenin güncel sürüm yayınlama sıklığını ve resmi binary paketlerin nasıl dağıtıldığını kontrol edin.

NanoMQ

Yine EMQ’nun geliştirdiği NanoMQ, edge cihazları ve gateway’leri hedefleyen hafif bir C broker’ıdır. MQTT 5’i, bulut broker’larına bridge kurmayı ve MQTT over QUIC’i destekler. Onu merkezi bir broker’ın yerine geçen bir şeyden çok, merkezi broker’ın edge tarafındaki tamamlayıcısı olarak düşünün.

Yönetilen (managed) ve bulut MQTT broker’ları

Yönetilen bir broker, bir abonelik ücreti karşılığında operasyonel yükü — yamalar, TLS sertifikaları, izleme, yedekler ve ölçekleme — sizden alır. Seçenekler şunlardır:

  • HiveMQ Cloud ve EMQX Cloud — yukarıdaki broker’ların barındırılan sürümleri.
  • AWS IoT Core ve Azure IoT Hub / Azure Event Grid — daha büyük bulut IoT platformlarının parçası olan MQTT endpoint’leri. Her bulutun kimlik ve veri hizmetleriyle entegre olurlar, ancak platforma özgü kimlik doğrulama ve bazı durumlarda MQTT özelliklerinin veya topic yapılarının kısıtlı bir alt kümesini kullanırlar.
  • ConnectMQ — kullanıcı adı/parola ile kimlik doğrulama, topic bazında erişim kontrolü, TLS ve güvenli WebSocket’ler ile MQTT 3.1.1 ve 5 desteği sunan, özel ve izole instance’lar sağlayan yönetilen bir MQTT broker’ı. Broker listemizdeki ConnectMQ sayfasına bakın.

Yönetilen hizmetler çoğunlukla fiyatlandırma modeli, bağlantı ve mesaj limitleri, hangi MQTT 5 özelliklerini sundukları ve standart kullanıcı adı/parola doğrulaması mı yoksa kendilerine özgü kimlik şemaları mı kullandıkları açısından farklılaşır. Bunları pazarlama iddialarıyla değil, kendi gereksinimlerinizle karşılaştırın.

MQTT broker nasıl seçilir

  1. Öğrenme, prototipleme veya ev otomasyonu: Raspberry Pi’da ya da Docker’da Mosquitto veya ücretsiz bir public test broker’ı. Yaygın bir kurulum için Home Assistant MQTT yazısına bakın.
  2. Edge gateway’ler: merkezi bir broker’a bridge ile bağlanmış Mosquitto veya NanoMQ.
  3. Kendi altyapınızda yüksek erişilebilirlikli production: EMQX, VerneMQ veya HiveMQ Enterprise gibi cluster destekli bir broker — ve onu işletmekte rahat olan bir ekip.
  4. Tek bir bulut sağlayıcısıyla derin entegrasyon: MQTT özellik alt kümesi cihazlarınıza uyuyorsa, o sağlayıcının IoT hizmeti.
  5. Sunucu işletmeden production: standart MQTT, TLS ve cihaz başına kimlik bilgileri sunan yönetilen bir broker.

Hangisini seçerseniz seçin, karar vermeden önce şu noktaları kontrol edin:

  • Güvendiğiniz protokol özellikleri: MQTT 5 property’leri, shared subscription’lar, retained mesajlar, mesaj boyutu limitleri. MQTT 5 ve 3.1.1 karşılaştırmasına bakın.
  • Transport’lar: TCP, TLS ve tarayıcı client’ları için WebSocket’ler — MQTT portları yazısına bakın.
  • Güvenlik: kimlik doğrulama, topic bazında ACL’ler ve TLS. MQTT güvenliği için en iyi uygulamalar yazımız nelere dikkat etmeniz gerektiğini listeler.
  • Operasyon: izleme, güncellemeler, yedekler ve gece alarm çaldığında kimin uyandırılacağı.

Karar vermeden önce test edin

Kısa listenize hangi broker’lar girerse girsin, her birine aynı kontrolleri uygulayın: ihtiyaç duyduğunuz her transport üzerinden bağlanın, QoS ve retained mesajları doğrulayın ve kimlik doğrulama kurulumunuzun çalıştığını teyit edin. Bir MQTT broker’ı nasıl test edilir rehberimiz bunu adım adım anlatır.

Sıkça sorulan sorular

Yeni başlayanlar için en iyi MQTT broker hangisi?

Başlamak için genellikle en kolay yer Eclipse Mosquitto’dur. Küçüktür, çoğu paket yöneticisinde ve Docker imajı olarak mevcuttur ve tek bir metin dosyasıyla yapılandırılır. Hiç sunucu çalıştırmak istemiyorsanız en basit seçenek yönetilen bir MQTT broker’ıdır.

Mosquitto mu daha iyi, EMQX mi?

Farklı ihtiyaçları hedeflerler. Mosquitto; küçük kurulumlar, edge gateway’ler ve ev otomasyonu için ideal, hafif ve tek node’lu bir broker’dır. EMQX ise cluster kurulumu ve çok sayıda bağlantı için tasarlanmıştır; daha fazla karmaşıklık pahasına bir rule engine ve veri entegrasyonları içerir.

Mosquitto cluster olarak çalıştırılabilir mi?

Açık kaynak Mosquitto broker’ında yerleşik cluster desteği yoktur. Birden fazla Mosquitto instance’ını bridge’lerle bağlayabilirsiniz, ancak bu, session’ları paylaşan bir cluster ile aynı şey değildir. Yerleşik cluster desteğine ihtiyacınız varsa EMQX, VerneMQ, HiveMQ Enterprise veya yönetilen bir servise bakın.