【史上最细教程】Linux单机搭建RabbitMQ多实例教程

单机搭建RabbitMQ多实例教程

主要参考官方文档:https://www.rabbitmq.com/clustering.html

前提:已下载安装RabbitMQ (安装参考教程:【史上最细教程】CentOS7 下载安装 RabbitMQ(两种方式:手动安装 / Docker安装))

1、查看并暂停已有服务

查看当前RabbitMQ服务,看到是在运行中,先暂停该服务。

这里必须先看下,因为集群配置的前提是你的rabbitmq可以运行起来。

# ps aux|grep rabbitmq 或者systemctl status rabbitmq-server 查看服务状态,确保是能运行起来的 running中
systemctl status rabbitmq-server

# 停止服务
systemctl stop rabbitmq-server

2、两个实例搭建

场景:假设有两个rabbitmq节点,分别为rabbit-1, rabbit-2,rabbit-1作为主节点,rabbit-2作为从节点。

RabbitMQ是Erlang语言编写,该语言天生具有分布式特性,说白了,就是可以直接通过命令指定端口、节点名称等,去启动一个rabbitmq节点实例。

之前一个服务器上搭建多个mysql实例的时候,我是得手动去配置数据存放位置data、进程pid存放位置、配置文件指定端口等、日志位置log等,然后命令启动,但是这个rabbitmq目前看来是指定好端口后,支持直接命令启动一个实例。

正式情况考虑3个结点,集群环境更稳定一点,1个挂了还有另外2个,三角形具有稳定性。

步骤1:节点占用端口梳理

端口解释:

这些端口涉及到RabbitMQ消息队列的不同功能和通信协议。以下是对每个端口的解释:

  1. 15672: 这是RabbitMQ的HTTP API端口,用于管理和监控RabbitMQ服务器。您可以通过浏览器或使用HTTP客户端工具访问该端口来执行管理操作,如查看队列、交换机、绑定等信息。
  2. 25672: 这是RabbitMQ的集群通信端口,用于节点之间的内部通信和CLI工具之间的通信。集群中的不同节点使用该端口进行状态同步和节点间通信。
  3. 5672: 这是RabbitMQ的AMQP(高级消息队列协议)端口,用于与应用程序进行通信。AMQP是RabbitMQ使用的主要协议,它定义了消息的格式、交换机、队列、绑定等概念,以实现可靠的消息传递。

以上是RabbitMQ中常见的端口及其用途。请注意,这些端口在不同的配置和部署中可能会有所变化,具体取决于您的设置和需求。

节点占用端口梳理:

节点AMQP协议端口web管理监控插件访问端口集群间通信端口
rabbit-156721567225672
rabbit-256731567325673

步骤2:启动节点

# 启动第一个节点rabbit-1
sudo RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit-1 rabbitmq-server start &

# 启动第二个节点rabbit-2
# 注意:web管理插件端口占用,所以还要指定其web插件占用的端口号
# RABBITMQ_SERVER_START_ARGS=”-rabbitmq_management listener [{port,15673}]”
sudo RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit-2 rabbitmq-server start &

# 验证启动
ps aux|grep rabbitmq

查看结点启动进程信息:

image-20240203163248815

步骤3:绑定集群

# rabbit-1操作作为主节点
#停止应用
sudo rabbitmqctl -n rabbit-1 stop_app
#目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
sudo rabbitmqctl -n rabbit-1 reset
#启动应用
sudo rabbitmqctl -n rabbit-1 start_app


# rabbit2操作为从节点
# 停止应用
sudo rabbitmqctl -n rabbit-2 stop_app
# 目的是清除节点上的历史数据(如果不清除,无法将节点加入到集群)
sudo rabbitmqctl -n rabbit-2 reset
# 将rabbit2节点加入到rabbit1(主节点)集群当中【Server-node服务器的主机名】
sudo rabbitmqctl -n rabbit-2 join_cluster rabbit-1@'songdanminserver'
# 启动应用
sudo rabbitmqctl -n rabbit-2 start_app


# 验证集群状态
sudo rabbitmqctl cluster_status -n rabbit-1
//集群有两个节点:rabbit-1@服务器主机名、rabbit-2@服务器主机名

image-20240203170054694

image-20240205094344268

步骤4:Web监控、设置账号密码

需要给15672 node-1 和15673的node-2 设置用户名和密码。

# 节点1设置用户、密码,管理权限,对虚拟机/的配置、写入读取权限
rabbitmqctl -n rabbit-1 add_user admin admin
rabbitmqctl -n rabbit-1 set_user_tags admin administrator
rabbitmqctl -n rabbit-1 set_permissions -p / admin ".*" ".*" ".*"

# 节点1设置用户、密码,管理权限,对虚拟机/的配置、写入读取权限
rabbitmqctl -n rabbit-2 add_user admin admin
rabbitmqctl -n rabbit-2 set_user_tags admin administrator
rabbitmqctl -n rabbit-2 set_permissions -p / admin ".*" ".*" ".*"

注意:

如果采用多机部署方式,需读取其中一个节点的cookie, 并复制到其他节点(节点之间通过cookie确定相互是否可通信)。cookie存放在/var/lib/rabbitmq/.erlang.cookie。
例如:主机名分别为rabbit-1、rabbit-2
1、逐个启动各节点
2、配置各节点的hosts文件( vim /etc/hosts)
​ ip1:rabbit-1
​ ip2:rabbit-2
其它步骤雷同单机部署方式

访问、账号密码登录:

节点1:http://121.41.53.91:15672/#/ admin/admin

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码元宋大米

感谢小主大赏,留言可进互助群~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值