昆山做网站公司徐州建设工程公共资源交易平台
2026/4/18 11:26:15 网站建设 项目流程
昆山做网站公司,徐州建设工程公共资源交易平台,网站开发需要多线程,产品类网站模板文章目录 前言当Java中指定的端口号绑定的rabbitmq服务挂掉了之后#xff0c;我们的程序是否还能够成功访问到rabbitmq服务呢什么是 HAProxy 负载均衡HAProxy 安装修改HAProxy配置文件使用HAProxy结论 前言 前面我们学习了 rabbitmq 搭建集群#xff0c;并且为了解决集群中…文章目录前言当Java中指定的端口号绑定的rabbitmq服务挂掉了之后我们的程序是否还能够成功访问到rabbitmq服务呢什么是 HAProxy 负载均衡HAProxy 安装修改HAProxy配置文件使用HAProxy结论前言前面我们学习了 rabbitmq 搭建集群并且为了解决集群中队列的高可用问题使用仲裁队列替代普通的队列但是其实这里还有一个问题就是我们在使用 Java 连接 rabbitmq 的时候需要指定 rabbitmq 服务的 IP 和端口号如果该端口号绑定的 rabbitmq 服务挂掉了那么我们的 Java 程序是否还能够访问到呢当Java中指定的端口号绑定的rabbitmq服务挂掉了之后我们的程序是否还能够成功访问到rabbitmq服务呢我们 Java 程序绑定的端口号是 5672也就是 rabbit 服务然后我们先将 rabbit 服务保持启动状态并且向队列中发送消息然后启动程序看是否能启动成功并且成功发送消息RequestMapping(/producer) RestController public class ProducerController { Autowired private RabbitTemplate rabbitTemplate; RequestMapping(/test) public String test() { rabbitTemplate.convertAndSend(,quorum.queue,rabbitmq test); return 消息发送成功; } }这里是顺利启动并且成功发送消息了的然后我们将 rabbit 服务给挂掉再来启动 Java 程序启动之后访问 127.0.0.1:8080/producer/test 向队列中发送消息可以发现报错了。既然这样的话是否就意味着每次我们 Java 连接的 rabbitmq 服务挂掉之后就需要重新修改我们的代码吗这里就可以用到我们的 HAProxy 负载均衡了。什么是 HAProxy 负载均衡在RabbitMQ集群中如果所有客户端都连接到同一个节点该节点的网络负载会显著增加而其他节点则可能处于空闲状态造成资源浪费。使用HAProxy作为负载均衡器可以将客户端的连接请求分散到集群中的不同节点实现负载均衡从而避免单个节点过载提高整个集群的处理能力和稳定性。HAProxy支持对后端服务器的健康检查可以定期检测RabbitMQ集群中各个节点的可用性。一旦发现某个节点不可用HAProxy会自动将该节点从负载均衡列表中移除并将新的连接请求转发到其他健康的节点确保服务的连续性和可用性。HAProxy 安装首先更新 apt 库apt-get update查找 HAProxyapt list | grep haproxy安装 haproxyapt-get install haproxy验证是否安装成功systemctl status haproxy查看 haproxy 版本haproxy -v如果要设置 haproxy 服务开机自启可以使用systemctl enable haproxy关闭开启自启就是systemctl disable haproxy修改HAProxy配置文件HAProxy 的配置文件默认在/etc/haproxy/haproxy.cfg路径下我们通过 vim 命令修改配置文件在这个配置文件中追加下面配置# haproxy web 管理界? listen stats bind *:8100 mode http stats enable stats realm Haproxy Statistics stats uri / stats auth admin:admin # 配置负载均衡 listen rabbitmq bind *:5670 mode tcp balance roundrobin server rabbitmq1 127.0.0.1:5672 check inter 5000 rise 2 fall 3 server rabbitmq2 127.0.0.1:5673 check inter 5000 rise 2 fall 3 server rabbitmq3 127.0.0.1:5674 check inter 5000 rise 2 fall 3 # haproxy web 管理界? listen stats #设置?个监听器, 统计HAProxy的统计信息 bind *:8100 #指定了监听器绑定到的IP地址和端? mode http #监听器的?作模式为HTTP stats enable #启?统计?? stats realm Haproxy Statistics stats uri / stats auth admin:admin #haproxy登录账号和密码 # 配置负载均衡 listen rabbitmq #设置监听器 bind *:5670 #监听器绑定到的IP地址和端?, 也就是集群前端IP, 供producer和consumer来进?选择由于5672端?已经默认使?, 这?选择5670端? mode tcp #由于RabbitMQ使?AMQP协议它是?个基于TCP的协议所以这?使?TCP模式 balance roundrobin #指定负载均衡策略为轮询 #负载均衡中的集群节点配置这?选择的rabbit节点 server rabbitmq1 127.0.0.1:5672 check inter 5000 rise 2 fall 3 server rabbitmq2 127.0.0.1:5673 check inter 5000 rise 2 fall 3 server rabbitmq3 127.0.0.1:5674 check inter 5000 rise 2 fall 3server rabbitmq1 127.0.0.1:5672 check inter 5000 rise 2 fall 3server rabbitmq1定义 RabbitMQ 服务的内部标识这里的 rabbitmq1 是指 haproxy 内部使用的不是指 rabbtimq 服务的节点的名称127.0.0.1:5672RabbitMQ 真实的IP和端口check inter 5000定义每隔多少毫秒检查 RabbitMQ 服务是否可用rise 2定义 RabbitMQ 服务在发生故障之后需要多少次健康检查才能被再次确认可用fall 3定义需要经历多少次失败的健康检查之后HAProxy 才会停止使用此 RabbitMQ 服务HAProxy支持多种负载均衡算法以满足不同的应用场景和需求。在RabbitMQ集群中常用的负载均衡算法包括轮询Round Robin按照顺序依次将请求分发到后端服务器。加权轮询Weighted Round Robin根据后端服务器的配置和负载情况分配不同的权重权重高的服务器将处理更多的请求。最少连接Least Connections动态地选择当前连接数最少的服务器来处理新的请求以提高后端服务的利用效率。源地址哈希Source Hash根据客户端的IP地址进行哈希计算将同一IP地址的客户端请求始终转发到同一台后端服务器以保持会话的连续性。配置完成之后我们重启 HAProxy 服务systemctl restart haproxy然后通过配置中的管理页面端口来查看管理页面访问到时候会提示我们输入用户名和密码这些就是配置文件中配置的用户名和密码使用HAProxy使用 HAProxy 之后的 RabbitMQ 的使用和普通的是一样的就是需要更改我们的 Java 代码连接 rabbitmq 的 IP 和端口号为 HAProxy 的 IP 和端口号然后我们的 rabbit 节点还是处于挂掉的状态我们启动程序并且生产消息使用 HAProxy 就解决了 Java 代码绑定的 rabbitmq 挂掉之后我们的 Java 程序无法连接到集群的问题了。结论感谢各位朋友们能够看到结尾找不到工作某直聘已读不回不妨看看这里超快回复助力每一位程序员早日找到理想的工作

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询