负载均衡是系统设计最常见的一种方式,Nginx、HAProxy、LVS、F5用得比较普遍,不过Nginx只能在HTTP层负载,而HAProxy即可以在7层做负载,也可以在4层做负载,LVS配置有点太麻烦。
HAProxy是免费、极速且可靠的用于为TCP和基于HTTP应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。HAProxy还可以将后端的服务器与网络隔离,起到保护后端服务器的作用。HAProxy的负载均衡能力虽不如LVS,但也是相当不错,而且由于其工作在7层,可以对http请求报文做深入分析,按照自己的需要将报文转发至后端不同的服务器(例如动静分离),这一点工作在4层的LVS无法完成。
haproxy的安装,haproxy官网下载地址:http://www.haproxy.org/download/

haproxy 常用命令:

命令 说明
/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg 启动haproxy 服务
ps -ef |grep haproxy 查看haproxy 服务的进程状态
killall haproxy 停止haproxy 服务
注: 执行killall haproxy命令的前提就是,不能又进行调用haproxy服务,例如:keepalived正在调用 haproxy服务,执行killall haproxy命令无效

重新启动haproxy 服务

/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st `cat /var/run/haproxy.pid`
注:haproxy安装路径

一、RabbitMQ 集群环境节点说明

服务器IP hostname 节点说明 端口 管控台地址
192.168.0.119 hk-01 haproxy+keepalived 8100 http://192.168.0.119:8100/rabbitmq-stats
192.168.0.120 hk-02 haproxy+keepalived 8100 http://192.168.0.120:8100/rabbitmq-stats

文章目录

  • 一、RabbitMQ 集群环境节点说明
  • 一、Haproxy简介
  • 二、Haproxy 安装实战操作
    • 2.1. 下载环境+工具依赖包
    • 2.2.下载 haproxy
    • 2.3. 解压haproxy
    • 2.4. 进入解压目录、进行编译、安装haproxy
    • 2.5. 创建+配置haproxy配置文件
    • 2.6. 同步+修改配置haproxy文件
    • 2.7. 启动haproxy
    • 2.8. 查看haproxy进程状态
  • 三、浏览器访问+验证 haproxy

一、Haproxy简介

HAProxy是一款提供高可用性、负载均衡以及基于TCP和HTTP应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。
HAProxy适用于那些负载较大的web站点,这些站点通常又需要会话保持或七层处理。
HAProxy可以支持数以万计的并发连接,并且HAProxy的运行模式使得它可以很简单安全的整合进架构中,同时可以保护web服务器不被暴露到网络上。

二、Haproxy 安装实战操作

PS:119、120 节点同时安装Haproxy,下面步骤同步操作

2.1. 下载环境+工具依赖包

yum install gcc vim wget

2.2.下载 haproxy

wget https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-2.1.2.tar.gz/sha512/929d244a67f93337e3c791b1a29f9643ac288acdf0090dc7a05c72caf61c3b04ef376b84737351f0c54d58bca66ed8af18faa20ec3adc97067313732e0dfcd7d/haproxy-2.1.2.tar.gz

注:官网下载太慢
建议使用传送门
各个版本链接如下:
https://src.fedoraproject.org/repo/pkgs/haproxy/

为了节省时间,把下载好的软件包同步到120服务器

scp haproxy-2.1.2.tar.gz root@192.168.0.120:/app/software

2.3. 解压haproxy

tar -zxf haproxy-2.1.2.tar.gz -C /app/

2.4. 进入解压目录、进行编译、安装haproxy

#进入指定的解压目录
cd /app/haproxy-2.1.2/
#对haproxy进行源码编译
make TARGET=linux31 PREFIX=/app/haproxy
#安装 编译好的haproxy 并指定安装目录(根据公司要求)
make install PREFIX=/app/haproxy
#创建haproxy目录放置配置文件
mkdir /etc/haproxy
#赋权
groupadd -r -g 149 haproxy
useradd -g haproxy -r -s /sbin/nologin -u 149 haproxy
#创建haproxy配置文件
touch /etc/haproxy/haproxy.cfg
Haproxy配置
PS:haproxy 配置文件haproxy.cfg详解
vim /etc/haproxy/haproxy.cfg

给120服务器将此配置文件同步到/etc/haproxy目录下面
记得要修改一下haproxy的ip地址

2.5. 创建+配置haproxy配置文件

#创建haproxy配置文件
touch /etc/haproxy/haproxy.cfg
#Haproxy配置
PS:haproxy 配置文件haproxy.cfg详解
vim /etc/haproxy/haproxy.cfg

添加内容如下:

#logging options
globallog 127.0.0.1 local0 info #日志输出配置,所有日志都记录在本机,通过local0输出maxconn 5120chroot /app/haproxy #haproxy 安装路径uid 99 #所属运行的用户uidgid 99 #所属运行的用户组daemon  #后台运行quietnbproc 20pidfile /var/run/haproxy.pid #指定PID文件路径defaultslog global#使用4层代理模式,"mode http"为7层代理模式mode tcp#if you set mode to tcp,then you nust change tcplog into httplogoption tcplogoption dontlognullretries 3option redispatchmaxconn 2000#连接超时时间timeout connect 5s#客户端空闲超时时间为 60秒 则HA 发起重连机制timeout client 60s#服务器端连接超时时间为 15秒 则HA 发起重连机制timeout server 15s    #front-end IP for consumers and producters
listen rabbitmq_clusterbind 0.0.0.0:5672  #绑定协议端口#配置TCP模式#所处理的类别,默认采用http模式,可配置成tcp作4层消息转发mode tcp#balance url_param userid#balance url_param session_id check_post 64#balance hdr(User-Agent)#balance hdr(host)#balance hdr(Host) use_domain_only#balance rdp-cookie#balance leastconn#balance source //ip#简单的轮询balance roundrobin#负载均衡策略#rabbitmq集群节点配置 #inter 每隔五秒对mq集群做健康检查, 2次正确证明服务器可用,2次失败证明服务器不可用,并且配置主备机制server mq-01 192.168.0.115:5672 check inter 5000 rise 2 fall 2server mq-02 192.168.0.117:5672 check inter 5000 rise 2 fall 2server mq-03 192.168.0.118:5672 check inter 5000 rise 2 fall 2
#配置haproxy web监控,查看统计信息
listen statsbind 192.168.0.119:8100 #前端浏览器中查看统计的WEB界面地址mode httpoption httplog #日志类别,采用httplogstats enablestats auth admin:123456  #设置查看统计的账号密码#设置haproxy监控地址为http://localhost:8100/rabbitmq-statsstats uri /rabbitmq-statsstats refresh 5s  #5s刷新一次

注:以上配置基于haproxy-2.1.2 版本,低版本有部分差异

2.6. 同步+修改配置haproxy文件

#将 119 服务器 上的haproxy文件同步至 120 服务器
scp haproxy.cfg root@192.168.0.120:/etc/haproxy

将haproxy服务器IP修改一下即可,其他保持默认

#logging options
globallog 127.0.0.1 local0 info #日志输出配置,所有日志都记录在本机,通过local0输出maxconn 5120chroot /app/haproxy #haproxy 安装路径uid 99 #所属运行的用户uidgid 99 #所属运行的用户组daemon  #后台运行quietnbproc 20pidfile /var/run/haproxy.pid #指定PID文件路径defaultslog global#使用4层代理模式,"mode http"为7层代理模式mode tcp#if you set mode to tcp,then you nust change tcplog into httplogoption tcplogoption dontlognullretries 3option redispatchmaxconn 2000#连接超时时间timeout connect 5s#客户端空闲超时时间为 60秒 则HA 发起重连机制timeout client 60s#服务器端连接超时时间为 15秒 则HA 发起重连机制timeout server 15s    #front-end IP for consumers and producters
listen rabbitmq_clusterbind 0.0.0.0:5672  #绑定协议端口#配置TCP模式#所处理的类别,默认采用http模式,可配置成tcp作4层消息转发mode tcp#balance url_param userid#balance url_param session_id check_post 64#balance hdr(User-Agent)#balance hdr(host)#balance hdr(Host) use_domain_only#balance rdp-cookie#balance leastconn#balance source //ip#简单的轮询balance roundrobin#负载均衡策略#rabbitmq集群节点配置 #inter 每隔五秒对mq集群做健康检查, 2次正确证明服务器可用,2次失败证明服务器不可用,并且配置主备机制server mq-01 192.168.0.115:5672 check inter 5000 rise 2 fall 2server mq-02 192.168.0.117:5672 check inter 5000 rise 2 fall 2server mq-03 192.168.0.118:5672 check inter 5000 rise 2 fall 2
#配置haproxy web监控,查看统计信息
listen statsbind 192.168.0.120:8100 #前端浏览器中查看统计的WEB界面地址mode httpoption httplog #日志类别,采用httplogstats enablestats auth admin:123456  #设置查看统计的账号密码#设置haproxy监控地址为http://localhost:8100/rabbitmq-statsstats uri /rabbitmq-statsstats refresh 5s  #5s刷新一次

注:以上配置基于haproxy-2.1.2 版本,低版本有部分差异

2.7. 启动haproxy

/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
注: -f 指定启动的配置文件

2.8. 查看haproxy进程状态

ps -ef | grep haproxy

119 haproxy 服务器进程状态:

120 haproxy 服务器进程状态:

三、浏览器访问+验证 haproxy

PS:访问如下地址可以对rmq节点进行监控:
http://192.168.0.119:8100/rabbitmq-stats
http://192.168.0.120:8100/rabbitmq-stats


负载均衡工具 haproxy 集群安装部署完整流程相关推荐

  1. 负载均衡工具 haproxy 单机安装部署完整流程

    负载均衡是系统设计最常见的一种方式,Nginx.HAProxy.LVS.F5用得比较普遍,不过Nginx只能在HTTP层负载,而HAProxy即可以在7层做负载,也可以在4层做负载,LVS配置有点太麻 ...

  2. 「mysql优化专题」高可用性、负载均衡的mysql集群解决方案(12)

    不可避免的是,使用MySQL时随着时间的增长,用户量以及数据量的逐渐增加,访问量更是剧增,最终将会使MySQL达到某个瓶颈,那么MySQL的性能将会大大降低.怎么办?前面已经讲过十一篇优化方案,接下来 ...

  3. 高可用性、负载均衡的mysql集群解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 一.为什么需要mysql集群? 一个庞大的分布式系统的性能瓶颈中,最脆弱的就是连接.连接有两个,一个是客户端与后端的连接,另一 ...

  4. 负载均衡工具 haproxy剖析

    haproxy 进阶 应用场景 只是作为负载均衡的工具,至于是什么应用集群都可以,例如:上面的RabbitMQ集群 下面那redis集群再给大家举个例子: 创建+配置haproxy配置文件 #创建ha ...

  5. tidb集群安装部署

    tidb集群安装部署 部署架构图 一.安装tiup curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/inst ...

  6. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

  7. 资源放送丨《Oracle RAC 集群安装部署》PPT视频

    点击上方"蓝字" 关注我们,享更多干货! 前段时间,墨天轮邀请数据库资深专家 邦德 老师分享了<Oracle RAC 集群安装部署>,在这里我们将课件PPT和实况录像分 ...

  8. 今晚8点直播(内含福利)丨 Oracle RAC集群安装部署

    Oracle RAC集群安装部署-9月16日20:00 Oracle RAC真正的应用集群,它可以多个主机共同分散业务,来达到负载均衡和高可用,目前企业也大规模应用,具有稳定,很好的扩展性等特点. 作 ...

  9. 本周四直播预告(内含福利)丨 Oracle RAC集群安装部署

    Oracle RAC集群安装部署-9月16日20:00 Oracle RAC真正的应用集群,它可以多个主机共同分散业务,来达到负载均衡和高可用,目前企业也大规模应用,具有稳定,很好的扩展性等特点. 作 ...

最新文章

  1. 程序猿面试什么最重要?
  2. 生成对抗网络学习笔记5----DCGAN(unsupervised representation learning with deep convolutional generative adv)的实现
  3. 学python要基础吗-无基础可以学习Python吗?
  4. 005 NsPack 1.4 之附加数据初探
  5. 温故知新-[CPP]-Eclipse-CPP中一个Project多个Main
  6. LeetCode -- 204. Count Primes
  7. org.apache.ibatis.reflection.ReflectionException: Error instantiating class with invalid types
  8. Linux加密框架 crypto算法模板 以及HMAC算法模板实例
  9. web前端项目详解:OPPO首页进度条特效(定时轮播)
  10. python环境准备_一键实现Python环境准备
  11. POJ3278 HDU2717 Catch That Cow【BFS】
  12. Jupyter插件的使用
  13. Linux误删C基本运行库libc.so.6处理方法
  14. Oracle函数写法和举例
  15. content=IE=Edge是什么意思?
  16. JAVA中interface接口的使用
  17. curl php 用途,PHP使用CURL详解
  18. Android 相机教程,安卓应用开发调用系统相机教程
  19. 数字经济下的发展挑战
  20. python气象数据可视化学习笔记6——利用python地图库cnmaps绘制地图填色图并白化

热门文章

  1. 普通人为什么要学习Python
  2. struct linger
  3. 使用Notepad++打造称心的IDE: Python PHP Perl
  4. maven 无效的源发行版11
  5. 并发场景下的幂等问题——分布式锁详解
  6. 揭秘!业界创新的代码仓库加密技术
  7. 基于JindoFS+OSS构建高效数据湖
  8. 阿里巴巴大数据实践—实时技术
  9. 战“疫”期,阿里云云效团队在家高效开发实录
  10. 训练机器人看脸读“心”,真的靠谱吗?