RabbitMq-集群安装
1、两个节点单点mq安装完成
2、加入集群
文章底部有本次实验使用安装包
单点部署:
MQ下载版本:Downloading and Installing RabbitMQ — RabbitMQ
MQ历史版本:Tags · rabbitmq/rabbitmq-server · GitHub
编译语言erlang和mq对应关系参考:https://www.rabbitmq.com/which-erlang.html#eol-series
erlang下载地址:https://packagecloud.io/rabbitmq/erlang?page=6
这里以3.7.17的tar.gz包为例:
#单节点部署:
#上传erlang、rabbitmq-server版本包
yum install -y erlang-21.3.8.15-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.7.17-1.el7.noarch.rpm
systemctl start rabbitmq-server && systemctl enable rabbitmq-server
启用web端插件(端口15672):
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server
#添加用户、设置为管理员
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
#授予 admin 用户对所有虚拟主机的所有权限:
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
消费者访问端口:5672
web端访问端口:15672
集群间访问端口:25672
#集群部署(两节点已部署完成):
#hosts文件加主机名解析
vim /etc/hosts
172.24.47.103 nodeA
172.24.47.104 nodeB
#关闭所有mq服务,拷贝集群认证文件
systemctl stop rabbitmq-server
sz /var/lib/rabbitmq/.erlang.cookie
#覆盖其他节点.erlang.cookie
chmod 400 .erlang.cookie && chown rabbitmq:rabbitmq .erlang.cookie
#在 Node A 上执行:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
#在 Node B 上执行:
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@nodeA
rabbitmqctl start_app
#任意节点执行
rabbitmqctl cluster_status
#集群部署完成,创建账号
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
#授予 admin 用户对所有虚拟主机的所有权限:
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
-----
集群模式修改为镜像模式
rabbitmqctl set_policy ha-all "" '{"ha-mode":"all","ha-sync-mode":"automatic"}' --priority 1 --apply-to queues
集群模式和镜像模式是 RabbitMQ 中的两种不同的高可用性设置。
集群模式(Clustering Mode):
在集群模式中,多个 RabbitMQ 节点通过网络连接在一起,形成一个逻辑上的集群。
集群中的每个节点都具有相同的队列、交换器和绑定等元数据。
客户端可以连接到任何一个节点,并在集群中进行消息的发布和订阅。
集群模式提供了故障转移和负载均衡的功能。
当一个节点失败时,集群会自动将该节点上的队列迁移到其他节点上,以保证消息的持久性和可访问性。
镜像模式(Mirroring Mode):
在镜像模式中,队列的内容会被自动复制到集群中的其他节点。
每个队列都有一个主节点和零个或多个镜像节点。
主节点接收并处理所有的生产者和消费者请求,而镜像节点仅被用于备份目的。
当主节点失败时,其中一个镜像节点会被选举为新的主节点,从而保证队列的可用性和持久性。
镜像模式通过向集群中的多个节点复制队列的内容来提供高可用性。
区别:
集群模式关注整个 RabbitMQ 的高可用性,通过将多个节点连接在一起来实现故障转移和负载均衡。
镜像模式关注队列的高可用性,通过在集群中的多个节点之间复制队列的内容来实现冗余备份和故障切换。
集群模式可以实现所有元数据的共享,包括队列、交换器、绑定等;而镜像模式仅复制队列的内容。
在集群模式下,每个节点都可以处理消息的生产和消费;而在镜像模式下,只有主节点才能接收和处理请求,镜像节点用于备份。
根据您的需求,您可以选择使用集群模式、镜像模式或两者结合,以实现 RabbitMQ 的高可用性和容错能力。
rabbitmq-3.9.11、erlang-23.3.2.1:
链接:https://pan.baidu.com/s/1uatJGEVkL26hzcOtFZy_bg
提取码:1111
参考:
https://blog.csdn.net/char1otte/article/details/129803451