七、Mosquito 集群搭建
本章主要讲述Mosquitto 集群搭建的两种方式
1、进行双服务器搭建
2、进行多服务器搭建
一、Mosquitto的分布式集群部署
如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简单的Mosquitto集群模式。
首先集群需要2台以上的Mosquitto服务器。安装方式同上。
先了解下Mosquitto集群模式的逻辑图,如下:
可以看出,无论在那台服务器中订阅了信息,无论在那台服务器上发布信息,订阅者都可以收到发布的信息。那么下一步我们着手搭建集群服务器,为了方便只演示2台服务器之间的集群搭建。
集群部署有一个专有名词叫做“桥接”,实现桥接的方式需要修改config.mk与mosquitto.conf文件。值得说明的是如果有10台服务器做Mosquitto集群,每台服务器上将桥连接打开,然后只需要更改一台服务器上的Mosquitto.conf文件即可,其他服务器的Mosquitto.conf文件不需要做任何改动。大大方便了集群的维护。如果有新的服务器加入或删除只需要修改主服务器的Mosquitto.conf即可。
1、开启服务器桥连接
进入安装目录
cd mosquitto-1.4.9/
打开config.mk文件
vi config.mk
找到WITH_BRIDGE:=yes 将签名的“#”号去掉开启桥连接模式。(默认是开启的,为了无误查看一下)
2、配置Mosquitto.conf的桥连接属性
进入etc目录,并且打开Mosquitto.conf文件
cd /etc/mosquitto/
vi mosquitto.conf
找到Bridges节点,在下面加入如下代码:
connection master
address 172.16.192.103: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服务。如果配置无误主服务器在开启的时候,会自动连接所有从服务器,显示如下:
master实在Mosquitto.conf配置中设定的我的连接名称,后面是从服务器的地址与端口号
如上图所示,主服务器与从服务器已经桥接完成。
4、验证发布/订阅
集群的特点在任何服务器上都可以订阅与发布,并且订阅者可以收到在任何服务器中发送去信息。
测试场景:在从服务器中订阅一条信息,在主服务器中发布一条信息,从服务器的订阅者可以收到从主服务器中发布的消息。
(1)在从服务器中键入一下命令:
二、多集群部署
配置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只能有一个IP地址,address红色的部分是留有多个ip的保存。(貌似是对前地址的一个备份,如果前地址服务器挂了可以立马接手备用服务器,笔者尚未证实)
如果想增加一台服务器只需要重新添加connection、address、topic节点即可。因此Bridge节点变成下面形式:
![](/assets/blank.gif)
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
![](/assets/blank.gif)
红色部分为新增加的服务器。重启Mosquitto服务器即可。
3、测试订阅、发布
测试理论与第一节类似:
分别在88与89服务器中输入mosquitto_sub -t myhouse/room1/# 订阅信息
在53服务器中输入mosquitto_pub -t sensor/room1/temperature -m '26.3' 发布消息
同事88与89都会收到“26.3”这条信息。如果只有一台服务器收到说明配置有问题。
转载于:https://www.cnblogs.com/yueli/p/7655809.html
七、Mosquito 集群搭建相关推荐
- RabbitMQ集群搭建(七)
先来介绍一下RabbitMQ集群 RabbitMQ集群有两种模式,一种是普通模式,即默认的集群模式,另外一种为镜像模式,可以把队列做成镜像队列 我们在学习两种模式之前,先来了解下一些关于RabbitM ...
- (七)centos7案例实战——nginx+keepalived高可用服务器集群搭建
前言 本节内容延续之前的内容,往期博客已经介绍了如何安装nginx服务器以及将nginx安装成为一个系统服务,本节内容是在前期内容的基础上,搭建一个高可用的nginx服务器集群,主要使用Keepali ...
- 第七节:Nacos集群搭建
Nacos集群搭建 1.集群结构图 官方文档: https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html 其中包含3个nacos节点,然后一个 ...
- 大数据调度平台Airflow(八):Airflow分布式集群搭建及测试
目录 Airflow分布式集群搭建及测试 一.节点规划 二.airflow集群搭建步骤 1.在所有节点安装python3.7 2.在所有节点上安装airflow 三.初始化Airflow 1.每台节点 ...
- 2021年大数据Kafka(三):❤️Kafka的集群搭建以及shell启动命令脚本编写❤️
全网最详细的大数据Kafka文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Kafka的集群搭建以及shell启动命令脚本编写 一.搭建 ...
- mycat mysql好可用架构_想要学会MyCat高可用集群搭建,但是这些知识点却还玩不明白?...
一.集群架构 1.MyCat实现读写分离架构 在我前面的文章, 我已经讲解过了通过MyCat来实现MySQL的读写分离, 从而完成MySQL集群的负载均衡 , 如下面的结构图: 但是以上架构存在问题 ...
- redis 集群搭建_一文轻松搞懂redis集群原理及搭建与使用
转载:https://juejin.im/post/5ad54d76f265da23970759d3 作者:SnailClimb 这里总结一下redis集群的搭建以便日后所需同时也希望能对你有所帮助. ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- Nginx+keepalived从入门到集群搭建(手把手教学,建议收藏)
目录 一.什么是Nginx 二.Nginx的相关概念 1.正向代理 2.反向代理 3.负载均衡 4.动静分离 三.Nginx安装 1.安装 2.其他配置 3.windows中nginx安装 四.Ngi ...
最新文章
- 用AI打造科技公益新模式,腾讯发起公益创新挑战赛,聚焦三大社会问题
- iOS UIWebView 访问https 绕过证书验证的方法
- python导入txt文件并绘图-Python读取txt某几列绘图的方法
- CSP认证201403-2窗口[C++题解]:模拟、结构体
- 大宝的读后感:(转载)
- C# 委托+事件的例子:①温度报警②计算器
- Java高并发系列 — AQS
- bzoj4593: [Shoi2015]聚变反应炉
- Python编辑距离
- redhat 6安装mysql5.7_RedHat6.5/CentOS6.5安装Mysql5.7.20的教程详解
- 合并查找到的文件,至新的文件中
- 国内主流的ERP软件大盘点
- Windows 下 cmd 窗口使用 ssh 命令
- word批量修改图片的大小
- Vs2008调试慢的问题
- Android跳转qq进行聊天
- Unity3D Delegate
- 手游联运平台:游戏详情页介绍
- 虚拟机vs裸金属服务器,裸金属虚拟机
- 郑大研究生计算机科学与技术,21郑大考研计算机科学与技术、软件工程考研数据分析...
热门文章
- oracle 加查询锁,oracle 锁查询 select加锁方法
- java数组1 100偶数和_java – 数组偶数和奇数排序
- 编写五子棋程序时如何添加下棋时的音效_干货:如何提高编程能力
- 计算机二级考试vb知识点,2016计算机二级《VB》考试重要知识点
- python怎么new对象_Python使用__new__()方法为对象分配内存及返回对象的引用示例
- python手机端自动点赞_python自动点赞功能的实现思路
- oppo计算机打不开怎么回事,一体机电脑突然关机了?然后就打不开了怎么回事啊?...
- 【图像分割模型】全局特征与局部特征的交响曲—ParseNet
- 中国石化行业节能减排行业发展动态与运营前景规划展望报告2022年
- 全球及中国甲苯甲酸行业投资决策与运营前景状况分析报告2022版