rabbitmq实战(四)——RabbitMQ集群(主从副本集群)

可查看 rabbitmq官方集群方案

架构图

All data/state required for the operation of a RabbitMQ broker is replicated across all nodes. An exception to this are message queues, which by default reside on one node, though they are visible and reachable from all nodes. To replicate queues across nodes in a cluster --摘自官网

默认情况下:RabbitMQ代理操作所需的所有数据/状态都将跨所有节点复制。这方面的一个例外是消息队列,默认情况下,消息队列位于一个节点上,尽管它们可以从所有节点看到和访问
在这里插入图片描述

集群类型:

  1. 主从副本集群
  2. 镜像集群

本章先介绍普通副本集群

下章介绍常用的镜像集群

点击可查看: rabbitmq实战(十一)——RabbitMQ集群(镜像集群)


集群规划

	node1: 192.168.226.134 mq01  master 主节点
	node2: 192.168.226.135  mq02  repl1  副本节点
	node3: 192.168.226.136  mq03  repl2  副本节点

1.修改三台机器主机名和ip映射

更改三台MQ节点的计算机名分别为mq0、mq1 和mq2,然后修改hosts配置文件

vi /etc/hostname    //其他两台相同
  mq01.localdomain

vi /etc/hosts      //每台机器都加入这三行配置
192.168.226.134 mq01  //注意不能带.注意-主机名称也要更改
192.168.226.135 mq02
192.168.226.136 mq03

改完后记得reboot重启一下机器吧,有些说可以用source命令,不过好像不生效;

2.三个机器安装rabbitmq,并同步cookie文件

在node0上执行:

先同步cookie文件到mq02

[root@localhost etc]# scp /var/lib/rabbitmq/.erlang.cookie root@mq02:/var/lib/rabbitmq/
The authenticity of host 'mq1 (192.168.226.131)' can't be established.
ECDSA key fingerprint is 67:99:45:3c:2c:0e:2e:6b:e9:2b:0c:ba:d4:0c:28:9a.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added 'mq1,192.168.226.131' (ECDSA) to the list of known hosts.
root@mq1's password: 
.erlang.cookie

再同步cookie文件到mq03

[root@localhost etc]# scp /var/lib/rabbitmq/.erlang.cookie root@mq03:/var/lib/rabbitmq/

3.查看cookie是否一致

	node1: cat /var/lib/rabbitmq/.erlang.cookie 
	node2: cat /var/lib/rabbitmq/.erlang.cookie 
	node3: cat /var/lib/rabbitmq/.erlang.cookie 

4.后台启动rabbitmq所有节点执行如下命令

设置 rabbitmq分别启动节点和应用

rabbitmq-server -detached    

5.启动成功访问管理界面

在这里插入图片描述

这一步一定要分别访问一下界面

如果访问不了,那么就是防火墙端口没开放*

此时,我在这里就是因为防火墙的问题导致耗费了大量时间

6.在从节点(node2和node3)执行加入集群命令:

1.关闭       rabbitmqctl stop_app
2.加入集群    rabbitmqctl join_cluster rabbit@mq01
3.启动服务    rabbitmqctl start_app
[root@mq02 ~]#  rabbitmqctl stop_app
Stopping rabbit application on node rabbit@mq02 ...
[root@mq02 ~]#  rabbitmqctl join_cluster rabbit@mq01
Clustering node rabbit@mq02 with rabbit@mq01
[root@mq02 ~]# rabbitmqctl start_app
Starting node rabbit@mq02 ...

7.查看集群状态,任意节点执行:

[root@mq02 ~]# rabbitmqctl cluster_status
[root@mq02 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@mq02 ...
Basics

Cluster name: rabbit@mq03

Disk Nodes

rabbit@mq01
rabbit@mq02
rabbit@mq03

Running Nodes

rabbit@mq01
rabbit@mq02
rabbit@mq03

Versions

rabbit@mq01: RabbitMQ 3.8.8 on Erlang 23.0.2
rabbit@mq02: RabbitMQ 3.8.8 on Erlang 23.0.2
rabbit@mq03: RabbitMQ 3.8.8 on Erlang 23.0.2

Maintenance status

Node: rabbit@mq01, status: not under maintenance
Node: rabbit@mq02, status: not under maintenance
Node: rabbit@mq03, status: not under maintenance
...
...

看到这些信息,说明集群已成功

tips:

rabbitmqctl start_app的方式是可以有web页面的,而systemctl start rabbitmq-server是看不到界面的

8.登录管理界面,展示如下状态:

在这里插入图片描述

最后,如果看完对你有所帮助,不要吝啬关注 / 点赞 / 收藏哟,感谢感谢~

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值