rabbitmq集群和负载均衡

1.集群

当单台RabbitMQ服务器无法满足消息的吞吐量及安全性要求时,需要搭建RabbitMQ集群

bash 复制代码
# 关闭RabbitMQ服务
rabbitmqctl stop

重新设置服务

bash 复制代码
# 设置服务一
RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit1 rabbitmq-server start -detached
​
​
# 设置服务二
RABBITMQ_NODE_PORT=5674 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server start -detached
​
​
# 关闭服务2
rabbitmqctl -n rabbit2 stop_app
# 重新设置服务2
rabbitmqctl -n rabbit2 re
# 将服务2加入服务1中
rabbitmqctl -n rabbit2 join_cluster rabbit1@localhost
# 启动服务2
rabbitmqctl -n rabbit2 start_app

集群虽然搭建成功

但是队列只保存在了一个节点中,如果该节点故障,则会丢失整个集群信息

此时我们需要引入镜像队列机制,它可以将队列消息复制到集群中的其他节点上

在控制台上切换到ADMIN界面,新增一个policy

definition新增ha-mode=all

保存即可

2.负载均衡

无论生产者还是消费者,只能链接一个rabbitmq节点,如果只链接一个节点,就会造成单个节点压力过大。此时就需要haproxy负载工具

bash 复制代码
yum -y install haproxy
vim /etc/haproxy/haproxy.cfg
bash 复制代码
# 以下为添加内容
listen rabbitmq_cluster
        # 对外暴露端口
     bind 0.0.0.0:5672
     mode tcp
     balance roundrobin
     # 代理RabbitMQ的端口
     server node1 192.168.1.196:5672 check inter 5000 rise 2 fall 2
     server node2 192.168.1.195:5672 check inter 5000 rise 2 fall 2
​
​
listen stats
        # Haproxy控制台路径
     bind 192.168.1.195:8100
     mode http
     option httplog
     stats enable
     stats uri /rabbitmq-stats
     stats refresh 5s
​
# 启动
haproxy -f /etc/haproxy/haproxy.cfg

生产者或者消费者连接rabbitmq,需要链接负载工具的地址

java 复制代码
 connectionFactory.setHost("192.168.1.195");
相关推荐
無a伟10 分钟前
RabbitMQ :与AMQP的关系、核心组件、交换机类型
分布式·rabbitmq
隔窗听雨眠1 小时前
无辅助损失函数的负载均衡:DeepSeek MoE架构的核心突破
运维·架构·负载均衡
jyOverQ5 小时前
RabbitMQ 消息积压怎么办?Prefetch、消费者并发与扩容
分布式·后端·rabbitmq
爱浦路 IPLOOK15 小时前
矿山无人化作业5G专网方案:企业专网核心网络选型分析
网络·分布式·科技·5g·信息与通信
实战派K8S&DB16 小时前
如何在内网配置 TiDB 数据库 Agent
数据库·人工智能·分布式·tidb
实战派K8S&DB16 小时前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
小白羊丨17 小时前
Kafka任务重试、退避与失败恢复怎么做?
分布式·kafka
jyOverQ1 天前
RabbitMQ 延迟消息怎么实现?TTL 与死信队列
分布式·后端·rabbitmq·ruby
zcmodeltech1 天前
工程车模型多车型动作控制系统设计与实现方案——基于STM32与Modbus RTU的挖掘机、装载机、自卸车、起重机、电力工程车全场景控制方案,服务范围覆盖全国
分布式·stm32·单片机·嵌入式硬件·交互
StevenSurpass1 天前
智能工厂场景:FastPrintAgent 分布式打印中间件落地应用方案
分布式·mqtt·http·中间件·打印·fastreport