快速搭建RabbitMq集群

一、为什么要搭建集群

1、不可靠: 单机版的部署,容易出现内存崩溃,机器掉电或者主板故障等其他未知风险。
2、性能瓶颈: 单台 RabbitMQ服务器可以满足每秒 1000 条消息的吞吐量,那么如果应用需要 RabbitMQ 服务满足每秒 10 万条消息的吞吐量呢?购买昂贵的服务器来增强单机 RabbitMQ 务的性能显得捉襟见肘,搭建一个 RabbitMQ 集群才是解决实际问题的关键。

二、开始搭建集群

1、首先在本地创建三台linux虚拟机,并在上面部署好单机版本的RabbitMq

可参考教程点这里。

三台虚拟机的ip分为如下

虚拟机一:192.168.56.11
虚拟机二:192.168.56.12
虚拟机三:192.168.56.13

虚拟机一

快速搭建RabbitMq集群_第1张图片快速搭建RabbitMq集群_第2张图片

虚拟机二

快速搭建RabbitMq集群_第3张图片快速搭建RabbitMq集群_第4张图片

虚拟机三

快速搭建RabbitMq集群_第5张图片快速搭建RabbitMq集群_第6张图片

2、 修改三台虚拟机的hostname

vim /etc/hostname

修改完之后要重启虚拟机,使hostname生效!!!

reboot

虚拟机一:node1
虚拟机二:node2
虚拟机三:node3

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

3、配置各个节点的 hosts 文件,让各个节点都能互相识别对方

vim /etc/hosts

192.168.56.11 node1
192.168.56.12 node2
192.168.56.13 node3

快速搭建RabbitMq集群_第7张图片

4、确保各个节点的 cookie 文件使用的是同一个值

在 node1 上执行远程操作命令

快速搭建RabbitMq集群_第8张图片

scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/.erlang.cookie

5、启动 RabbitMQ 服务,顺带启动 Erlang 虚拟机和 RbbitMQ 应用服务(在三台节点上分别执行以下命令)

rabbitmq-server -detached

6、加入集群

在节点 2 执行

rabbitmqctl stop_app
#(rabbitmqctl stop 会将Erlang 虚拟机关闭,rabbitmqctl stop_app 只关闭 RabbitMQ 服务)
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app #(只启动应用服务)

快速搭建RabbitMq集群_第9张图片

node2已经成功添加进集群
快速搭建RabbitMq集群_第10张图片

在节点 3 执行

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node2
rabbitmqctl start_app

快速搭建RabbitMq集群_第11张图片

node3已经成功添加进集群
快速搭建RabbitMq集群_第12张图片

7、此时集群已经搭建完成,查看集群状态(任意一台服务器都可以)

rabbitmqctl cluster_status #查看集群状态

快速搭建RabbitMq集群_第13张图片

8、需要重新设置用户 (在任意一台服务器都可以)

rabbitmqctl add_user admin admin #创建账号
rabbitmqctl set_user_tags admin administrator #设置用户角色
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" #设置用户权限

快速搭建RabbitMq集群_第14张图片

你可能感兴趣的:(RabbitMq,java-rabbitmq,rabbitmq,java)