独怜幽草涧边生
上有黄鹂深树鸣
概念
负载均衡是一种在现有网络架构基础上,提高服务吞吐量、并发性能、带宽、网络处理能力的技术。通俗点说是将任务交由多个单位完成,网络中特指将前端请求通过某种负载均衡算法分发给后端多个服务器或处理单元中的一个去执行。
如图所示,负载均衡处理模块相当于客户端流量和后台服务之间的调度员,由其负责选择合适的服务器处理相应的客户流量,保证整个服务的高可用性。
算法
- 轮询法(Round Robin)
将请求按顺序分配到后端服务器上,均衡对待后端每一台服务器,不关心当前服务器的连接和负载情况 - 最小连接数法(Least Connections)
当前连接数最小的服务器接收请求 - 最短响应时间法(Least Time)
选择最快响应且当前连接数最少的服务器 - Hash
将请求利用某种哈希算法,将其ip或者request url哈希到某一特定服务器上 - IP Hash
特指对源ip进行哈希 - 随机法(Random with Two Choices)
字面意思,随机分配,随着请求数量越来越大,每台服务器处理的请求趋于平衡
种类
- HTTP重定向
服务器通过request头中的location将请求重定向到新的url上 - DNS负载均衡
DNS服务器将请求的域名映射到实际的ip上,可以是一对多,这样DNS服务器便可执行负载均衡的功能(默认是轮询策略) - 反向代理
利用反向代理服务器转发请求