项目详解4—haproxy 详解

一、企业服务架构图及负载均衡的要求

1、场景说明

  在企业生产环境中,每天会有很多的需求变更,比如增加服务器新业务上线、url路由修改、域名配置等等,对于前端负载均衡设备来说,容易维护,复杂度低,是首选指标。在企业中,稳定压倒一切,与其搞得很复杂,经常出问题,不如做的简单和稳定。

  在企业中,90%以上的故障,来源于需求变更。可能是程序bug,也可能是人为故障,也可能是架构设计问题等等。前端负载均衡设备为重中之重,在软件选型上一定充分考虑,能满足业务的前提下,尽可能降低复杂度,提高易维护性。

 

2、企业服务架构图

项目详解4—haproxy 详解

3、四层和七层负载均衡的区别

四层:

通过分析IP层及TCP/UDP层的流量实现的基于"IP+端口"的负载均衡。

七层:

可以根据内容,再配合负载均衡算法来选择后端服务器,不但可以根据"ip+端口"方式进行负载分流,还可以根据网站的URL,访问域名,浏览器类别,语言等决定负载均衡的策略。七层负载均衡模式下,负载均衡与客户端及后端的服务器会分别建立一次TCP连接,而在四层负载均衡模式下(DR),仅建立一次TCP连接;七层负载均衡对负载均衡设备的要求更高,处理能力也低于四层负载均衡。

 

二、haproxy介绍

1、定义

(1)HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高性能性、负载均衡,以及基于TCP和HTTP的应用程序代理。相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项更精细的控制更多的健康状态检测机制负载均衡算法

(2)HAProxy特别适用于那些负载特大的web站点这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

(3)包括 GitHub、Bitbucket、Stack Overflow、Reddit、Tumblr、Twitter在内众多知名网站,及亚马逊网络服务系统都使用了HAProxy

 

2、haproxy的功能

HAProxy 是TCP / HTTP 反向代理服务器,尤其适合于高可用性环境

① 可以针对HTTP 请求添加cookie ,进行路由后端服务器

② 可平衡负载至后端服务器,并支持持久连接

③ 支持基于cookie 进行调度

④ 支持所有主服务器故障切换至备用服务器

⑤ 支持专用端口实现监控服务

⑥ 支持不影响现有连接情况下停止接受新连接请求

⑦ 可以在双向添加,修改或删除HTTP 报文首部

⑧ 支持基于pattern 实现连接请求的访问控制

⑨ 通过特定的URI 为授权用户提供详细的状态信息

⑩ 支持http 反向代理,支持动态程序的反向代理,支持基于数据库的反向代理

版本:1.4 1.5 1.6 1.7 1.8

 

3、Haproxy的特性

① 可靠性与稳定性都非常出色,可与硬件级设备媲美。

② 支持连接拒绝,可以用于防止DDoS攻击

③ 支持长连接、短连接和日志功能,可根据需要灵活配置

④ 路由HTTP请求到后端服务器,基于cookie作会话绑定;同时支持通过获取指的url来检测后端服务器的状态

⑤ HAProxy还拥有功能强大的ACL支持,可灵活配置路由功能,实现动静分离,在架构设计与实现上带来很大方便

⑥ 可支持四层和七层负载均衡,几乎能为所有服务常见的提供负载均衡功能

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydpxx.html