2015-03-17 2 views
4

С бюджетом, возможно, несколько миллионов для настройки фермы серверов MQTT, как бы вы это сделали?Какой сервер MQTT для соединений> 1M

Он должен обладать следующими свойствами:

  • Поддержка соединений через 4-5 м всех центров обработки данных.
  • 300k сообщ/с около 1Kb каждого
  • Географической избыточности
  • Не может потерять сообщения QOS1
  • Каждого клиент будет опубликовывать к одной теме, но подписаться на их собственную уникальную тему. Это подразумевает 4-5 миллионов тем.

брокеры MQTT сервера можно найти здесь: https://github.com/mqtt/mqtt.github.io/wiki/server-support#capabilities

Однако возможности, как правило, не публикуются.

+0

Какие QoS вы собираетесь использовать? –

+0

Невозможно потерять сообщения, из которых следует, что это должно быть в аренду QOS1 – hardillb

+0

QOS1 Также мне нужно объявить, что каждый клиент будет публиковать в одной теме, но подписаться на их собственную уникальную тему. – redboy

ответ

5

Устройство IBM Messagingight. Специально разработанный для крупномасштабных внедрений IOT, таких как связанных автомобилей: http://www-03.ibm.com/software/products/en/messagesight

Кластеры IBM IoT MessageSight серверов можно с v2.0, которая позволяет масштабировать один MessageHub к нескольким серверам, что позволяет> соединения 1M даже.

+0

Один прибор может обрабатывать • 1M одновременных подключений • 13M непостоянные тзд/сек • 400K стойкие MSG/сек выглядит как хорошей отправной точкой. Благодарю. – redboy

+0

Внизу без комментариев для принятого ответа, позаботьтесь, чтобы объяснить, почему он не отвечает на вопрос? – hardillb

+0

Вы пробовали emqtt.io? они показывают поддержку 1M соединения – manish

8

Несмотря на то, что брокер VerneMQ MQTT, работающий на Erlang, по-прежнему совершенно новый, нет ничего (помимо RAM/CPU/IPs/Bandwidth), который должен помешать вам открыть многие подключения.

http://verne.mq

убедитесь, чтобы установить что-то похожее на:

listener.max_connections = infinity 
listener.nr_of_acceptors = 1000 
erlang.max_ports = 10000000 
erlang.process_limit = 10000000 

в вашем vernemq.conf

отречение: I'am один из дэвов в VerneMQ и рады помочь вам достичь вашей 1M соединения/сервер.

+2

Какая конфигурация машины будет достаточной? – chochim

+0

@ Аndre, не могли бы вы ответить на вопрос о конфигурации машины? Приветствия. – raulk

+0

Достаточно большого экземпляра AWS EC2. Мы когда-то запускали тест на c3xlarge с изображением Linux Amazon. Однако не ожидайте большой пропускной способности сообщений, поскольку сетевой стек не оптимизирован для обработки этого количества соединений TCP. Проблема становится явно связанной с процессором. – Andre

Смежные вопросы