Оценка популярного публичного онлайн-брокера MQTT

Многие проекты MQTT и сервисы IoT предоставляют публичный онлайн-брокер MQTT. Пользователи могут напрямую использовать их для обучения MQTT, тестирования, создания прототипов и даже небольших приложений без самостоятельного развертывания, удобно и быстро с экономией времени и энергии.

Однако из-за разных местоположений, сетевых сред и нагрузок на серверы стабильность и задержка передачи сообщений у каждого публичного брокера также различаются. Хотя почти все поставщики услуг заявляют, что не несут ответственности за стабильность и безопасность своих бесплатных сервисов, пользователям необходимо учитывать эти факторы при их использовании.

Поэтому в этой статье мы разбираем некоторых популярных бесплатных онлайн-брокеров MQTT, оцениваем и сравниваем их по доступности, сетевой задержке, небольшому тестированию производительности и фактической задержке передачи сообщений. Мы надеемся предоставить ссылку на ваш выбор.

Тестовый объект

В этой статье выбираются следующие часто используемые общедоступные брокеры MQTT:

ИмяАдрес брокераTCPTLSВеб-сокет
EMQX (глобальный)broker.emqx.io1883 г.88838083 8084
EMQX (Китай)broker-cn.emqx.io1883 г.88838083 8084
Затмениеmqtt.eclipseprojects.io1883 г.888380, 443
комарtest.mosquitto.org1883 г.8883, 888480, 443
HiveMQbroker.hivemq.com1883 г.Н/Д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Доступный
EMQXbroker.emqx.io1883 г.ДА
EMQX(CN)broker-cn.emqx.io1883 г.ДА
Затмениеmqtt.eclipseprojects.io1883 г.ДА
комарtest.mosquitto.org1883 г.ДА
HiveMQbroker.hivemq.com1883 г.ДА

MQTT X

Тестовые данные

MQTT X имеет функцию подключения, импорта и экспорта. Ниже приведены данные подключения, использованные в тесте этой статьи, которые можно импортировать в 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)
EMQXbroker.emqx.io1883 г.ДАДА
EMQX(CN)broker-cn.emqx.io1883 г.ДАДА
Затмениеmqtt.eclipseprojects.io1883 г.ДАДА
комарtest.mosquitto.org1883 г.Скорость колеблется около 50 мсг/с.Скорость колеблется в пределах 0-50 мсг/с.
HiveMQbroker.hivemq.com1883 г.ДАСкорость стабильна на уровне около 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 минут сбора статистики.

Тестовая модель выглядит следующим образом:

тестовая модель брокера mqtt

Тестовый код: бесплатный онлайн-публичный брокер-test.js

История задержки времени

Подсчитайте задержку сообщения клиента и удалите данные с большими ошибками (> 5000 мс):

История задержки MQTT-брокера

Средняя задержка

ИмяАдрес брокераTCPСредняя задержка
EMQXbroker.emqx.io1883 г.207 мс
EMQX(CN)broker-cn.emqx.io1883 г.164 мс
Затмениеmqtt.eclipseprojects.io1883 г.250 мс
комарtest.mosquitto.org1883 г.378 мс
HiveMQbroker.hivemq.com1883 г.252 мс

В нескольких тестах каждый бесплатный онлайн-сервер MQTT в целом достиг пригодного для использования уровня. Однако по отдельным показателям между серверами все же есть существенные различия. Существуют проблемы со стабильностью и удобством использования, такие как низкий предел скорости, нестабильная задержка в сети или даже подозрение на то, что некоторые серверы имеют механизм запланированного перезапуска, что может вызвать у пользователей плохой опыт даже при простом тестировании и прототипировании.

Приведенный выше контент также в определенной степени доказывает, что на соответствующую производительность платформы IoT влияет географическое положение устройства. Таким образом, бесплатный онлайн-сервис MQTT EMQX, который предоставляет близлежащие точки доступа для пользователей в разных регионах на основе сети высококачественных поставщиков облачных услуг, имеет определенные преимущества в сравнении, а данные испытаний относительно лидируют по всем аспектам.

Первоначально опубликовано на

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *