作用
- 均衡的可能是应用程序处理负载或是网络流量负载
- 大量的并发访问或数据流量分担到多台节点设备上分别处理,减少用户等待响应的时间
- 单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高
- 提供了一种廉价有效的方法来扩展服务器带宽,增加吞吐量,提高数据处理能力,同时又可以避免单点故障
负载均衡策略
- 权重轮询(随机)算法
- 根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求
- 适用于服务器性能存在差距的集群,确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重
- 响应速度优先算法
- 对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求
- 但这最快响应时间仅仅指的是负载均衡设备与服务器间的最快响应时间,而不是客户端与服务器间的最快响应时间
- 能较好的反映服务器的当前运行状态
- 对内部各服务器发出一个探测请求(例如Ping),然后根据内部中各服务器对探测请求的最快响应时间来决定哪一台服务器来响应客户端的服务请求
- (加权)最少连接数均衡算法
- 客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间加长,如果采用简单的轮循或随机均衡算法,每一台服务器上的连接进程可能会产生极大的不同
- 最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况
- 此种均衡算法适合长时处理的请求服务,如FTP
- 哈希负载均衡算法
- 根据源地址或者目标地址,从静态分配的哈希表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空
- 基于源IP的哈希:保证来自同一用户的请求被分发到同一后端服务器
- 基于源IP&端口的哈希:保证来自同一用户同一用户的请求被分发到同一后端服务器
- 基于目的IP的哈希:保证到达同一目的地的请求被分发到同一后端服务器
- DNS响应均衡算法
- 在此均衡算法下,分处在不同地理位置的负载均衡设备收到同一个客户端的域名解析请求,并在同一时间内把此域名解析成各自相对应服务器的IP地址(即与此负载均衡设备在同一位地理位置的服务器的IP地址)并返回给客户端,则客户端将以最先收到的域名解析IP地址来继续请求服务,而忽略其它的IP地址响应
- 适合应用在全局负载均衡的情况下,对本地负载均衡是没有意义的
- 因为它不能区分服务器的当前运行状态
- 需要尽量保证不同的客户端能均匀获得不同的地址
- 为了使地址能随机分配,就应使DNS缓存刷新时间尽量短,不同地方的DNS服务器能更新对应的地址,达到随机获得地址
- 然而将过期时间设置得过短,将使DNS流量大增,而造成额外的网络问题
- DNS负载均衡的另一个问题是,一旦某个服