消息中间件RabbitMQ-----高可用

1.虚拟机安装centos

没有配置DNS会引起的问题

yum命令 
ssh命令等不能进行,参考

https://blog.csdn.net/jasonhector/article/details/78657532

2.yum安装net-tools:

  yum install net-tools

安装完成后需要添加用户才可以访问管理台页面

rabbitmq集群分为:镜像模式和普通模式(内存节点和磁盘节点之分)

集群通过.erlang.cookie文件(不同节点的文件需要一样)实现数据同步,文件路径/var/lib/rabbitmq/.erlang.cookie                     查看隐藏文件:ls -a

更改hostname之后重启

重启之后,集群通过hostname进行通信,先修改host文件,然后ping通hostname,

vi /etc/hosts

结尾处添加
192.168.220.128 rabbitmq1
192.168.220.129 rabbitmq2
192.168.220.130 rabbitmq3

然后搭建rabbitmq2与rabbitmq1的集群

1.先关闭mq2的应用,rabbitmqctl stop_app 

2.连接mq1,并设置当前节点为内存(ram,磁盘节点为dis)节点  rabbitmqctl join_cluster rabbit@rabbitmq1 --ram

3.启动mq2,rabbitmqctl start_app 

 

镜像模式------就是普通模式加上镜像队列 

通过维护master节点和slave节点,进行队列全部信息的复制

当master节点存在时,通过master节点进行操作,再与slave节点同步。如果master节点down机,从slave节点再随机选出一个master节点

有两种添加镜像队列方法:代码中或者控制台(优选)

Map<String,Object> map= new HashMap<>();
        map.put("x-ha-policy","all");//镜像队列,在所有节点发生镜像
        map.put("x-ha-nodes","[rabbitmq@rabbitmq1,]");//镜像加在那些节点上

这里举个例子 如果想配置所有名字开头为 policy的队列进行镜像 镜像数量为1那么命令如下:
rabbitmqctl set_policy ha_policy "^policy_" '{"ha-mode":"exactly","ha-params":1,"ha-syncmode":"automatic"}' 

 

HAProxy:插件进行负载均衡,地址直接连这个插件不用直接连rabbitmq了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值