2 负载均衡简介
负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展
阿里云SLB介绍:https://developer.aliyun.com/article/1803

2.1 为什么使用负载均衡
- Web服务器的动态水平扩展-->对用户无感知
- 增加业务并发访问及处理能力-->解决单服务器瓶颈问题
- 节约公网IP地址-->降低IT支出成本
- 隐藏内部服务器IP-->提高内部服务器安全性
- 配置简单-->固定格式的配置文件
- 功能丰富-->支持四层和七层,支持动态下线主机
- 性能较强-->并发数万甚至数十万
2.2 负载均衡类型
四层:
LVS: Linux Virtual Server
Nginx: 1.9版之后
HAProxy: High Availability Proxy
七层:
HAProxy
Nginx
硬件:
F5 https://www.f5.com/zh_cn
Netscaler https://www.citrix.com/zh-cn/products/citrix-adc/
Array htts://www.arraynetworks.com.cn/
深信服 https://www.sangfor.com.cn/
北京灵州 http://www.lingzhou.com.cn/cpzx/llfzjh/
2.3 应用场景
四层: Redis、Mysql、RabbitMQ、Memcache等
七层: Nginx、Tomcat、Apache、PHP、图片、动静分离、API等
随着公司业务的发展,公司负载均衡服务既有四层的,又有七层的,通过LVS实现四层和Nginx实现七层的负载均衡对机器资源消耗比较大,并且管理复杂度提升,运维总监要求,目前需要对前端负载均衡服务进行一定的优化和复用,能否用—种服务同既能实现七层负载均衡,又能实现四层负载均衡,并且性能高效,配置管理容易,而且还是开源。
在企业生产环境中,每天会有很多的需求变更,比如增加服务器、新业务上线、url路由修改、域名配置等等,对于前端负载均衡设备来说,容易维护,复杂度低,是首选指标。在企业中,稳定压倒一切,与其搞得很复杂,经常出问题,不如做的简单和稳定。在企业中,90%以上的故障,来源于需求变更。可能是程序bug,也可能是人为故障,也可能是架构设计问题等。前端负载均衡设备为重中之重,在软件选型上—定充分考虑,能满足业务的前提下,尽可能降低复杂度,提高易维护性
2.4 HAProxy介绍
HAProxy是法国开发者 威利塔罗(willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具备高并发(一万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计,目前最新TLS版本为2.4(2021年)

历史版本:

历史版本更新功能: 1.4 1.5 1.6 1.7 1.8 1.9 2.0 2.1 2.2 2.3 2.4 2.5-dev
1.8: 多线程,HTTP/2缓存...
1.7: 服务器动态配置,多类型证书...
1.6: DNS解析支持,HTTP连接多路复用...
1.5: 开始支持SSL,IPv6,会话保持...
从2013年HAProxy分为社区版和企业版,企业版将提供更多的特性和功能以及全天24小时的技术支持等服务。
2.4.1 企业版
企业版网站:https://www.haproxy.com/

2.4.2 社区版

社区版网站:http://www.haproxy.org/
github:https://github.com/haproxy

2.4.3 版本对比
| 功能 | 社区版 | 企业版 |
|---|---|---|
| 高级HTTP/TCP负载平衡和持久性 | 支持 | 支持 |
| 高级健康检查 | 支持 | 支持 |
| 应用程序加速 | 支持 | 支持 |
| 高级安全特性 | 支持 | 支持 |
| 高级管理 | 支持 | 支持 |
| HAProxy Dev Branch新功能 | 支持 | |
| 24*7支持服务 | 支持 | |
| 实时仪表盘 | 支持 | |
| VRRP和Route Health Injection HA工具 | 支持 | |
| ACL,映射和TLS票证密钥同步 | 支持 | |
| 基于应用程序的高级DDoS和Bot保护(自动保护) | 支持 | |
| Bot(机器人)监测 | 支持 | |
| Web应用防火墙 | 支持 | |
| HTTP协议验证 | 支持 | |
| 实时集群追踪 | 支持 |
2.4.4 HAProxy功能


支持功能:
TCP 和 HTTP反向代理
SSL/TSL服务器
可以针对HITP请求添加cookie,进行路由后端服务器
可平衡负载至后端服务器,并支持持久连接
支持所有主服务器故障切换至备用服务器
支持专用端口实现监控服务
支持停止接受新连接请求,而不影响现有连接
可以在双向添加,修改或删除HTTP报文首部
响应报文压缩
支持基于pattern实现连接请求的访问控制
通过特定的URI为授权用户提供详细的状态信息

支持http反向代理
支持动态程序的反向代理
支持基于数据库的反向代理
不具备的功能:
正向代理--squid,nginx
缓存代理--varnish
web服务--nginx、tengine、apache、php、tomcat
UDP--目前不支持UDP协议
单机性能--相比LVS性能较差







Comments | NOTHING