我正在使用Mosquitto代理来实现MQTT协议.但我无法找到如何在蚊子经纪人的情况下进行聚类.对于可以与一个代理服务的客户端数量也有任何限制.
这个答案的原始来源:经纪人的横向缩放.我刚刚添加了插件支持.
mosquitto broker的两个功能组合可用于设置n节点集群.
桥接功能仅用于同步所有mosquitto代理之间的消息,而mosquitto-auth-plugin可用于在单个数据库后端保存授权和ACL.
在设置网桥时,请注意输入/输出网桥主题的使用以避免转发循环(2).模式是格式
topic pattern [[[ out | in | both ] qos-level] local-prefix remote-prefix]
Run Code Online (Sandbox Code Playgroud)
引用mosquitto.conf手册页(3),对于传入的主题,网桥将使用远程前缀预先添加模式,并在远程代理上订阅生成的主题.收到匹配的传入消息后,将从主题中删除远程前缀,然后添加本地前缀.对于外向主题,反之亦然
下面是3节点集群的示例mosquitto.conf.要使用mqtt-malaria(4)进行负载测试,更重要的是对使用clean_session标志连接到false的客户端的影响,.
+-------------------+
+------------------> BRIDGE BROKER <------------+
| | 192.168.1.1 | |
| +--------^----------+ |
| | |
| | |
| | |
Broker A | Broker B | | Broker C
| | |
+----------------------+--+ +----------------+--------+ +--+----------------------+
| connection A | | connection B | | connection C |
| | | | | |
| address 192.168.1.1:1883| | address 192.168.1.1:1883| | address 192.168.1.1:1883|
| | | | | |
| topic # out 2 "" A/ | | topic # out 2 "" B/ | | topic # out 2 "" C/ |
| topic # in 2 "" B/ | | topic # in 2 "" A/ | | topic # in 2 "" A/ |
| topic # in 2 "" C/ | | topic # in 2 "" C/ | | topic # in 2 "" B/ |
+----------------------^--+ +----------------^--------+ +--+----------------------+
| | ^
| | |
| | |
| +-------+---------+ |
+-------------------+ HA PROXY +-------------+
+-----^--^--------+
| |
| |
+ +
Run Code Online (Sandbox Code Playgroud)
有 2 个(在撰写本文时)支持大规模 MQTT 部署和集群的主要开源项目
VerneMQ 和 EMQ 都是用 Erlang 编写的,非常适合分布式消息传递,所有复制都内置在(Erlang)语言的工具集部分。
VerneMQ 有商业企业支持,而 EMQ 计划在不久的将来,这两个项目都有大公司作为赞助商支持。
您还可以查看 HiveMQ,它是该块中最年长的孩子,但如果没有付费许可证就无法使用。
| 归档时间: |
|
| 查看次数: |
22367 次 |
| 最近记录: |