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

目前,官方的版本中,是没有集群功能的。官方说,可以使用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. 为什么重写equals必须重写hashcode?

    示例代码: class User { private String name; public User(String name) { this.name = name; } @Override pub ...

  2. CSS居中布局

    一:水平居中方案: 1.行内元素 设置 text-align:center 2.定宽块状元素 设置 左右 margin 值为 auto 3.不定宽块状元素 a:在元素外加入 table 标签(完整的, ...

  3. Docker介绍-hc课堂笔记

    1,传统模式-多个服务器:申请.安装jdk等.部署环境. 容器-整包,把有东西打包到一起,把这个包放在服务器上. linux中装了docker,起100个服务,改个数字就可以,5分钟左右. 2,虚拟化 ...

  4. ORA-27125: unable to create shared memory segment的解决方法(转)

    ORA-27125: unable to create shared memory segment的解决方法(转) # Kernel sysctl configuration file for Red ...

  5. Win10环境Tensorflow-GPU13.1/JupyterNotebook的安装

    参考 : Anaconda Tensorflow GPU 版本的安装问题 https://blog.csdn.net/u010977034/article/details/62038698 Windo ...

  6. 修复在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”这篇博客中MyScrollView出现滑动一会就不会上下滑动的问题

    在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”,这篇博客中的大部分问题已经解决了. 唯一遗憾的是,ViewPage随人能够工作了,但是My ...

  7. excel实用技巧——vlookup函数

    1.VLOOKUP函数的套路 VLOOKUP(要找谁,在哪儿找,返回第几列的内容,精确找还是近似找) 最后一个参数: 如果为0或FASLE,用精确匹配方式,而且支持无序查找: 如果为TRUE或被省略, ...

  8. Jmeter 安装后无法启动问题

    问题:按照教程java环境安装完成,也下载了 Jmeter  安装包,但是在启动的时候 dos窗口就一直提示下面的错误信息 ‘findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件.  ...

  9. 设计模式学习---UML常见关系的实现

    一.UML基本构造 UML的基本构造含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图, ...

  10. L017-linux系统定时任务crond入门小节

    L017-linux系统定时任务crond入门小节 oh my god!how old are you? 怎么老是你?没错,我又来了,哈哈哈,今天是我的生日呢,在这么重要的日子里,必须要更一篇学习小节 ...