Тут в зигбишном чатике недавно обсуждали MQTT брокеров и переезд с популярного Mosquitto на более производительный EMQX.
Мне на месте не сиделось, и я решил поэкспериментировать. Только вместо EMQX я поставил NanoMQ — младшего брата EMQX от тех же разработчиков.
В плане производительности меня и Mosquitto полностью устраивал, но NanoMQ подкупил наличием вебхуков. Есть у меня одно приложение, которое по MQTT нормально данные принимать не умеет, но зато с вебхуками проблем нет.
Так вот, переезд успешно состоялся и я из любопытства пошел посмотреть, что там с производительностью. Специально каких-то замеров не делал, но из системы мониторинга можно вытащить какие-никакие статистические данные. Система мониторинга периодически подключается к MQTT серверу, забирает последнее сообщение из топика hass/status
и отключается. При этом время, затраченное на всё про всё, замеряется и логируется.
NanoMQ оказался на 130 мс быстрее. По крайней мере вот в таком всратом синтетическом тесте. 130 мс, по сути, ни на что не влияют, хотя чем больше сообщений брокер обрабатывает и чем медленнее железо, тем ощутимее будет разница.
Но не надо срочно менять Mosquitto на NanoMQ 🙂 В моем «тесте» много времени затрачивается на установление соединения и подписывание на топик, а Home Assistant и Zigbee2MQTT выполняют эти операции только один раз при старте. То есть после полной загрузки обмен сообщениями происходит гораздо быстрее.
Короче, я не думаю, что при обычном домашнем использовании вы заметите разницу в производительности, но рассмотреть альтернативы Mosquitto все равно можно. Мне вот в Mosquitto не хватало вебхуков, например.