RabbitMQ多机多节点集群部署(上)

简介: RabbitMQ多机多节点集群部署

一、 环境准备

  • 准备三台安装好RabbitMQ 的机器,安装方法见之前介绍
    提示:如果使用虚拟机,可以在一台VM上安装好RabbitMQ后,创建快照,从快照创建链接克隆,会节省很多磁盘空间
  • 10.10.1.41
  • 10.10.1.42
  • 10.10.1.43

二、修改配置文件

  1. 修改10.10.1.41机器上的/etc/hosts文件
sudo vim /etc/hosts

2.添加IP和节点名

10.10.1.41 node1
10.10.1.42 node2
10.10.1.43 node3

3.将10.10.1.41上的hosts文件复制到另外两台机器上

sudo scp /etc/hosts root@node2:/etc/
sudo scp /etc/hosts root@node3:/etc/

说明:命令中的root是目标机器的用户名,命令执行后,可能会提示需要输入密码,输入对应用户的密码就行了

4.将10.10.1.41上的/var/lib/rabbitmq/.erlang.cookie文件复制到另外两台机器上

scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/
  1. 提示:如果是通过克隆的VM,可以省略这一步

三、防火墙添加端口

  • 给每台机器的防火墙添加端口
  1. 添加端口
sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent

2.重启防火墙

sudo firewall-cmd --reload

四、启动RabbitMQ

  1. 启动每台机器的RabbitMQ
sudo systemctl start rabbitmq-server

或者

rabbitmq-server -detached

2.将10.10.1.42加入到集群

# 停止RabbitMQ 应用
rabbitmqctl stop_app
# 重置RabbitMQ 设置
rabbitmqctl reset
# 加入到集群
rabbitmqctl join_cluster rabbit@node1 --ram
# 启动RabbitMQ 应用
rabbitmqctl start_app

3.查看集群状态,看到running_nodes,[rabbit@node1,rabbit@node2]表示节点启动成功

rabbitmqctl cluster_status

提示:在管理界面可以更直观的看到集群信息

4.将10.10.1.43加入到集群

# 停止 RabbitMQ 应用
rabbitmqctl stop_app
# 重置 RabbitMQ 设置
rabbitmqctl reset
# 节点加入到集群
rabbitmqctl join_cluster rabbit@node1 --ram
# 启动 RabbitMQ 应用
rabbitmqctl start_app

5.重复地3步,查看集群状态

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
消息中间件 RocketMQ
这个RocketMQ节点似乎是在正常工作,但是它不能接收或者处理消息
这个RocketMQ节点似乎是在正常工作,但是它不能接收或者处理消息
601 0
|
消息中间件 存储 负载均衡
RabbitMQ使用docker搭建集群并使用Haproxy实现负载均衡(多机镜像模式)
RabbitMQ使用docker搭建集群并使用Haproxy实现负载均衡(多机镜像模式)
617 0
RabbitMQ使用docker搭建集群并使用Haproxy实现负载均衡(多机镜像模式)
|
5月前
|
消息中间件 监控 Oracle
消息队列 MQ产品使用合集之启动Namesrv节点时,遇到报错,该如何解决
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
4月前
|
消息中间件 Java Apache
消息队列 MQ使用问题之如何在内外网环境下使用单组节点单副本模式
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
6月前
|
消息中间件 监控 Shell
RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
RocketMQ-初体验RocketMQ(03)_RocketMQ多机集群部署
83 0
|
消息中间件 运维 网络协议
rabbitmq 高可用集群部署踩坑
rabbitmq 高可用集群部署踩坑
364 0
|
消息中间件 存储 缓存
RabbitMQ 部署及配置详解(集群部署)
RabbitMQ 部署及配置详解(集群部署)
1205 0
|
消息中间件 存储 Apache
Apache RocketMQ 的 Broker 节点
Apache RocketMQ 的 Broker 节点
194 0
|
消息中间件 Java
Java 最常见的面试题:rabbitmq 对集群节点停止顺序有要求吗?
Java 最常见的面试题:rabbitmq 对集群节点停止顺序有要求吗?
|
消息中间件 Java
Java 最常见的面试题:rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?
Java 最常见的面试题:rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?