面试题答案
一键面试轮询(Round Robin)
- 原理:依次将请求分配到每个服务器上,按照服务器列表的顺序,一个请求对应一台服务器,循环往复。
- 适用场景:适用于所有服务器硬件配置性能相近的场景,能简单公平地分配请求。
加权轮询(Weighted Round Robin)
- 原理:为每个服务器分配一个权重值,权重越高的服务器被分配到请求的概率越大。按权重比例分配请求,在一轮分配中,权重值高的服务器会被分配多次请求。
- 适用场景:当服务器硬件配置性能有差异时,根据服务器性能设置不同权重,性能好的服务器权重高,可处理更多请求。
最少连接数(Least Connections)
- 原理:将新的请求分配到当前连接数最少的服务器上。因为连接数少意味着服务器负载相对较轻,能更好地处理新请求。
- 适用场景:适用于处理长连接请求较多的场景,比如在线视频播放、即时通讯等,确保每个请求能分配到负载较轻的服务器。
加权最少连接数(Weighted Least Connections)
- 原理:在最少连接数的基础上,考虑服务器的权重。计算每个服务器的加权连接数(当前连接数 / 权重),将请求分配到加权连接数最小的服务器。
- 适用场景:和加权轮询类似,用于服务器性能有差异且处理长连接请求较多的场景,既考虑服务器当前负载,又结合其性能。
随机(Random)
- 原理:从服务器列表中随机选择一台服务器来处理请求。
- 适用场景:适用于简单场景,当对服务器性能了解较少,且希望以一种相对公平随机的方式分配请求时使用。
IP 哈希(IP Hash)
- 原理:根据客户端的 IP 地址,通过哈希算法计算出一个值,然后根据这个值映射到特定的服务器。相同 IP 地址的客户端请求会始终被路由到同一台服务器。
- 适用场景:适用于需要会话保持的场景,如用户登录后,后续请求都由同一台服务器处理,避免用户重新登录等问题。