面试题答案
一键面试常见负载均衡策略
- 轮询(Round Robin):
- 原理:按顺序依次将请求分配到各个服务器节点。例如有节点A、B、C,第一个请求分配到A,第二个到B,第三个到C,第四个又回到A,以此类推。
- 确保数据均匀分布:每个节点在请求分配上有相同的机会,长期来看,请求量相对均匀分布在各个节点,从而数据写入也相对均匀。
- 高效传输:简单直接,不需要复杂的计算或状态跟踪,减少了负载均衡器的处理开销,提高请求处理效率。
- 加权轮询(Weighted Round Robin):
- 原理:根据服务器节点的性能或资源状况分配不同的权重。性能好、资源多的节点权重高,会被分配到更多请求。例如节点A权重为2,节点B权重为1,那么分配请求时,可能是A、A、B这样的顺序。
- 确保数据均匀分布:考虑了节点差异,性能好的节点承担更多负载,能更好地利用资源,使数据写入相对更均匀,避免性能低的节点过载。
- 高效传输:在保证节点合理负载的同时,利用了高性能节点的优势,整体提升数据传输效率。
- 最少连接数(Least Connections):
- 原理:将新请求分配到当前连接数最少的节点。实时监控各节点的连接数量,连接数少意味着该节点负载相对较轻。
- 确保数据均匀分布:优先选择负载轻的节点,使请求能均匀分散,避免某个节点连接数过多导致负载过重,数据写入更均匀。
- 高效传输:保证新请求能快速找到负载轻的节点进行处理,减少请求等待时间,提高数据传输效率。
- IP哈希(IP Hash):
- 原理:根据客户端的IP地址计算哈希值,通过哈希算法将请求映射到特定的服务器节点。相同IP地址的请求始终会被分配到同一节点。
- 确保数据均匀分布:对于来自不同IP的请求相对均匀地分配到各节点,但如果某一IP段请求量巨大,可能导致该节点负载高。
- 高效传输:对于同一IP客户端的多次请求,可以直接定位到特定节点,减少了查找和分配的开销,提高传输效率。