HAProxy 是一个使用 C 语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于 TCP 和 HTTP 的应用程序代理。GitHub、Bitbucket、Stack Overflow、Reddit、Tumblr、Twitter 和 Tuenti 在内的知名网站,及亚马逊网络服务系统都在使用 HAProxy。
TiDB Server 作为无限水平扩展的无状态计算节点,需要能提供稳定且高性能的负载均衡组件用对外统一的接口地址来提供服务,而 HAProxy 在负载均衡的生态中占有很大的市场,TiDB 用户可以将这一成熟稳定的开源工具应用在自己的线上业务中,承担负载均衡、高可用的功能。
![9615663c7afbfc5d6fda524482290028.png](https://i-blog.csdnimg.cn/blog_migrate/4c2229bdbb2db7392da01712c87d9a68.jpeg)
HAProxy 简介
HAProxy 由 Linux 内核的核心贡献者 Willy Tarreau 于 2000 年编写,他现在仍然负责该项目的维护,并在开源社区免费提供版本迭代。最新的稳定版本 2.0.0 于 2019 年 8 月 16 日发布,带来更多 优秀的特性 。HAProxy 部分核心功能
高可用性:HAProxy 提供优雅关闭服务和无缝切换的高可用功能;
- 负载均衡:L4(TCP)和 L7(HTTP)负载均衡模式,至少 9 类均衡算法,比如 roundrobin,leastconn,random 等;
- 健康检查:对 HAProxy 配置的 HTTP 或者 TCP 模式状态进行检查;
- 会话保持:在应用程序没有提供会话保持功能的情况下,HAProxy 可以提供该项功能;
- SSL:支持 HTTPS 通信和解析;
- 监控与统计:通过 web 页面可以实时监控服务状态以及具体的流量信息。
HAProxy 部署操作
1. 硬件要求
根据 HAProxy 官方文档 对 HAProxy 的服务器硬件配置有以下建议(也可以根据负载均衡环境进行实际推算,在此基础上提高服务器配置):
硬件资源 | 最低配置 |
CPU | 2 核,3.5 GHz |
内存 | 16 GB |
存储容量 | 50 GB(SATA 盘) |
网卡 | 万兆网卡 |
2. 软件要求
根据官方介绍,我们对操作系统和依赖包有以下建议(如