概念
集群是一组协同工作的服务器,各有分工,对外表现为一个整体。
集群的分类
- 负载均衡集群 LBC
分担服务的总体压力 - 高可用集群 HAC
尽可能的保障服务状态的可用性 - 高性能运算集群 HPC
提供单台服务器提供不了的计算能力
常见集群拓扑图
负载均衡集群 LBC
使用意图:减轻单台服务器的压力,将用户请求分担给多台主机一起处理
实现方法
– 软件:LVS、RAC、Nginx
– 硬件:F5、BIG-IP
集群调度算法
静态调度算法
- RR轮询
将每次用户的请求分配给后端的服务器,从第一台服务器开始到第N台结束,然后循环 - WRR加权轮询
按照权重的比例实现在多台主机之间进行调度 - SH(source hash)源地址散列
将同一个IP的用户请求,发送给同一个服务器 - DH(destination hash)目标地址散列
将同一个目标地址的用户请求发送给同一个真实服务器(提高缓存的命中率)
动态调度算法
- LC(lest-connection)最少连接
将新的连接请求,分配给连接数最少的服务器 活动连接 × 256 + 非活动连接 - WLC加权最少连接
特殊的最少连接算法,权重越大承担的请求数越多 (活动连接 × 256 + 非活动连接 ) / 权重 - SED最短期望延迟
特殊的WLC算法 (活动连接 + 1) * 256 / 权重 - NQ永不排队
特殊的 SED 算法,无需等待,如果有真实服务器的连接数等于0那就直接分配不需要运算 - LBLC特殊的DH算法
即能提高缓存命中率,又要考虑服务器性能 - LBLCR LBLC+缓存
尽可能提高负载均衡和缓存命中率的折中方案