EMQ, QoS 1/2 mesajlarını nasıl sürdürür?


10

EMQ (Erlang MQTT Broker) bir rapor "1,3 milyon eşzamanlı MQTT bağlantıları" ile "dağıtılmış, yoğun ölçeklenebilirlik, yüksek oranda genişletilebilir MQTT mesajı komisyoncu" - bu potansiyel müşteriler çok sayıda yayınlamak ve abone olanak yüzden. Bazı istemcilerin herhangi bir zamanda bağlantısı kesilmiş gibi görünebilir.

Bu soru olarak Mosquitto'nun QoS 1/2 mesajlarını saklamak için belleği kalmazsa ne olur? Mosquitto hakkında sorar:

MQTT olarak, QoS 1 veya 2'ye mesajları gerekir kez, en azından teslim edilir (QoS 2 mesajları teslim edilmesi gerekmektedir tam bir defa). İstemci bağlı değilse, aracı iletiyi istemci almaya hazır olana kadar saklamalıdır.

Peki EMQ QoS 1/2 iletilerini teslimata kadar nasıl sürdürüyor , yani aracının yeniden başlatılması mı yoksa bellek sınırlarıyla ilgili olarak?


Yanıtlar:


6

Peki EMQ QoS 1/2 iletilerini teslimata kadar nasıl sürdürüyor, yani aracının yeniden başlatılması mı yoksa bellek sınırlarıyla ilgili olarak?

Cevap öyle görünüyor: Öyle değil . Hata izleyicilerinde bu sorun şöyle diyor:

Aracı yeniden başlatıldıktan sonra kalıcı istemci oturumlarını saklama sorunu yaşıyorum. Bu özellik şu anda aracıda yok veya bazı yapılandırmaları eksik mi?

Aracı oturumları sürdürmez.

Ayrıca, birkaç sorunu daha inceledikten sonra bu raporu buldum :

Başlangıçta emqttd.config içinde max istemcileri 1000K olarak ayarladım. Makinemiz 4 çekirdekli 8 GB belleğe sahip, 120K eşzamanlı bağlantıyı kolayca bağlayabiliyorum, ancak 8 GB belleği aştığında emqttd kendini sonlandırıyor. Düşündüğüm şey, makine başına maks. Müşteri olması çok daha iyi olurdu.

Temel olarak, v2.0.5'ten itibaren:

  • İletiler bir dosyaya kalıcı görünmüyor.
  • Aracının belleği dolduğunda, çökecektir.

Tam olarak ideal değil, ancak mevcut davranış gibi görünüyor, bu nedenle sürekli mesajlar kullanım durumunuz için kritikse, farklı bir broker kullanın.


1
Büyük ölçüde ölçeklenebilir bir mqtt brokeri için (en azından söylemek gerekirse) garip görünüyor .
Ghanima

QoS1 / 2 mesajlarını diske (LevelDB kullanarak) devam ettiren dağıtılmış bir MQTT aracısı arıyorsanız, VerneMQ'ya ( vernemq.com ) bir göz atın .
Lars Hesel Christensen

Mmmh emqtt mesajı tek başına saklamasa da, bir dizi veritabanına bağlanabilir, bu yüzden bunun ne olduğunu varsayıyorum. Bunu kontrol ettin mi?
Fabien Papleux
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.