Як EMQ зберігає QoS 1/2 повідомлень?


10

EMQ (Erlang MQTT Broker) є «розподілена, що масштабується, розширюваність MQTT брокер повідомлень» з повідомленої «1,3 мільйона одночасних з'єднань MQTT» - так що потенційно дозволяє велика кількість клієнтів , публікувати і підписатися на нього. Здається, що деякі клієнти можуть бути відключені в будь-який момент часу.

Оскільки це питання, що станеться, якщо у комара не вистачить пам’яті для зберігання QoS 1/2 повідомлень? питає про Москітто:

У MQTT повідомлення з QoS 1 або 2 повинні бути доставлені щонайменше один раз (повідомлення QoS 2 повинні бути доставлені рівно один раз). Якщо клієнт не підключений, брокер повинен зберігати повідомлення, поки клієнт не готовий його отримати.

Тож як EMQ зберігає QoS 1/2 повідомлення до доставки, тобто перезавантаження брокера або щодо обмежень пам'яті?


Пов’язано: iot.stackexchange.com/q/809/54
Ghanima

Відповіді:


6

Тож як EMQ зберігає QoS 1/2 повідомлення до доставки, тобто перезавантаження брокера або щодо обмежень пам'яті?

Відповідь, здається, не відповідає . Про це питання в їх трекері помилок йдеться:

Я зіткнувся з проблемою, щоб зберігати стійкі клієнтські сеанси після перезапуску брокера. Чи ця функція наразі відсутня у брокера чи мені не вистачає певної конфігурації?

Брокер не зберігатиме сеанси.

Також, переглянувши ще кілька питань, я знайшов цей звіт :

Спочатку я встановив максимальних клієнтів на 1000K в emqttd.config. Наша машина має 8 ГБ пам’яті з 4 ядром, я можу легко підключити одночасне з'єднання 120 К, але при перевищенні 8 Гб пам’яті emqttd припиняється. Те, що я думав, встановити максимального клієнта на машину, було б набагато краще.

По суті, з версії 2.0.5:

  • Здається, повідомлення не зберігаються у файлі.
  • Як тільки у брокера не вистачить пам'яті, він просто вийде з ладу.

Не зовсім ідеально, але схоже, що це поведінка в даний час, тому якщо постійні повідомлення є критичними для вашого випадку використання, використовуйте іншого брокера.


1
Здається, це дивно (якщо не менше) для брокера масового масштабування mqtt.
Ганіма

Якщо ви шукаєте розподіленого брокера MQTT, який зберігає QoS1 / 2 повідомлення на диску (використовуючи LevelDB), то, можливо, подивіться на VerneMQ ( vernemq.com ).
Ларс Хезель Крістенсен

Mmmh, хоча emqtt не зберігає повідомлення самостійно, воно може бути підключене до ряду баз даних, тому я припускаю, що це робиться. Ви це перевірили?
Fabien Papleux
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.