【RabbitMQ】单机集群安装(十一)

一、环境说明

笔记本(8G-500G),安装Ubuntu 20.04.3 LTS,学习RabbitMq集群安装。

RabbitMQ 集群

RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各节点的magic cookie来实现)。

因此,RabbitMQ天然支持Clustering。

这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA方案和保存集群的元数据。

集群是保证可靠性的一种方式,同时可以通过水平扩展以达到增加消息吞吐量能力的目的。

二、安装RabbitMQ

1、安装 erlang
sudo apt-get install erlang-nox     # 安装erlang
erl -version     #验证是否成功
2、添加公钥
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
sudo apt-key add rabbitmq-release-signing-key.asc
3、更新软件包
sudo apt-get update
4、安装 RabbitMQ
sudo apt-get install rabbitmq-server  #安装成功自动启动
5、查看 RabbitMq状态
systemctl status rabbitmq-server   #Active: active (running) 说明处于运行状态

# service rabbitmq-server status 用service指令也可以查看,同systemctl指令
6、启动RabbitMQ
rabbitmq-server -detached

三、单机多实例搭建

1、关闭RabbitMQ服务
systemctl stop rabbitmq-server
### 使用下面命令检测一下,确认mq服务是否都关闭
ps aux|grep epmd
ps aux|grep erl
2、创建并启动节点
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15672}]" rabbitmq-server  start &
sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit1 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" rabbitmq-server start &
sudo RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit2 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" rabbitmq-server start &

注意,一个节点启动成功之后,再创建下一个节点。

3、设置rabbit为主节点,rabbit1,rabbit2为从节点。
# 停止应用
sudo rabbitmqctl -n rabbit stop_app
# 清楚节点上的历史,否则节点无法加入集群
sudo rabbitmqctl -n rabbit reset
#启动应用
sudo rabbitmqctl -n rabbit start_app

sudo rabbitmqctl -n rabbit1 stop_app
sudo rabbitmqctl -n rabbit1 reset
sudo rabbitmqctl -n rabbit1  join_cluster  rabbit@wchw-Lenovo-IdeaPad-Y470
sudo rabbitmqctl -n rabbit1 start_app

sudo rabbitmqctl -n rabbit2 stop_app
sudo rabbitmqctl -n rabbit2 reset
sudo rabbitmqctl -n rabbit2  join_cluster  rabbit@wchw-Lenovo-IdeaPad-Y470
sudo rabbitmqctl -n rabbit2 start_app
4、给每个节点添加用户并设置权限以及资源
sudo rabbitmqctl  -n rabbit add_user admin wsxadmin
sudo rabbitmqctl  -n rabbit set_user_tags admin administrator
sudo rabbitmqctl -n rabbit set_permissions -p / admin ".*" ".*" ".*"

sudo rabbitmqctl  -n rabbit1 add_user admin wsxadmin
sudo rabbitmqctl  -n rabbit1 set_user_tags admin administrator
sudo rabbitmqctl -n rabbit1 set_permissions -p / admin ".*" ".*" ".*"

sudo rabbitmqctl  -n rabbit2 add_user admin wsxadmin
sudo rabbitmqctl  -n rabbit2 set_user_tags admin administrator
sudo rabbitmqctl -n rabbit2 set_permissions -p / admin ".*" ".*" ".*"
5、查看集群信息
sudo rabbitmqctl cluster_status -n  rabbit

四、小结

如果采用多机部署方式,需读取其中一个节点的cookie, 并复制到其他节点(节点之间通过cookie确定相互是否可通信)。

cookie存放在/var/lib/rabbitmq/.erlang.cookie。

例如:主机名分别为rabbit-1、rabbit-2

1、逐个启动各节点

2、配置各节点的hosts文件( vim /etc/hosts)

ip1:rabbit-1

ip2:rabbit-2

其它步骤雷同单机部署方式

posted @   二月无雨  阅读(42)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示