面试题答案
一键面试1. 轮询(Round Robin)
- 原理:按顺序依次将请求分配到每个后端服务器,不考虑服务器当前负载状态。例如,有服务器A、B、C,第一个请求分配到A,第二个到B,第三个到C,第四个又回到A,依此类推。
- 可能带来的影响:
- 优点:实现简单,能均匀分配请求,适用于各服务器性能相近且负载较为均衡的场景。
- 缺点:如果服务器性能差异较大,性能差的服务器可能会因过载而响应变慢,影响整体系统性能。
2. 加权轮询(Weighted Round Robin)
- 原理:根据服务器的性能为每个服务器分配一个权重值,权重越高,被分配到请求的概率越大。比如服务器A权重为2,B权重为1,C权重为1,那么每4个请求中,A会收到2个,B和C各收到1个。
- 可能带来的影响:
- 优点:考虑了服务器性能差异,能更合理地分配请求,避免性能差的服务器过载,提升整体系统性能。
- 缺点:若权重设置不合理,可能导致部分服务器负载过高或过低,需要根据实际情况不断调整权重。
3. 最少连接(Least Connections)
- 原理:优先将请求分配到当前连接数最少的服务器。当新请求到来时,负载均衡器检查各服务器的连接数,选择连接数最少的服务器处理请求。
- 可能带来的影响:
- 优点:能动态根据服务器的实际负载分配请求,有效避免服务器过载,适用于处理长连接请求的场景,如数据库连接。
- 缺点:实现相对复杂,需要实时跟踪服务器的连接数,对负载均衡器的性能有一定要求。而且可能会导致新请求都集中到刚处理完大量请求的服务器,瞬间增加其负载。
4. 加权最少连接(Weighted Least Connections)
- 原理:在最少连接算法基础上,结合服务器的性能权重。除了考虑当前连接数,还会根据服务器权重调整分配概率。例如,服务器A权重高,即使其连接数略多于其他服务器,仍可能优先分配请求。
- 可能带来的影响:
- 优点:综合考虑了服务器性能和当前负载,更精准地分配请求,优化系统性能。
- 缺点:实现复杂度更高,不仅要跟踪连接数,还要合理设置权重,增加了运维成本。
5. IP哈希(IP Hash)
- 原理:根据客户端IP地址计算哈希值,通过哈希算法将请求固定分配到某一台服务器。这样来自同一IP的请求始终会被发送到同一台服务器,有利于服务器维持会话状态。
- 可能带来的影响:
- 优点:适用于有会话保持需求的场景,如电商系统中用户登录后,后续请求能始终由同一服务器处理,避免会话丢失。
- 缺点:若某IP的请求量过大,对应的服务器可能会过载,且当服务器集群规模发生变化时,哈希算法可能需要重新调整,影响系统稳定性。