预算可能只有几百万来设置MQTT服务器场你会怎么做?
必须具有以下属性:
可在此处找到MQTT Server代理: https://github.com/mqtt/mqtt.github.io/wiki/server-support#capabilities
但是通常不会发布功能。
答案 0 :(得分:11)
虽然Erlang驱动的VerneMQ MQTT代理仍然很新,但除了RAM / CPU / IP /带宽之外什么也不能阻止你打开那么多连接。
确保设置类似于:
的内容listener.max_connections = infinity
listener.nr_of_acceptors = 1000
erlang.max_ports = 10000000
erlang.process_limit = 10000000
在vernemq.conf
答案 1 :(得分:6)
IBM Messagesight设备。专为大型物联网部署而设计,如联网汽车: http://www-03.ibm.com/software/products/en/messagesight
使用v2.0可以集群IBM IoT MessageSight服务器,它允许您将单个MessageHub扩展到多个服务器,从而实现> 1M连接。
答案 2 :(得分:5)
HiveMQ是基于Java的自托管企业MQTT代理,专门设计用于支持数百万个并发连接。
HiveMQ团队已经完成了基准测试,将超过10.0000.000个并发MQTT客户端连接到HiveMQ代理群集。为了达到这个数字,并伴随着不错的性能,需要在二手机器的操作系统上进行一些配置。
在 /etc/security/limits.conf 中打开文件:
hivemq hard nofile 1000000
hivemq soft nofile 1000000
root hard nofile 1000000
root soft nofile 1000000
/etc/sysctl.conf
中的TCP调整# This causes the kernel to actively send RST packets when a service is overloaded.
net.ipv4.tcp_fin_timeout = 30
# The maximum file handles that can be allocated.
fs.file-max = 5097152
# Enable fast recycling of waiting sockets.
net.ipv4.tcp_tw_recycle = 1
# Allow to reuse waiting sockets for new connections when it is safe from protocol viewpoint.
net.ipv4.tcp_tw_reuse = 1
# The default size of receive buffers used by sockets.
net.core.rmem_default = 524288
# The default size of send buffers used by sockets.
net.core.wmem_default = 524288
# The maximum size of received buffers used by sockets.
net.core.rmem_max = 67108864
# The maximum size of sent buffers used by sockets.
net.core.wmem_max = 67108864
# The size of the receive buffer for each TCP connection. (min, default, max)
net.ipv4.tcp_rmem = 4096 87380 16777216
# The size of the sent buffer for each TCP connection. (min, default, max)
net.ipv4.tcp_wmem = 4096 65536 16777216
有关使用的VM的详细信息,操作系统方面所需的特定配置以及详细的性能结果,都可以在10 Million Benchmark Paper
中找到免责声明:我是HiveMQ团队的成员。
答案 3 :(得分:0)
你不需要几百万美元来实现这一目标。实际上你甚至不需要成千上万 - flespi broker其商业版本可以达到你所需要的所有数字,除了那时的地理冗余。而且不仅可以实现 - 它每天24小时不间断地使用多个类似负载,正常运行时间为99.98%。
它是基于云的代理,具有私有命名空间,因此即使它是免费版本,也可供每个能够提供高达200 MB /分钟流量的人使用。
答案 4 :(得分:0)
以下是一些MQTT Brokers的列表。如果您正在搜索自托管解决方案,emqtt.io和vernemq.com都很好。
答案 5 :(得分:0)
Akiro MQTT Broker可以处理这种规模,并且是由Async IO提供支持的非常可靠且低延迟的代理。
Akiro可以与12个具有商品硬件的经纪人处理1000万个连接,这是当今MQTT经纪人的最佳基准之一。主要电信公司也使用它。试一试。谢谢
P.S我是Akiro团队的一员:)