--------------------------------------------------------前言-------------------------------------------------------------------

目前,官方的版本中,是没有集群功能的。官方说,可以使用bridge功能,将多个mqtt broker连接在一起。

笔者查找了网上的配置,大部分为如下配置:

图一

在主节点192.168.1.1的mosquitto.conf中,配置:

connection nodeA
address 192.168.1.5:1883
topic # both 0 connection nodeB
address 192.168.1.6:1883
topic # both 0

如上图所示,确实可以实现集群,但是有一个问题,如果主(192.1638.1.3)服务器down机,则所有的从服务器将会变成孤立的节点。

这个时候,笔者第一反应是,在添加一个主服务器,不就可以了吗,如下图所示:

图二

bridge-2与bridge的配置相同。在笔者沾沾自喜之际,同组的同事问我,是我一直在向mosquitto中写消息吗。

仔细检查配置,怎么会一直写消息呢,查看消息,是一样的。是的,死循环了。

mosquitto的桥接模式,本质上是pub/sub。

桥接配置中,在topic后有一个both/in/out的配置,是配置topic中的消息被转发的方向的,both:双向,in:进,out:出

笔者在图二中,都配置了both,则出现了死循环。如消息发送到3 , 3--->5 , 5--->4 , 4--->3  。

------------------------------------------------正文-----------------------------------------------------------------------------------------

仍然存在的问题:

(1)如果在增加bridge节点,需要修改多个节点的配置,并且重启,维护成本高。

(2)tcp长连接的负载均衡,由客户端来建立连接。客户端连接断开后,再次请求会重新建立连接,这时候,lvs将连接转发到存活节点,并建立长链接。当down机节点启动后,已经连接到其他节点的连接,不会再被负载到这台机器,只能等待重新连接,容易造成负载不均衡。

(3)keepalived的检查。keepalived在检查时,会不停的请求1883端口。

参考:

https://blog.csdn.net/Z729685731/article/details/70142182

https://stackoverflow.com/questions/26280208/cluster-forming-with-mosquitto-broker

mosquitto集群配置的更多相关文章

  1. Mosquitto搭建Android推送服务(三)Mosquitto集群搭建

    文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...

  2. 【转载】MQTT的学习之Mosquitto集群搭建

    本文出自:http://www.cnblogs.com/yinyi521/p/6087215.html 文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 ...

  3. Ubuntu 14.04中Elasticsearch集群配置

    Ubuntu 14.04中Elasticsearch集群配置 前言:本文可用于elasticsearch集群搭建参考.细分为elasticsearch.yml配置和系统配置 达到的目的:各台机器配置成 ...

  4. Redis 3.0 Cluster集群配置

    Redis 3.0 Cluster集群配置 安装环境依赖 安装gcc:yum install gcc 安装zlib:yum install zib 安装ruby:yum install ruby 安装 ...

  5. MongoDB高可用集群配置的方案

    >>高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. ...

  6. MySQL Cluster 7.3.5 集群配置实例(入门篇)

    一.环境说明: CentOS6.3(32位) + MySQL Cluster 7.3.5,规划5台机器,资料如下: 节点分布情况: MGM:192.168.137. NDBD1:192.168.137 ...

  7. MySQL Cluster 7.3.5 集群配置参数优化(优化篇)

    按照前面的教程:MySQL Cluster 7.3.5 集群配置实例(入门篇),可快速搭建起基础版的MySQL Cluster集群,但是在生成环境中,还是有很多问题的,即配置参数需要优化下, 当前生产 ...

  8. 关于ActiveMQ的几种集群配置

    ActiveMQ的几种集群配置. Queue consumer clusters 此集群让多个消费者同时消费一个队列,若某个消费者出问题无法消费信息,则未消费掉的消息将被发给其他正常的消费者,结构图如 ...

  9. solrCloud+tomcat+zookeeper集群配置

    solrcolud安装solrCloud+tomcat+zookeeper部署  转载请出自出处:http://eksliang.iteye.com/blog/2107002 http://eksli ...

随机推荐

  1. SGU刷题之路开启

    VJ小组:SGU---48h/题 每道做出的题目写成题解,将传送门更新在这里. SGU:101 - 200 SGU - 107 水题 解题报告 SGU - 105 找规律水题 解题报告 SGU - 1 ...

  2. swift static与class修饰符:static不参与动态派发

    static与class 都有类型成员的含义:相对于实例成员: static的另一个意思是静态派发:所以不能被继承. 要使用动态派发和继承的机制必须使用class继承. static的其它常见含义: ...

  3. ICSharpCode.SharpZipLib 开源压缩库使用示例

    官方网站:http://www.icsharpcode.net/OpenSource/SharpZipLib/Default.aspx 插件描述: ICSharpCode.SharpZipLib.dl ...

  4. WorldWind源码剖析系列:图像助手类ImageHelper

    图像助手类ImageHelper封装了对各种图像的操作.该类类图如下. 提供的主要处理方法基本上都是静态函数,简要描述如下: public static bool IsGdiSupportedImag ...

  5. OpenCV——开操作、闭操作、形态学梯度、顶帽、黑帽

    ---恢复内容开始--- ---恢复内容结束---

  6. Linux 4.18内核系列已过时

    的Linux内核维护者Greg Kroah-Hartman宣布Linux 4.18内核系列的生命周期结束,敦促用户尽快将他们的发行版升级到更新的内核. Linux 4.18内核由Linux Liny ...

  7. Python2.7-hmac

    hmac 模块,基于密钥的哈希算法 1.模块对象 1.1 HMAC 对象 1.1.1 初始化构建类:需要通过模块方法 hmac.new(key[, msg[, digestmod]]) 创建一个新对象 ...

  8. Android 使用正则表达式验证邮箱格式是否正确

    /** * 验证邮箱格式是否正确 */ public boolean emailValidation(String email) { String regex = "\\w+([-+.]\\ ...

  9. Jmeter—控件

    Jmeter有许多控件,可以在我们模拟测试请求时使用. Jmeter共有这8类控件: 配置元件—Http请求默认值 作用:仅设置一次目标URL服务器地址,之后不需要每次请求都写完整的,仅写相对地址就可 ...

  10. 五,ESP8266 TCP服务器多连接(基于Lua脚本语言)

    https://www.cnblogs.com/yangfengwu/p/7524326.html 一些时间去准备朋友的元器件了... 接着写,,争取今天写完所有的文章,,因为答应了朋友下周5之前要做 ...