cw2030

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

基于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

posted on 2018-01-18 09:56  cw2030  阅读(214)  评论(0)    收藏  举报