1.前言
MQTT是IBM为物联网等环境定义的一套应用层即时通信协议,通过消息中间件,提供订阅/发布方式通过"主题"为不同设备之间的通信提供解耦。
通常称消息中间件为broker,支持MQTT的broker,基于C语言的Mosquitto,基于Erlang的EMQ、RabbitMQ+插件,基于Java的ActiveMQ,甚至基于Node.js的Mosca。
目前,官方的版本中,mosquitto是没有集群功能的。官方说,可以使用bridge功能,将多个mqtt broker连接在一起。
桥接以后的效果是,无论哪台服务器中订阅的信息,无论在哪台服务器上发布了消息,订阅者都可以收到发布的信息。
2.多节点集群
操作系统:windows
假设3台服务器分别是:192.168.1.10(主服务器);192.168.1.12(从);192.168.1.14(从);
找到做为主服务器的mosquitto的安装目录:C:Program Filesmosquitto,并打开配置文件mosquitto.conf:
connection 连接名,可以随意取;
address 从服务器的IP和端口号;
topic # 表示所有主题消息都将被传递;
both/in/out是指允许的消息方向。both是双向,in是只能从对方broker到本地broker,out是只能从本地broker到对方broker。
bridge_protocol_version mqttv311 指协议版本是MQTT3.11;
notifications 是否发布桥接的状态信息;
cleansession 桥接断开时,是否清除远程服务器中的消息;
try_private true
start_type automatic 桥接模式,目前有三种,automatic/lazy/once;
该种方式存在的问题,当主服务器down机后,所有的从服务器就会变成单机节点。
原文链接:https://blog.csdn.net/weixin_41280091/article/details/120301608
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/6091