Mosquito集群模式

摘要:
每个服务器都已打开“网桥”模式。更改任何服务器上的Mosqueto.conf文件,其他服务器的Mosqueto.conf文件也会相应更改。要添加或删除新服务器,只需修改主服务器的Mosqueto.conf。因此,在88和89上,您只需要正常安装Mosquito服务,不需要其他配置。关键是在53的mosquito.conf中配置它。重新启动mosquito服务器。

参考链接:

http://blog.csdn.net/z729685731/article/details/70142182

http://blog.csdn.net/yuhaiyang457288/article/details/73927889

集群效果:无论在哪台服务器中订阅的信息,无论在哪台服务器上发布了信息,订阅者都可以收到发布的信息。

集群部署:桥接模式

  • 桥接方式的实现需要修改config.mk与mosquitto.conf文件。
  • 每台服务器都开启了“桥接”模式,更改任何一台服务器上的Mosquitto.conf文件,其他服务器的Mosquitto.conf文件随之变化。
  • 新服务器的加入或删除只需要修改主服务器的Mosquitto.conf即可。

Mosquito集群模式第1张

一、双节点模式

1、开启服务器桥接模式(默认开启)

进入安装目录
cd mosquitto-1.4.9/
vi config.mk
找到WITH_BRIDGE:=yes 去掉#注释。

2、配置Mosquitto.conf的桥连接属性

进入etc目录,并且打开Mosquitto.conf文件

cd /etc/mosquitto/
vi mosquitto.conf

找到Bridges节点,在下面加入如下代码:


connection mytest
address 10.19.22.53:1883
topic room1/# both 2 sensor/ myhouse/
bridge_protocol_version mqttv311
notifications true
cleansession true
try_private true
start_type automatic

---------------------------------------------------------------------------------

connection 连接名称,可以随便取

address 连接的另外服务器地址和端口号,如果有多台服务器,可以写多个address

topic 主题名称,“#”为通配符,表示发布端可以在room1/后面接任何文字

both 服务质量,2代表只有一次

sensor/ 本地前缀标识,可以随便命名

myhouse/ 远程前缀标识,可以随便命名

bridge_protocol_version mqttv311 桥连接协议版本MQTT3.11

notifications 是否发布桥接的状态信息

cleansession 桥接断开时,是否清除远程服务器中的消息

start_type 桥接模式,目前有三种:automatic、lazy、once

设置好之后保存退出。

3、开启服务器

第一步先确保从服务器先开启,第二步重新启动主服务器的Mosquitto服务。如果配置无误主服务器在开启的时候,会自动连接所有从服务器

Mytest是在Mosquitto.conf配置中设定的我的连接名称,后面是从服务器的地址与端口号。主服务器与从服务器已经桥接完成。

4、验证发布/订阅

集群的特点在任何服务器上都可以订阅与发布,并且订阅者可以收到在任何服务器中发送去信息。

测试场景:在从服务器中订阅一条信息,在主服务器中发布一条信息,从服务器的订阅者可以收到从主服务器中发布的消息。

(1)在从服务器中键入一下命令:

mosquitto_sub -t myhouse/room1/#
注意:myhouse/ 是编写Mosquitto.conf中topic的远程前缀,room1/#是topic中的订阅主题


(2)在主服务器中键入一下命令:
mosquitto_pub -t sensor/room1/temperature -m '26.3'
注意:sensor/ 是编写Mosquitto.conf中topic的本地前缀,room1/ 是topic中的订阅主题,temperature 相当与“#”通配符 

如果Mosquitto.conf配置无误,并且本地前缀与远程前缀拼写正确,在从服务器订阅主题,在主服务器发布消息,从服务器订阅者收到信息。

二、多节点集群

配置3台服务集群与3+n台理论一样,所以这里配置3台服务集群作为演示。

1、安装服务器

首先在上述2台服务器基础上,再增加一台服务器,配置步骤请参考第二篇博文。

2、配置服务器

假设有3台服务器分别是

192.168.0.53
192.168.0.88
192.168.0.89
其中53为主服务器,88与89为从服务器。
所以在88与89上只需要正常安装Mosquitto服务即可,其他不需要做任何配置。
重点还是在53的mosquitto.conf中配置。

依然打开mosquitto.conf,找到Bridge节点,每个配置项的含义

#connection <name>
#address <host>[:<port>] [<host>[:<port>]]
#topic <topic> [[[out | in | both] qos-level] local-prefix remote-prefix]

如果想增加一台服务器只需要重新添加connection、address、topic节点即可。因此Bridge节点变成下面形式:

connection mytest
address 192.168.0.88:1883
topic room1/# both 2 sensor/ myhouse/

connection mytest2
address 192.168.0.89:1883
topic room1/# both 2 sensor/ myhouse/

bridge_protocol_version mqttv311
notifications true
cleansession true
try_private true
start_type automatic

红色部分为新增加的服务器。重启Mosquitto服务器即可。

3、测试订阅、发布

分别在88与89服务器中输入mosquitto_sub -t myhouse/room1/# 订阅信息

在53服务器中输入mosquitto_pub -t sensor/room1/temperature -m '26.3' 发布消息

同事88与89都会收到“26.3”这条信息。如果只有一台服务器收到说明配置有问题。

免责声明:文章转载自《Mosquito集群模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos6.5安装nodejs13Python接口自动化之cookie、session应用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

腾讯基于Kubernetes的企业级容器云平台GaiaStack (转)

GaiaStack介绍 GaiaStack是腾讯基于Kubernetes打造的容器私有云平台。这里有几个关键词: 腾讯:GaiaStack可服务腾讯内部所有BG的业务; Kubernetes:GaiaStack的技术实现主要是依托于Kubernetes和容器; 私有云:GaiaStack通过腾讯云向外部企业输出解决方案,并成功在金融、游戏、政务、互联网等...

【大数据】hadoop3.0worker集群+flink+zeppelin+kafaka+zookeeper安装部署

零、环境 0.1软件版本 hadoop3.0 java 1.8.241 flink-1.12.3 zeppelin-0.9.0-bin-all kafka.1.1.1(详见kafka集群部署) 0.2硬件 192.168.0.24  8c32G500SSD hadoop-master 192.168.0.25 8c32G500SSD  hadoop-cli...

VM安装后没有桥链接协议解决方法

      从昨天到今天各种折腾的。网络就是各种不通,能使用的手段都上了,还是不行。奇怪的连DNS都ping不通。      ping DNS时一致报:  Destination Host Unreachable 。。。           VM无法将网络更改为桥接状态:没有未桥接的主机网络适配器     https://www.cnblogs.com/g...

Net分布式系统之五:C#使用Redis集群缓存

本文介绍系统缓存组件,采用NOSQL之Redis作为系统缓存层。 一、背景 系统考虑到高并发的使用场景。对于并发提交场景,通过上一章节介绍的RabbitMQ组件解决。对于系统高并发查询,为了提供性能减少数据库压力,我们加入缓存机制,可以不同层次加入缓存支持,本文主要介绍应用服务层和数据层之间加入缓存机制提升性能。业界缓存组件有Redis、Memcached...

KVM虚拟化环境准备

1. 概述2. 环境准备2.1 硬件环境2.2 软件环境2.2.1 YUM安装软件包2.2.2 环境检查2.2.3 启动libvirtd服务2.3 网络环境2.3.1 复制网卡配置文件2.3.2 修改网卡配置文件2.3.4 重启网络服务2.3.5 查看验证 1. 概述 本系列博客是想在VMware workstation创建的虚拟机console中...

高可用rabbitmq集群服务部署步骤

消息队列是非常基础的关键服务,为保证公司队列服务的高可用及负载均衡,现通过如下方式实现: RabbitMQ Cluster + Queue HA + Haproxy + Keepalived3台rabbitMQ服务器构建broker集群,允许2台服务器故障而服务不受影响,在此基础上,通过queue mirror实现队列的高可用,在本例中镜像到所有服务器,即...