负载均衡 (Load Balancing) 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力,同时能够提高网络的灵活性和可用性。,
硬件
常用的硬件有F5
和Array
等商用负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护、缺点就是花销太大,对于规模较小的网络服务完全没有必要。
软件
目前使用最为广泛的负载均衡软件是 Nginx、LVS、HAProxy。
Nginx
轻量级,工作在第七层,可以针对 http、email 应用做一些分流策略(如针对域名、目录结构),带缓存功能,正则表达式比较灵活,比 HAProxy 强大。
对网络稳定性的依赖非常小,理论上能 ping 通就能进行负载功能
能把错误用日志打印出来
硬件不差的情况下一般能支撑几万次的并发量
LVS
重量级,使用 Linux 内核集群实现一个高性能、高可用的负载均衡服务器,具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability);工作在第四层,几乎可以对所有应用做负载均衡,包括 http、数据库、在线聊天室等。
工作稳定,因为其本身抗负载能力很强,自身有完整的双机热备方案,如 LVS+KeepAlived
HAProxy
方案
中小型 Web 应用(日 PV<1000 万),Nginx 完全够用;集群部署,可以用 DNS 轮询;大型网站或重要服务,且服务器较多时, 可以考虑用 LVS
前端采用 Nginx/HAProxy+Keepalived 作负载均衡器
后端采用 MySQL 数据库一主多从和读写分离,采用 LVS+Keepalived 的架构