首页 > 代码库 > 负载均衡

负载均衡

硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。软件负载均衡在互联网领域大量使用,常用的软件负载均衡软件有Nginx,Lvs,HaProxy等。

一、定义
当http请求过多时,反向代理服务器负责分发http请求,确保某台资源服务器(可以是集群)压力不会太大,而导致崩溃。解决并发压力,提供故障转移

二、Ngnix的负载均衡
1、定义
Ngnix是一款轻量级的Web服务器/反向代理服务器,使用epoll and kqueue作为开发模型,工作在七层Http协议的负载均衡系统。
2、特点
具有高性能、高并发、低内存使用等特点。
3、策略
A、内置策略
包含加权轮询和ip hash,这两种策略默认会编译进nginx内核,只需在nginx配置中指明参数即可。
B、扩展策略
如fair、通用hash、一致性hash等,默认不编译进nginx内核。
4、用途
Ngnix一般作为入口负载均衡或内部负载均衡,结合反向代理服务器使用。

三、HaProxy负载均衡
HAProxy也是使用较多的一款负载均衡软件,提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,是免费、快速并且可靠的一种解决方案,特别适用于那些负载特大的web站点。运行模式使得它可以很简单安全的整合到当前的架构中,同时可以保护你的web服务器不被暴露到网络上。
HTTP和HTTPS的负载均衡叫做七层负载均衡,而TCP和UDP协议的负载均衡叫做四层负载均衡。
1、特点

  • 支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
  • 配置简单,支持url检测后端服务器状态;
  • 做负载均衡软件使用,在高并发情况下,处理速度高于nginx;
  • TCP层多用于Mysql从(读)服务器负载均衡; (对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡)
  • 能够补充Nginx的一些缺点比如Session的保持,Cookie引导等工作。

2、策略,算法

  • 轮询,轮流分配到后端服务器;
  • 根据后端服务器性能分配;
  • 最小连接者优先处理;
  • 根据请求源IP,与Nginx的ip hash类似。

负载均衡