RabbitMq集群

搭建rabbitmq方式我们就不说了文章之前已经写过这些相关的内容:
rabbitMq搭建: https://mp.csdn.net/postedit/80305378
介绍一下RabbitMq的集群:
rabbitMq三种模式: 第一种单体结构  第二种普通模式 第三种镜像模式

  • 第一种:在不这里不做介绍,搭建完成就是第一种。
  • 第二种:默认模式
          默认模式,例举一个例子两台服务器分别搭建rabbitMQ,节点我们命名为 a 和 b,对消息(Queue)来说,消息的实体只存在某一个节点上,a 和 b 只有是看起来有相同的数据,把 a 中的消息实体取出并经过 b 发送给consumer。所以consumer应尽量连接每一个节点,从中取消息。即对于同一个逻辑队列,要在多个节点建立物理Queue。否则无论consumer连a或b,出口总在a,会产生瓶颈。当a节点故障后,b节点无法取到a节点中还未消费的消息实体。如果做了消息持久化,那么得等a节点恢复,然后才可被消费;如果没有持久化的话,就会产生消息丢失的现象。这个感觉就像主从复制的感觉,主不过是a 消息只是接受进入,b只是进行出。
  • 第三种:镜像队列
         官网的解释:https://www.rabbitmq.com/ha.html
         可以这样的理解,消息主动在镜像节点间同步,而不是在客户端临时拉取,这个做法官方解释的比较清楚在这里就不做粘贴复制的操作了。

准备工作:首先我们准备三台服务器 搭建rabbit就不在陈述了,上面的连接有搭建写的方法。
编辑命令 : vi /etc/hosts   (每台服务都配置上)

查询.erlang.cookie文件。
这里要注意:如果你是rpm包的默认地址在/var/lib/rabbitmq/.erlang.cookie
如果是压缩的或者其他文件 /root 下隐藏文件 ,官方是这样写的  $HOME下

我们查看一下这个文件到底是什么,其实就是一个认证Cookie字符串。

我们将这个字符串分别 编辑 每台服务器进行统一修改,尽量不要将文件进行拷贝因为拷贝rabbitmq发现没有 就又会生产一个新的cookie值把你的值进行替换,所以建议拷贝命令。
拷贝完我们重启rabbitmq
关闭:rabbitmqctl stop_app
加入到集群同时设置某一个为主节点:rabbitmqctl join_cluster --ram (..) 

我们设置2为主节点代码: rabbitmqctl join_cluster --ram jm-cyzy002
结果:

开启服务:rabbitmqctl start_app
设置策略:结果图

官网设置策略地址:https://www.rabbitmq.com/ha.html
winy-ha:为策略名称。
^:为匹配符,只有一个^代表匹配所有,^zlh为匹配名称为zlh的exchanges或者queue。
ha-mode:为匹配类型,他分为3种模式:all-所有(所有的queue),exctly-部分(需配置ha-params参数,此参数为int类型比如3,众多集群中的随机3台机器),nodes-指定(需配置ha-params参数,此参数为数组类型比如["3rabbit@F","rabbit@G"]这样指定为F与G这2台机器。)具体的讲解就不做一一的介绍,官网解释的很清楚。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值