我正在尝试构建一个 mosquitto 集群,因为 mosquitto 是单线程并且似乎无法处理大量 qos 2 消息。
MQTT 服务器比较:Benchmark of MQTT Servers
我发现 mosquitto 可以使用桥接方式构建集群(Cluster forming with Mosquitto broker),但我想知道 mosquitto 订阅来自所有其他服务器的所有消息是否会导致内部消息发送的高开销。
例如,如果我有 10 个 mosquitto 代理,每个代理提供 1,000 条消息,最初总共有 10,000 条消息。但是消息将在代理之间共享,因此每条消息将发送到另外 9 个代理,总共有 1,000 x 9 x 10 = 90,000 条消息供内部使用。
蚊子聚类是否有一些基准?或者发送大量 qos 2 消息的一般解决方案是什么?
谢谢
最佳答案
我们曾经建立了一个 MQTT 服务平台,使用 Mosquitto 作为代理,8 个代理桥接在一起,大约 2 万个客户端订阅 2 万个主题,qos=0,平均每秒发布 1 千条消息,100-2 千字节,桥订阅并发布所有主题,并带来巨大的前向延迟,有时超过 2 分钟。 所以现在我们只需将所有酒吧广播给每个经纪人,这确实有效。 但是桥是集群的另一回事,这意味着它不喜欢支持集群 session 、负载平衡、单点故障……的逻辑 MQTT 代理。 所以我实现了一个自治的 Mosquitto 集群,并由 Tsung 做了一些性能测试,一般来说,场景是 30k subscriber/2.5k pubs/sec,payload length=744bytes,qos=1,平均请求响应有点高然后桥接(5.1 毫秒对 2.32 毫秒),但没有消息丢失并且负载平衡。 您可以在mosquitt-cluster-bridge-benchmark下找到详细的测试报告.
关于cluster-computing - 蚊子集群的基准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40170965/