分类:
mqtt(3)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuxile/article/details/78754676
1.安装MQTT
请参考《CentOs6.8下MQTT简介及搭建》进行安装,在此不再说明。
2.环境介绍
192.168.20.38 主节点
192.168.20.52 从节点
192.168.20.111 从节点
3.集群目的
无论在那台服务器中订阅了信息,无论在那台服务器上发布信息,订阅者都可以收到发布的信息。集群部署有一个
专有名词叫做“桥接”,实现桥接的方式需要修改config.mk与mosquitto.conf文件。值得说明的是如果有10台服务器做
mosquitto集群,每台服务器上将桥连接打开,然后只需要更改一台服务器上的mosquitto.conf文件即可,其他服务器
的mosquitto.conf文件不需要做任何改动。大大方便了集群的维护。如果有新的服务器加入或删除只需要修改主服务器
的mosquitto.conf即可。
4.开启服务器桥连接
分别在三台服务器上执行如下命令:
cd /home/mosquitto-1.4.14
vi config.mk
找到WITH_BRIDGE:=yes 将签名的“#”号去掉开启桥连接模式。(默认是开启的,为了无误查看一下)
WITH_BRIDGE:=yes
5.创建桥接客户端用户和密码
在三个节点都执行如下命令:
mosquitto_passwd -b /etc/mosquitto/pwfile hthl_bridge 123456
6.修改权限控制
在三个节点的aclfile文件中分别追加:
# This is a bridge user.
user hthl_bridge
topic #
然后分别重启服务。
7.配置mosquitto.conf的桥连接属性
注意:其他节点千万不要增加此信息否则消息会死循环。
7.测试
7.1订阅
在38节点执行:mosquitto_sub -h 192.168.20.38 -t hthl/hyt -u hthl_sub -P 123456
在52节点执行:mosquitto_sub -h 192.168.20.52 -t hthl/hyt -u hthl_sub -P 123456
在111节点执行:mosquitto_sub -h 192.168.20.111 -t hthl/hyt -u hthl_sub -P 123456
7.2发布
在38节点执行:mosquitto_pub -h 192.168.20.38 -t hthl/hyt -u hthl_pub -P 123456 -m "你好,世界38!"
在52节点执行:mosquitto_pub -h 192.168.20.52 -t hthl/hyt -u hthl_pub -P 123456 -m "你好,世界52!"
在111节点执行:mosquitto_pub -h 192.168.20.111 -t hthl/hyt -u hthl_pub -P 123456 -m "你好,世界111!"
订阅服务的三个窗口会分别打印收到的消息,实现了无论在那台服务器中订阅了信息,无论在那台服务器上发布信息,
订阅者都可以收到发布的信息!ok,集群成功!
请参考《CentOs6.8下MQTT简介及搭建》进行安装,在此不再说明。
2.环境介绍
192.168.20.38 主节点
192.168.20.52 从节点
192.168.20.111 从节点
3.集群目的
无论在那台服务器中订阅了信息,无论在那台服务器上发布信息,订阅者都可以收到发布的信息。集群部署有一个
专有名词叫做“桥接”,实现桥接的方式需要修改config.mk与mosquitto.conf文件。值得说明的是如果有10台服务器做
mosquitto集群,每台服务器上将桥连接打开,然后只需要更改一台服务器上的mosquitto.conf文件即可,其他服务器
的mosquitto.conf文件不需要做任何改动。大大方便了集群的维护。如果有新的服务器加入或删除只需要修改主服务器
的mosquitto.conf即可。
4.开启服务器桥连接
分别在三台服务器上执行如下命令:
cd /home/mosquitto-1.4.14
vi config.mk
找到WITH_BRIDGE:=yes 将签名的“#”号去掉开启桥连接模式。(默认是开启的,为了无误查看一下)
WITH_BRIDGE:=yes
5.创建桥接客户端用户和密码
在三个节点都执行如下命令:
mosquitto_passwd -b /etc/mosquitto/pwfile hthl_bridge 123456
6.修改权限控制
在三个节点的aclfile文件中分别追加:
# This is a bridge user.
user hthl_bridge
topic #
然后分别重启服务。
7.配置mosquitto.conf的桥连接属性
- 修改主节点192.168.20.38的/etc/mosquitto/mosquitto.conf文件,增加如下信息:
- # =================================================================
- # bridge
- # =================================================================
- # 桥接名称
- connection broker52
- # 节点地址
- address 192.168.20.52:1883
- # 消息主题
- topic # both 2 "" ""
- # 桥连接用户名
- remote_username hthl_bridge
- # 桥连接密码
- remote_password 123456
- # 桥接名称
- connection broker111
- # 节点地址
- address 192.168.20.111:1883
- # 消息主题
- topic # both 2 "" ""
- # 桥连接用户名
- remote_username hthl_bridge
- # 桥连接密码
- remote_password 123456
- # 桥连接协议版本MQTT3.11
- bridge_protocol_version mqttv311
- # 是否发布桥接的状态信息
- notifications true
- # 桥接断开时,是否清除远程服务器中的消息
- cleansession true
- # 桥连接是否可用的检测开关
- try_private true
- # 桥接模式
- start_type automatic
7.测试
7.1订阅
在38节点执行:mosquitto_sub -h 192.168.20.38 -t hthl/hyt -u hthl_sub -P 123456
在52节点执行:mosquitto_sub -h 192.168.20.52 -t hthl/hyt -u hthl_sub -P 123456
在111节点执行:mosquitto_sub -h 192.168.20.111 -t hthl/hyt -u hthl_sub -P 123456
7.2发布
在38节点执行:mosquitto_pub -h 192.168.20.38 -t hthl/hyt -u hthl_pub -P 123456 -m "你好,世界38!"
在52节点执行:mosquitto_pub -h 192.168.20.52 -t hthl/hyt -u hthl_pub -P 123456 -m "你好,世界52!"
在111节点执行:mosquitto_pub -h 192.168.20.111 -t hthl/hyt -u hthl_pub -P 123456 -m "你好,世界111!"
订阅服务的三个窗口会分别打印收到的消息,实现了无论在那台服务器中订阅了信息,无论在那台服务器上发布信息,
订阅者都可以收到发布的信息!ok,集群成功!