Оценка популярного публичного онлайн-брокера MQTT
Многие проекты MQTT и сервисы IoT предоставляют публичный онлайн-брокер MQTT. Пользователи могут напрямую использовать их для обучения MQTT, тестирования, создания прототипов и даже небольших приложений без самостоятельного развертывания, удобно и быстро с экономией времени и энергии.
Однако из-за разных местоположений, сетевых сред и нагрузок на серверы стабильность и задержка передачи сообщений у каждого публичного брокера также различаются. Хотя почти все поставщики услуг заявляют, что не несут ответственности за стабильность и безопасность своих бесплатных сервисов, пользователям необходимо учитывать эти факторы при их использовании.
Поэтому в этой статье мы разбираем некоторых популярных бесплатных онлайн-брокеров MQTT, оцениваем и сравниваем их по доступности, сетевой задержке, небольшому тестированию производительности и фактической задержке передачи сообщений. Мы надеемся предоставить ссылку на ваш выбор.
Тестовый объект
В этой статье выбираются следующие часто используемые общедоступные брокеры MQTT:
Имя | Адрес брокера | TCP | TLS | Веб-сокет |
---|---|---|---|---|
EMQX (глобальный) | broker.emqx.io | 1883 г. | 8883 | 8083 8084 |
EMQX (Китай) | broker-cn.emqx.io | 1883 г. | 8883 | 8083 8084 |
Затмение | mqtt.eclipseprojects.io | 1883 г. | 8883 | 80, 443 |
комар | test.mosquitto.org | 1883 г. | 8883, 8884 | 80, 443 |
HiveMQ | broker.hivemq.com | 1883 г. | Н/Д | 8000 |
EMQX
это бесплатный онлайн Брокер MQTT 5 предоставлено Облако EMQX. Предоставляются две точки доступа, Global и CN, из которых EMQX (Global) развернута в AWS, Орегон, США, а EMQX (CN) развернута в Tencent Cloud, Шанхай.
Обе точки доступа представляют собой кластеры EMQX, состоящие из 2 узлов. Позже можно автоматически добавить дополнительные узлы в соответствии с фактическим объемом доступа и нагрузкой. Судя по фоновому дисплею, сервер основан на EMQX Предприятие 4.2.6, а текущее время работы составляет 128 дней.
Примечание. Две точки доступа EMQX (Global) и EMQX (CN) не взаимодействуют друг с другом.
Связанное введение: Бесплатный публичный брокер MQTT 5
Затмение
Это бесплатный онлайн-брокер MQTT, предоставляемый Eclipse IoT. Разрешенный IP-адрес показывает, что он развернут в Azure, штат Вирджиния, США. Стоит отметить, что предыдущий адрес доступа к серверу всегда был mqtt.eclipse.org
. По какой-то причине он был изменен на текущий адрес доступа. На момент написания этой статьи я использовал старый адрес и не смог получить к нему доступ. Одно время я думал, что сервер был остановлен. Наконец, когда я получил доступ к исходной точке доступа через HTTP, я обнаружил, что было сделано постоянное перенаправление 301.
По запросу из $SYS/#
system, сервер основан на Mosquitto 2.0.12, а текущее время работы составляет 71227 секунд. Есть подозрение, что сервис был перезапущен сутки назад.
Связанное введение: mqtt.eclipseprojects.io
комар
Это бесплатный онлайн-брокер MQTT, предоставляемый сообществом Mosquitto, и разрешенный IP-адрес показывает, что он развернут в OVH, регионе Рубе, Франция. При тестировании было обнаружено, что сетевая задержка точки доступа относительно высока в нормальных условиях. Тем не менее, к счастью, уровень потери пакетов относительно низок, и в некоторые периоды могут возникать сбои соединения.
По запросу из $SYS/#
system, сервер основан на Mosquitto 2.0.12, а текущее время работы составляет 28519 секунд. Есть подозрение, что сервис был перезапущен в течение суток.
Связанное введение: test.mosquitto.org
HiveMQ
Это бесплатный онлайн-брокер MQTT, предоставляемый HiveMQ, и разрешенный IP-адрес показывает, что он развернут в AWS, Франкфурт, Германия.
Потому что это $SYS/#
системная тема не может быть подписана, невозможно получить тип брокера, предоставляющего услугу, конкретную версию и текущее время работы.
Связанное введение: mqtt-dashboard.com
Тестовая среда
- Сеть: США, AWS Орегон
- Операционная система: macOS 10.15.7
Примечание. Из-за разных местоположений сетевая среда будет отличаться, что может привести к различиям в результатах тестирования в этой статье.
Проверка доступности
В этой части мы использовали Клиентский инструмент MQTT — MQTT X для этого теста. Пробуем установить соединение через TCP 1883. После повторной проверки доступ ко всем серверам есть. Общие результаты следующие:
Имя | Адрес брокера | TCP | Доступный |
---|---|---|---|
EMQX | broker.emqx.io | 1883 г. | ДА |
EMQX(CN) | broker-cn.emqx.io | 1883 г. | ДА |
Затмение | mqtt.eclipseprojects.io | 1883 г. | ДА |
комар | test.mosquitto.org | 1883 г. | ДА |
HiveMQ | broker.hivemq.com | 1883 г. | ДА |
Тестовые данные
MQTT X имеет функцию подключения, импорта и экспорта. Ниже приведены данные подключения, использованные в тесте этой статьи, которые можно импортировать в MQTT X посредством восстановления данных.
Тест задержки международной сети
Мы проверяем подключение к сети и задержку сети через доступ к сети. Поскольку некоторые сервисы отключили протокол ICMP, а сетевые условия в разных местах разные, здесь используется адрес WebSocket. С помощью функции скорости HTTP популярного отечественного инструмента измерения скорости Webmaster Tools проводим тест:
Результат испытаний
- Время разрешения: время, необходимое для разрешения DNS.
- Время подключения: время, необходимое для установления TCP-соединения.
EMQX | Время разрешения | Время подключения |
---|---|---|
Ангелы | 15 мс | 33 мс |
Токио | — | — |
Китай Гонконг | — | — |
Сингапур | 55 мс | 201 мс |
Южная Корея | — | — |
Германия | 15 мс | 160 мс |
EMQX(CN) | Время разрешения | Время подключения |
---|---|---|
Ангелы | <1 мс | 156 мс |
Токио | <1 мс | 90 мс |
Китай Гонконг | <1 мс | 35 мс |
Сингапур | <1 мс | 102 мс |
Южная Корея | — | — |
Германия | 17 мс | 209 мс |
комар | Время разрешения | Время подключения |
---|---|---|
<1 мс | 434 мс | |
Токио | <1 мс | 703 мс |
Китай Гонконг | <1 мс | 629 мс |
Сингапур | <1 мс | 538 мс |
Южная Корея | <1 мс | 817 мс |
Германия | 2 мс | 59 мс |
Затмение | Время разрешения | Время подключения |
---|---|---|
Ангелы | <1 мс | 72 мс |
Токио | <1 мс | 155 мс |
Китай Гонконг | 16 мс | 218 мс |
Сингапур | <1 мс | 237 мс |
Южная Корея | <1 мс | 225 мс |
Германия | 184 мс | 88 мс |
HiveMQ | Время разрешения | Время подключения |
---|---|---|
Ангелы | 5 мс | 151 мс |
Токио | 2 мс | 248 мс |
Китай Гонконг | 7 мс | 256 мс |
Сингапур | 7 мс | 194 мс |
Южная Корея | — | — |
Германия | 2 мс | 2 мс |
Небольшой тест производительности
С помощью инструмента тестирования производительности MQTT с открытым исходным кодом emqtt-скамейкамы проверяем, является ли клиент Паб/Саб имеет ограничение скорости.
Из соображений практичности , этот тест предназначен не для изучения верхнего предела скорости каждой точки доступа, а для рассмотрения того, что каждая точка доступа может соответствовать обычной интенсивности использования. Сценарий, разработанный в этом раунде, заключается в том, что сообщение Sub/Pub одного клиента составляет 1000 msg/s в течение 1 минуты, а размер сообщения составляет 256 байт. Затем мы записываем, соответствует ли стандарту каждая точка доступа и ограничена ли скорость. На следующем рисунке показана тестовая архитектура:
После того, как emqtt-bench готов, каждая из следующих команд Sub/Pub выполняется в другом окне:
Имя | Адрес брокера | TCP | Достигают ли стандарта (Pub) | Достигают ли стандарта (Sub) |
---|---|---|---|---|
EMQX | broker.emqx.io | 1883 г. | ДА | ДА |
EMQX(CN) | broker-cn.emqx.io | 1883 г. | ДА | ДА |
Затмение | mqtt.eclipseprojects.io | 1883 г. | ДА | ДА |
комар | test.mosquitto.org | 1883 г. | Скорость колеблется около 50 мсг/с. | Скорость колеблется в пределах 0-50 мсг/с. |
HiveMQ | broker.hivemq.com | 1883 г. | ДА | Скорость стабильна на уровне около 50 мсг/с. |
# EMQX
## Sub
./emqtt_bench sub -t t/1 -c 1 -h broker.emqx.io
## Pub
./emqtt_bench pub -t t/1 -c 1 -h broker.emqx.io -I 1
# EMQX CN
## Sub
./emqtt_bench sub -t t/1 -c 1 -h broker-cn.emqx.io
## Pub
./emqtt_bench pub -t t/1 -c 1 -h broker-cn.emqx.io -I 1
# Eclipse
## Sub
./emqtt_bench sub -t t/1 -c 1 -h mqtt.eclipseprojects.io
## Pub
./emqtt_bench pub -t t/1 -c 1 -h mqtt.eclipseprojects.io -I 1
# Mosquitto
## Sub
./emqtt_bench sub -t t/1 -c 1 -h test.mosquitto.org
## Pub
./emqtt_bench pub -t t/1 -c 1 -h test.mosquitto.org -I 1
# HiveMQ
## Sub
./emqtt_bench sub -t t/1 -c 1 -h broker.hivemq.com
## Pub
./emqtt_bench pub -t t/1 -c 1 -h broker.hivemq.com -I 1
Проверка фактической задержки передачи сообщения
Цель: протестировать время, необходимое для передачи сообщения от Pub к Sub, отобрать и проанализировать стабильность передачи и среднее требуемое время.
Шаг теста: клиент подключается к общедоступному серверу и публикует сообщение с отметкой времени каждые 5 секунд. После того, как подписчик получает сообщение, временная метка в сообщении вычитается из текущей временной метки, а задержка сообщения рассчитывается и записывается в базу данных. Отбор проб и анализ проводят после 30 минут сбора статистики.
Тестовая модель выглядит следующим образом:
Тестовый код: бесплатный онлайн-публичный брокер-test.js
История задержки времени
Подсчитайте задержку сообщения клиента и удалите данные с большими ошибками (> 5000 мс):
Средняя задержка
Имя | Адрес брокера | TCP | Средняя задержка |
---|---|---|---|
EMQX | broker.emqx.io | 1883 г. | 207 мс |
EMQX(CN) | broker-cn.emqx.io | 1883 г. | 164 мс |
Затмение | mqtt.eclipseprojects.io | 1883 г. | 250 мс |
комар | test.mosquitto.org | 1883 г. | 378 мс |
HiveMQ | broker.hivemq.com | 1883 г. | 252 мс |
В нескольких тестах каждый бесплатный онлайн-сервер MQTT в целом достиг пригодного для использования уровня. Однако по отдельным показателям между серверами все же есть существенные различия. Существуют проблемы со стабильностью и удобством использования, такие как низкий предел скорости, нестабильная задержка в сети или даже подозрение на то, что некоторые серверы имеют механизм запланированного перезапуска, что может вызвать у пользователей плохой опыт даже при простом тестировании и прототипировании.
Приведенный выше контент также в определенной степени доказывает, что на соответствующую производительность платформы IoT влияет географическое положение устройства. Таким образом, бесплатный онлайн-сервис MQTT EMQX, который предоставляет близлежащие точки доступа для пользователей в разных регионах на основе сети высококачественных поставщиков облачных услуг, имеет определенные преимущества в сравнении, а данные испытаний относительно лидируют по всем аспектам.
Первоначально опубликовано на