🔖java
2022-04-17 10:35阅读: 21评论: 0推荐: 0

RabbitMQ集群配置简单记录

1.配置集群

RabbitMQ通过ssh通道进行集群直接的链接,这里准备了两台服务器分别如下

192.168.0.1 主机名 RabbitMQ-1 
192.168.0.1 主机名 RabbitMQ-2 

首先我们需要在这两台机器上配置好互相的host可以通过主机名进行访问

vim /etc/hosts
内网地址 RabbitMQ-1
内网地址 RabbitMQ-2
service network restart
#在 RabbitMQ-1 能通:
ping RabbitMQ-2
#在 RabbitMQ-2 能通:
ping RabbitMQ-1

当我们可以ping通之后我们需要设置一下 Erlang Cookie 让两台机器保持同样的 Cookie 才能顺利的建立集群

先启动双方的RabbitMQ
复制 RabbitMQ-1 中 /var/lib/rabbitmq/.erlang.cookie 文件中的值
粘贴到 RabbitMQ-2 /var/lib/rabbitmq/.erlang.cookie中 使用:wq! 保存
重启RabbitMQ-2 RabbitMQ服务

1.2 join服务器建立关联

Cookie我们已经配置好了 接下来需要把两个集群关联起来

对 RabbitMQ-1 节点做如下操作

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

这个是用来在rabbitmq1上执行的,这个也可以不执行,直接在节点服务器执行下边的脚本,不过得保证这个rabbitmq服务是正常启动的.

RabbitMQ-2 节点服务配置脚本

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@RabbitMQ-1
rabbitmqctl start_app

1.3 查看集群状态

可以通过 rabbitmqctl cluster_status 查看到如下状态证明集群已经配置成功

[root@Sunmi-RabbitMQ-1 ~]# rabbitmqctl cluster_status
Cluster status of node ‘rabbit@Sunmi-RabbitMQ-1’ …
[{nodes,[{disc,[‘rabbit@Sunmi-RabbitMQ-1’]},
         {ram,[‘rabbit@Sunmi-RabbitMQ-2’]}]},
 {running_nodes,[‘rabbit@Sunmi-RabbitMQ-2’,’rabbit@Sunmi-RabbitMQ-1’]},
 {cluster_name,<<“rabbit@Sunmi-RabbitMQ-1”>>},
 {partitions,[]},
 {alarms,[{‘rabbit@Sunmi-RabbitMQ-2’,[]},{‘rabbit@Sunmi-RabbitMQ-1’,[]}]}]

注意:建立好集群之后需要重新配置一下用户 配置的用户会影响整个集群

集群的各项模式

通常情况下,在集群中我们把每一个服务称之为一个节点,在 RabbitMQ 集群中,节点类型可以分为两种:

内存节点:元数据存放于内存中。为了重启后能同步数据,内存节点会将磁盘节点的地址存放于磁盘之中,除此之外,如果消息被持久化了也会存放于磁盘之中,因为内存节点读写速度快,一般客户端会连接内存节点。
磁盘节点:元数据存放于磁盘中(默认节点类型),需要保证至少一个磁盘节点,否则一旦宕机,无法恢复数据,从而也就无法达到集群的高可用目的。

PS:元数据,指的是包括队列名字属性、交换机的类型名字属性、绑定信息、vhost等基础信息,不包括队列中的消息数据。
RabbitMQ 中的集群主要有两种模式:普通集群模式和镜像队列模式。

配置镜像模式只需要在主节点运行如下命令:

  • p 之后加上你需要的Vhost
 rabbitmqctl set_policy -p / ha-all “^” ‘{“ha-mode”:”all”}’

附件:
使用docker
一、拉取镜像

docker pull rabbitmq:3.7-management

二、创建容器
1、新建目录

mkdir rabbitmq01 rabbitmq02 rabbitmq03

2、创建容器

docker run -d --hostname rabbitmq01 --name rabbitmqCluster01 -v /downloads/rabbitmq/rabbitmq01:/var/lib/rabbitmq -p 15672:15672 -p 5672:5672 -e RABBITMQ_ERLANG_COOKIE=‘rabbitmqCookie’ rabbitmq:3.7-management
docker run -d --hostname rabbitmq02 --name rabbitmqCluster02 -v /downloads/rabbitmq/rabbitmq02:/var/lib/rabbitmq -p 15673:15672 -p 5673:5672 -e RABBITMQ_ERLANG_COOKIE=‘rabbitmqCookie’ --link rabbitmqCluster01:rabbitmq01 rabbitmq:3.7-management
docker run -d --hostname rabbitmq03 --name rabbitmqCluster03 -v /downloads/rabbitmq/rabbitmq03:/var/lib/rabbitmq -p 15674:15672 -p 5674:5672 -e RABBITMQ_ERLANG_COOKIE=‘rabbitmqCookie’ --link rabbitmqCluster01:rabbitmq01 --link rabbitmqCluster02:rabbitmq02 rabbitmq:3.7-management

三、容器执行命令
容器一

docker exec -it rabbitmqCluster01 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

容器二

docker exec -it rabbitmqCluster02 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit

容器三

docker exec -it rabbitmqCluster03 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@rabbitmq01
rabbitmqctl start_app
exit

回到容器一

docker exec -it rabbitmqCluster01 bash
rabbitmqctl set_policy -p / ha “^” ‘{“ha-mode”:“all”,“ha-sync-mode”:“automatic”}’
posted @   所遇所思  阅读(21)  评论(0编辑  收藏  举报  
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
🔑
  1. 1 404 not found REOL
  2. 2 偏爱 张芸京
  3. 3 Glimpse of Us Joji
偏爱 - 张芸京
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 葛大为

作曲 : 陈伟

编曲 : 陈伟

把昨天都作废

现在你在我眼前

我想爱 请给我机会

如果我错了也承担

认定你就是答案

我不怕谁嘲笑我极端

相信自己的直觉

相信自己的直觉

顽固的人不喊累

爱上你 我不撤退

我说过 我不闪躲

我说过 我不闪躲

我非要这么做

讲不听 也偏要爱

更努力爱 让你明白

没有别条路能走

你决定要不要陪我

讲不听 偏爱

靠我感觉爱

等你的依赖

对你偏爱

痛也很愉快

把昨天都作废

把昨天都作废

现在你在我眼前

我想爱 请给我机会

如果我错了也承担

认定你就是答案

我不怕谁嘲笑我极端

相信自己的直觉

相信自己的直觉

顽固的人不喊累

爱上你 我不撤退

我说过 我不闪躲

我说过 我不闪躲

我非要这么做

讲不听 也偏要爱

更努力爱 让你明白

没有别条路能走

你决定要不要陪我

讲不听 偏爱

靠我感觉爱

等你的依赖

不后悔 有把握

不后悔 有把握

我不闪躲 我非要这么做

讲不听 也偏要爱

更努力爱 让你明白

没有别条路能走

你决定要不要陪我

讲不听 偏爱

靠我感觉爱

等你的依赖

对你偏爱 爱

痛也很愉快