Bagaimana EMQ bertahan QoS 1/2 pesan?


10

The QS (Erlang MQTT Broker) adalah "didistribusikan, secara besar-besaran terukur, sangat extensible pesan MQTT broker" dengan melaporkan "1,3 juta sambungan MQTT bersamaan" - sehingga berpotensi memungkinkan sejumlah besar klien untuk mempublikasikan dan berlangganan. Tampaknya beberapa klien mungkin terputus pada waktu tertentu.

Sebagai pertanyaan ini Apa yang terjadi jika Mosquitto kehabisan memori untuk menyimpan pesan QoS 1/2? bertanya tentang Mosquitto:

Dalam MQTT, pesan dengan QoS 1 atau 2 harus dikirimkan setidaknya satu kali (QoS 2 pesan harus dikirim tepat sekali). Jika klien tidak terhubung, broker harus menyimpan pesan sampai klien siap menerimanya.

Jadi bagaimana EMQ bertahan QoS 1/2 pesan sampai pengiriman, yaitu reboot dari broker atau sehubungan dengan batas memori?


Jawaban:


6

Jadi bagaimana EMQ bertahan QoS 1/2 pesan sampai pengiriman, yaitu reboot dari broker atau sehubungan dengan batas memori?

Jawabannya tampaknya: tidak . Masalah ini pada pelacak bug mereka mengatakan:

Saya menghadapi masalah untuk menyimpan sesi klien yang persisten setelah broker memulai kembali. Apakah fitur ini saat ini tidak ada di broker atau saya kehilangan beberapa konfigurasi?

Pialang tidak akan melanjutkan sesi.

Selain itu, setelah menggali beberapa masalah lagi, saya menemukan laporan ini :

Awalnya saya telah mengatur klien maks ke 1000K di emqttd.config. Mesin kami memiliki memori 8 GB dengan 4 inti, saya dapat menghubungkan 120K koneksi konkuren dengan mudah tetapi ketika melebihi 8 GB memori emqttd berakhir dengan sendirinya. Apa yang saya pikir menetapkan klien maksimal per mesin akan jauh lebih baik.

Pada dasarnya, pada v2.0.5:

  • Pesan tampaknya tidak bertahan ke file.
  • Begitu broker kehabisan memori, itu hanya akan crash.

Tidak persis ideal, tapi itu kelihatannya perilaku saat ini, jadi jika pesan tetap penting untuk kasus penggunaan Anda, gunakan broker lain.


1
Tampaknya aneh (untuk sedikitnya) untuk broker mqtt scalable besar-besaran.
Ghanima

Jika Anda mencari broker MQTT terdistribusi yang tetap menggunakan pesan QoS1 / 2 ke disk (menggunakan LevelDB), maka mungkin lihat VerneMQ ( vernemq.com ).
Lars Hesel Christensen

Mmmh sementara emqtt tidak menyimpan pesan dengan sendirinya, itu dapat dihubungkan ke sejumlah database, jadi saya berasumsi itu yang dilakukannya. Sudahkah Anda memeriksanya?
Fabien Papleux
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.