基于Centos7的RabbitMQ集群配置
如果没有安装,请先参考安装文档。
这里以2台rabbitmq服务为例进行配置
rabbitmq01 192.168.1.100 rabbitmq02 192.168.1.101
注:以下操作,如果没有指明具体服务器ip的,表明所有服务器的操作是一致的。
一、rabbitmq默认安装后的配置文件
环境变量配置:/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.14/sbin/rabbitmq-env
系统运行参数配置文件:/etc/rabbitmq/rabbitmq.config
默认rabbitmq.config文件是不存在的,需要从样例文件中拷贝过来
cp /usr/share/doc/rabbitmq-server-3.6.14/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
二、修改rabbitmq的日志目录和持久化数据目录
修改配置文件:/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.14/sbin/rabbitmq-env
在文件中增加两个配置项:
RABBITMQ_MNESIA_BASE=/work/rabbitmq/mnesia
RABBITMQ_LOG_BASE=/work/rabbitmq/logs
创建目录并改变文件属主为rabbitmq:
mkdir -p /work/rabbitmq/ chown -R rabbitmq:rabbitmq /work/rabbitmq
注意:修改目录后会导致之前的数据丢失,如用户、持久化的数据等,可以把之前的数据目录拷贝过来。
三、修改集群配置
1、修改每台主机的hosts文件
vim /etc/hosts
192.168.1.100 rabbitmq01 192.168.1.101 rabbitmq02
2、统一集群所有节点的 .erlang.cookie的文件
这里以192.168.1.100机器上的.erlang.cookie文件为标准,其它机器统一同步到本地。
基于rpm安装的rabbitmq-server,启动后.erlang.cookie文件是存放在/var/lib/rabbitmq的目录内,操作如下:
#下面这条语句是在rabbitmq02(192.168.1.101)机器上执行的,否直接覆盖目标机器的.erlang.cookie文件,会导致后面操作全部失败
systemctl stop rabbitmq-server
#下面这条是在rabbitmq01(192.168.1.100)机器上执行
cd /var/lib/rabbitmq ll -a chmod u+x .erlang.cookie scp .erlang.cookie 192.168.1.101:/var/lib/rabbitmq
拷贝完成后在rabbitmq02机器上再启动rabbitmq-server
systemctl start rabbitmq-server
3、加入集群
(1)检查rabbitmq01(192.168.1.100)和rabbitmq02(192.168.1.101)状态运行正常
(2)以下命令在rabbitmq02(192.168.1.101)服务器上操作
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app
正常情况下应该是没有问题的,如有问题请给我留言,谢谢。
注意:rabbitmq01上不要做rabbitmqctl stop_app,只需要在执行join_cluster命令的当前机器上执行就可以了。
4、设置镜像策略
在集群的任意一台机器上执行下面命令
rabbitmqctl set_policy ha-all "." '{"ha-mode":"all", "ha-sync-mode":"automatic"}' --apply-to all --priority 0
5、打开rabbitmq的web控制台
http://192.168.1.100:15672
登录完成后,可以看到两个节点信息

6、修改集群的存储类型
执行命令:rabbitmqctl cluster_status

见红色部分,两个节点的数据都是持久化到本地磁盘的。
如果希望使用节点数据只在内存中存储的,可以修改节点类型,命令如下:
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
再次查看:rabbitmqctl cluster_status

两个节点,一个节点类型被修改为:ram
浙公网安备 33010602011771号