RabbitMQ集群安装

RabbitMQ集群安装

在预读次教程前,请仔细阅读**《RabbitMQ单机版安装》**

集群节点说明,本次安装的集群包含3个节点,
Rabbit01(11.1.202.207)、
Rabbit02(11.1.202.208)、
Rabbit03(11.1.202.209),
每个节点都参考**《RabbitMQ单机版安装》**文档进行安装,并保持每个节点的软硬件环境一致,防止出现一些意料之外的问题。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2CLWsRpS-1656507395798)(resources/04-节点图.png)]

集群配置

配置cookie

1、创建集群前,需要将每个节点上的cookie保存一致,cookie存放在/var/lib/rabbitmq/.erlang.cookie或者$HOME/.erlang.cookie中,读取其中一个节点的cookie, 并复制到其他节点(节点之间通过cookie确定相互是否可通信)。

2、我用root用户进行解压安装的,所以的cookie配置文件在/root/.erlang.cookie路径下

3、本教程使用Rabbit01机器为主节点,所以将Rabbit01的cookie信息同步到其他两个节点。

4、/root/.erlang.cookie文件没有写权限,执行如下命令,添加写权限

#添加写权限
chmod +w /root/.erlang.cookie

5、使用vi命令修改Rabbit02和Rabbit03节点的vi /root/.erlang.cookie,是其和Rabbit01的文件/root/.erlang.cookie内容保持一致 或者 (scp) 。-- ZCUYAKXUVWHTOPAHQZRT

6、注意事项:修改完cookie,注意重启服务,使用rabbitmqctl stop命令停止服务,如果服务无法停止,使用如下命令杀死进程在启动服务

#杀死进程
ps -ef|grep rabbitmq|grep -v grep |awk '{ print $2 }' |xargs kill -9

#启动服务
	

配置host

保持3个节点可以通过hostname进行通讯,执行如下命令hostname获取hostname

[root@rabbitmq-appsbin]# hostname
rabbitmq-app
[root@rabbitmq-appsbin]#

3个节点的主机名称对应如下:

11.1.202.207  rabbitmq-app
11.1.202.208  rabbitmq-app01
11.1.202.209  rabbitmq-app02

使用vi命令修改/etc/hosts文件,添加ip地址和主机名称的映射

在/etc/hosts添加如下内容,前面是ip地址,后面是主机名称,中间用空格分开,每个节点都要添加。

11.1.202.207  rabbitmq-app
11.1.202.208  rabbitmq-app01
11.1.202.209  rabbitmq-app02

service network restart 重启网络

配置集群

保持每个节点都是启动状态,如果没有启动,使用如下命令启动

#启动服务
./rabbitmq-server -detached

#检查集群状态
./rabbitmqctl cluster_status

#如下命令,需要在rabbit02和rabbit03机器上都要执行:

#停止节点的集群服务
./rabbitmqctl stop_app

#添加节点到集群服务中,rabbitmq-app是rabbit01机器的主机名称
./rabbitmqctl join_cluster rabbit@rabbitmq-app

#启动节点的集群服务
	

#再次检查集群状态
./rabbitmqctl cluster_status

#出现如下内容说明集群中节点都正常添加和启动了
[root@rabbitmq-app sbin]# ./rabbitmqctl cluster_status
Cluster status of node rabbit@rabbitmq-app
[{nodes,[{disc,[rabbit@rabbitmq-app01,rabbit@rabbitmq-app02,rabbit@rabbitmq-app]}]},
 {running_nodes,[rabbit@rabbitmq-app02,rabbit@rabbitmq-app01,rabbit@rabbitmq-app]},
 {cluster_name,<<"rabbit@rabbitmq-app">>},
 {partitions,[]},
 {alarms,[{rabbit@rabbitmq-app02,[]},{rabbit@rabbitmq-app01,[]},{rabbit@rabbitmq-app,[]}]}]

#镜像队列

./rabbitmqctl set_policy -p / ha-allqueue “^” ‘{“ha-mode”:“all”}’

镜像队列的配置通过添加policy完成,policy添加的命令为:
rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
-p Vhost: 可选参数,针对指定vhost下的queue进行设置
Name: policy的名称
Pattern: queue的匹配模式(正则表达式)
Definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:指明镜像队列的模式,有效值为 all/exactly/nodes
all:表示在集群中所有的节点上进行镜像
exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定
ha-params:ha-mode模式需要用到的参数
ha-sync-mode:进行队列中消息的同步方式,有效值为automatic和manual
priority:可选参数,policy的优先级

修改节点类型

修改磁盘节点为内存节点
./rabbitmqctl stop_app
./rabbitmqctl change_cluster_node_type ram
./rabbitmqctl start_app

./rabbitmqctl stop_app
./rabbitmqctl change_cluster_node_type disc
./rabbitmqctl start_app

管理控制台查看节点信息

我们可以在管理控制台查看每个节点的情况:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下面我们举个栗子说明一下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值