当前位置:   article > 正文

RabbitMQ之负载均衡-HAProxy_rabbit-haproxy

rabbit-haproxy
  • 将客户端的连接和操作的压力分散到集群中的不同节点,防止单个或几台服务器压力过大成为访问的瓶颈,甚至宕机。
  • HAProxy是一款开源免费,并提供高可用性、负载均衡以及基于TCP和HTTP协议的代理软件,可以支持四层、七层负载均衡,经过测试单节点可以支持10W左右并发连接。
  • LVS是工作在内核模式(IPVS),支持四层负载均衡,实测可以支撑百万并发连接。
  • Nginx支持七层的负载均衡(后期的版本也支持四层了),是一款高性能的反向代理软件和Web服务器,可以支持单机3W以上的并发连接。

        这里我们使用HAProxy来做RabbitMQ的负载均衡,通过暴露VIP给上游的应用程序直接连接,上游应用程序不感知底层的RabbitMQ的实例节点信息。

  1. yum install gcc -y
  2. tar -zxf haproxy-2.1.0.tar.gz
  3. cd haproxy-2.1.0
  4. make TARGET=linux-glibc
  5. make install
  6. mkdir /etc/haproxy
  7. #赋权
  8. groupadd -r -g 149 haproxy
  9. # 添加用户
  10. useradd -g haproxy -r -s /sbin/nologin -u 149 haproxy
  11. #创建haproxy配置文件
  12. touch /etc/haproxy/haproxy.cfg

你过你觉得编译安装很麻烦,你可以简单的

yum -y install haproxy

        如何使用yum安装的,那么haproxy默认在/usr/sbin/haproxy,且会自动创建配置文件/etc/haproxy/haproxy.cfg

配置HAProxy

(1)修改

vim /etc/haproxy/haproxy.cfg

(2)配置文件都做了详细注释,如下:

  1. global
  2. log 127.0.0.1 local0 info
  3. # 服务器最大并发连接数;如果请求的连接数高于此值,将其放入请求队列,等待其它连接被释放;
  4. maxconn 5120
  5. # chroot /tmp
  6. # 指定用户
  7. uid 149
  8. # 指定组
  9. gid 149
  10. # 让haproxy以守护进程的方式工作于后台,其等同于“-D”选项的功能
  11. # 当然,也可以在命令行中以“-db”选项将其禁用;
  12. daemon
  13. # debug参数
  14. quiet
  15. # 指定启动的haproxy进程的个数,只能用于守护进程模式的haproxy;
  16. # 默认只启动一个进程,
  17. # 鉴于调试困难等多方面的原因,在单进程仅能打开少数文件描述符的场景中才使用多进程模式;
  18. # nbproc 20
  19. nbproc 1
  20. pidfile /var/run/haproxy.pid
  21. defaults
  22. log global
  23. # tcp:实例运行于纯TCP模式,第4层代理模式,在客户端和服务器端之间将建立一个全双工的连接,
  24. # 且不会对7层报文做任何类型的检查;
  25. # 通常用于SSL、SSH、SMTP等应用;
  26. mode tcp
  27. option tcplog
  28. option dontlognull
  29. retries 3
  30. option redispatch
  31. maxconn 2000
  32. # contimeout 5s
  33. timeout connect 5s
  34. # 客户端空闲超时时间为60秒则HA 发起重连机制
  35. timeout client 60000
  36. # 服务器端链接超时时间为15秒则HA 发起重连机制
  37. timeout server 15000
  38. listen rabbitmq_cluster
  39. # VIP,反向代理到下面定义的三台Real Server
  40. bind 192.168.100.101:5672
  41. #配置TCP模式
  42. mode tcp
  43. #简单的轮询
  44. balance roundrobin
  45. # rabbitmq集群节点配置
  46. # inter 每隔五秒对mq集群做健康检查,2次正确证明服务器可用,2次失败证明服务器不可用,并且配置主备机制
  47. server rabbitmqNode1 192.168.100.102:5672 check inter 5000 rise 2 fall 2
  48. server rabbitmqNode2 192.168.100.103:5672 check inter 5000 rise 2 fall 2
  49. server rabbitmqNode3 192.168.100.104:5672 check inter 5000 rise 2 fall 2
  50. #配置haproxy web监控,查看统计信息
  51. listen stats
  52. bind 192.168.100.101:9000
  53. mode http
  54. option httplog
  55. # 启用基于程序编译时默认设置的统计报告
  56. stats enable
  57. #设置haproxy监控地址为http://node1:9000/rabbitmq-stats
  58. stats uri /rabbitmq-stats
  59. # 每5s刷新一次页面
  60. stats refresh 5s

启动HAProxy:

haproxy -f /etc/haproxy/haproxy.cfg

关闭:

kill -9 <pid>

检查进程状态,还可以通过访问 http://vip:9000/rabbitmq-stats 查看状态

接下来,我们在之前的代码中直接测试,代码配置直接连接到HAProxy和监听端口上。 

集群的搭建就已经完成了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/831816
推荐阅读
相关标签
  

闽ICP备14008679号