面试题答案
一键面试- 轮询(Round Robin)
- 原理:按顺序依次将请求分配到各个服务器节点。例如,有服务器A、B、C,第一个请求分配到A,第二个请求分配到B,第三个请求分配到C,第四个请求又回到A,如此循环。这种算法简单直观,不考虑服务器的性能差异,平均分配请求。
- 加权轮询(Weighted Round Robin)
- 原理:为每个服务器节点分配一个权重值,权重代表该服务器的处理能力。例如,服务器A权重为2,B权重为1,C权重为1。请求到来时,按照权重比例分配请求,优先分配给权重高的服务器。比如,前两个请求分配给A,第三个请求分配给B,第四个请求分配给C,第五、六个请求又分配给A,以此类推。这样处理能力强的服务器能处理更多请求。
- 随机(Random)
- 原理:每次请求到来时,从所有可用的服务器节点中随机选择一个来处理请求。例如,有服务器A、B、C,每次随机在这三个服务器中选择一个,可能连续多次选择到同一台服务器,具有不确定性,但从概率角度看,长时间运行下请求会相对均匀地分配到各个服务器。
- 最少连接(Least Connections)
- 原理:优先将请求分配给当前连接数最少的服务器节点。它基于服务器当前处理的请求数量来决定分配,认为连接数少的服务器处理能力相对更空闲,能更好地处理新请求。例如,服务器A当前有10个连接,B有5个连接,C有8个连接,新请求就会分配给B。
- IP 哈希(IP Hash)
- 原理:根据客户端的IP地址进行哈希计算,然后根据哈希结果映射到某个服务器节点。这样来自同一个IP地址的请求总是会被分配到同一台服务器,适合需要保持会话状态的场景,比如用户登录后,后续请求始终由同一台服务器处理,便于维持用户会话信息。