用户如何在推送通知的MQTT中获得超过1024的连接限制?
我正在使用Mosquitto服务器,我认为我读过的Linux版本没有内置1024连接限制。那么,我可以使用单个服务器(没有桥接等)并获得5,000,10,000多个用户吗?
或者,我绝对需要过桥吗?除了mosquitto的配置设置手册页之外,我还没有看到很多关于如何设置的文章。
或者,我可以通过修改一些Linux配置设置来解决这个问题吗?我很高兴能使用一个mosquitto服务器吗?
我的应用程序或多或少是一个即时消息应用程序,所以我希望有大约10,000甚至20,000人使用它与mosquitto的永久24/7连接,提醒他们消息。
嗯
答案 0 :(得分:8)
理论上,您可以将Linux设置的最大插座数量用于mosquitto以满足您的需求。那么问题就在于绩效。关键指标是每秒总消息数。如果您连接了20k个客户端,将激活多少个客户端以及每个客户端将发送多少个消息?
例如,如果一半的客户端处于活动状态并且每秒发送一条消息,则有10k msps - 当然只有传入。如果这些消息中的每一个都是10个字节,那么您将持续100kB / s或800kbps。
另一个方面是如何安排主题层次结构。我不能告诉你什么是最好的,但肯定会产生影响。
我最好的建议是编写一个模拟真人的客户端,然后用它来对你的场景进行真正的测试。
我见过极端客户端计数的例子:http://bit.ly/HytRpK但没有更多细节。
最后一点:IBM目前正在制作关于MQTT的红皮书。它应该是“春天”,即很快。我认为它将涵盖扩展问题。
答案 1 :(得分:5)
对于客户,我们测试了IBM WebSphere MQ的MQTT,将每个队列管理器的并发客户端连接数增加到240,000(MQ运行时,MQ集群中可以有许多)。有人告诉我,它比Apache Web服务器合理处理的数量多10倍。测试期间的服务器CPU低至<5%。本来可以继续增加并发MQTT客户端的数量超过240,000,但实验室用尽了负载测试客户机。 IBM MQ是嵌入在WebSphere Message Broker ESB中的发布/订阅提供程序,因此我希望它具有相同的结果。
答案 2 :(得分:3)
我不知道有谁对蚊子进行了大量的连接测试。我想你可以做的一件事就是在你选择的运行时测试一个mosquitto实例,并在系统测试期间将很多客户端线程连接到它。
IBM使用WebSphere MQ作为MQTT代理的实现已被证明可支持多达100,000个并发连接。我相信IBM的免费代理RSMB限制为1024个连接。
您可能需要考虑如何使用网桥和配置服务扩展您的代理,以确定将新用户连接到哪个代理。