RabbitMQ集群配置方案

一、环境要求

  • 1、所有节点需要在同一个局域网内。
  • 2、所有节点需要有相同的 erlang cookie,否则不能正常通信,为了实现cookie内容一致,采用scp的方式进行。
  • 3、准备三台主机,配置相同
    • 192.168.204.20 设置主机名rabbitmq1
    • 192.168.204.21 设置主机名rabbitmq2
    • 192.168.204.22 设置主机名rabbitmq3
  • 4、集群中所有节点都需要hosts文件解析

二、部署过程(每个节点都要配置)

  • 1.所有节点配置:vim /etc/hosts
   192.168.204.20 rabbitmq1
   192.168.204.21 rabbitmq2
   192.168.204.22 rabbitmq3
  • 2.所有节点安装rabbitmq和erlang
yum install erlang rabbitmq-server -y

修改配置文件

cp /usr/share/doc/rabbitmq-server-3.3.5/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

安装的版本不同,文件位置也可能不同,根据rabbitmq版本而定

vim /etc/rabbitmq/rabbitmq.config

把第53行的:{loopback_users, []} 解除注释

在这里插入图片描述

  • 3.导入rabbitmq的管理界面
rabbitmq-plugins enable rabbitmq_management

重启rabbitmq服务

systemctl restart rabbitmq-server.service
  • 4.设置erlang运行节点
    • 一定要保证三台机器的cookie内容一致
    • 找到erlang.cookie文件位置
    • 源码安装的一般会存在.erlang.cookie文件
    • rpm安装在/var/lib/rabbitmq/.erlang.cookie

使用scp将rabbit1中的.erlang.cookie传给rabbitmq2和rabbitmq3

scp /var/lib/rabbitmq/.erlang.cookie rabbitmq2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie rabbitmq3:/var/lib/rabbitmq/.erlang.cookie

在这里插入图片描述
重启一下

systemctl restart rabbitmq-server.service
  • 操作rabbitmq2和rabbitmq3

关闭rabbitmq服务

rabbitmqctl stop

启动 RabbitMQ 服务器,并将其放在后台运行
2、3 独立运行节点,warning提示不用理会

rabbitmq-server -detached
  • 查看各个节点状态
rabbitmqctl cluster_status

每台主机看到的只有一个的server信息。目前尚未组合成集群

  • 5.添加用户并设置密码(每个节点都配置)
    • 由于guest这个用户,只能在本地访问,所以我们要在每个节点上,新增一个用户并赋予对/的所有权限,然后添加到管理员组中,让此用户能够远程访问

添加用户

rabbitmqctl add_user blood 1234

设置权限

rabbitmqctl set_permissions -p "/" blood ".*" ".*" ".*"

添加到管理组

rabbitmqctl set_user_tags blood administrator
  • 6.访问测试
    • http://ip:15672 例:http://192.168.204.20:15672
    • 账号:blood
    • 密码:1234
    • 此时每个节点是单独的一台RabbitMQ,下面将他们组成集群。

三、组成集群

  • 简介:
    rabbitmq-server 启动时,会一起启动:节点和应用,它预先设置RabbitMQ应用为standalone(脱机)模式。要将一个节点加入到现有的集群中,你需要停止这个应用,并将节点设置为原始状态。如果使用rabbitmqctl stop,应用和节点都将被关闭。所以使用rabbitmqctl stop_app仅仅关闭应用。(停应用,不停止节点)

  • 1.将rabbitmq2和rabbitmq3加入到rabbitmq1中组成集群

    • 操作rabbitmq2

仅停止应用,不关闭节点(注意是节点2)

rabbitmqctl stop_app

加入rabbitmq1
集群名字一定不要写错(查看rabbitmq1 的节点状态)

rabbitmqctl join_cluster rabbit@rabbitmq1

启动应用

rabbitmqctl start_app
  • 操作rabbitmq3

仅停止应用,不关闭节点(注意是节点3)

rabbitmqctl stop_app

加入rabbitmq1
集群名字一定不要写错(查看rabbitmq1 的节点状态)

rabbitmqctl join_cluster rabbit@rabbitmq1

启动应用

rabbitmqctl start_app
  • 2.在任意节点上查看集群状态
rabbitmqctl cluster_status

在这里插入图片描述
看到这种情况,说明集群配置成功。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
此时删除一个man用户会发现都删除了

rabbitmqctl delete_user man

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值