опубликованное хранилище сообщений брокером mosquitto, когда подписчик не в сети с QOS = 2

И издатель, и подписчик подключены к брокеру mosquitto (paho) с QOS = 2 и поддерживают постоянный сеанс с помощью clean_session = false. Когда я публикую сообщение с подписчиком, подключенным к брокеру, оно успешно получено подписчиком, теперь, если я отключу подписчика, а затем снова опубликую сообщение и подключу подписчика, я смогу получить эти сообщения, когда мой подписчик был в автономном режиме.

Мой вопрос -

  1. Есть ли у брокера хранилище, в котором хранятся все сообщения, когда подписчик не в сети.

  2. Если да, то сколько времени или сколько сообщений он может хранить.

  3. Подходит ли этот подход для GPS-слежения в реальном времени, когда абонент может отключиться от сети на длительное время (5-6 часов) прибл.

  4. Сохраняется ли постоянство сеанса даже при отключении питания.

  5. Сколько трафика он может обработать для масштабируемого приложения, если я использую этот подход для отслеживания GPS в реальном времени.


person Himanshu mittal    schedule 13.08.2016    source источник


Ответы (1)


  1. Да, есть файл (mosquitto.db). Вы можете контролировать, где этот файл будет записан на диск, в файле mosquitto.conf autosave* и persistence* опции

  2. Сообщения хранятся до тех пор, пока существуют сеансы сохранения, а ограничение составляет дисковое пространство (или, возможно, 2-4 ГБ для 32-битного mosquitto). Но в любом случае это МНОГО сообщений (если только у вас нет слишком больших сообщений)

  3. Это зависит от вашего количества сообщений и количества издателей / подписчиков.

  4. Да, сохранение сеанса сохраняется в том же файле db, поэтому состояние сохраняется после перезапуска mosquitto

  5. Опять же, это действительно зависит от того, сколько у вас издателей / подписчиков и какова скорость сообщений.

person hardillb    schedule 13.08.2016