【史上最细教程】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

在这里插入图片描述

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Linux上使用RPM包搭建RabbitMQ,可以按照以下步骤进行操作: 1. 首先,将下载好的RabbitMQ RPM包放到`/usr/local/rabbitmq`目录下。可以使用以下命令将RPM包移动到指定目录: ``` mv rabbitmq-server-3.9.13-1.el7.noarch.rpm /usr/local/rabbitmq/ ``` 2. 接下来,执行以下命令安装RabbitMQ: ``` rpm -ivh /usr/local/rabbitmq/rabbitmq-server-3.9.13-1.el7.noarch.rpm ``` 3. 添加RabbitMQ开机启动,可以使用以下命令: ``` chkconfig rabbitmq-server on ``` 4. 下载完成后,导入RabbitMQ的签名密钥。可以使用以下命令导入密钥: ``` rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc ``` 5. 最后,安装RabbitMQ。可以使用以下命令进行安装: ``` rpm -ivh rabbitmq-server-3.8.0-1.el7.noarch.rpm ``` 请注意,以上步骤是基于CentOS 7操作系统的,如果你使用的是其他Linux发行版,请根据实际情况进行相应的调整。另外,还需要确保你已经安装了Erlang,可以根据需要从指定的资源下载地址获取Erlang和RabbitMQ的RPM包。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [Linux搭建RabbitMQ单机/集群步骤](https://blog.csdn.net/newIdea_xx/article/details/124092962)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux搭建RabbitMQ集群环境](https://blog.csdn.net/qq_28314431/article/details/128232916)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宋大米Pro

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

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

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

打赏作者

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

抵扣说明:

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

余额充值