面试题答案
一键面试- 随机(Random):
- 工作原理:从可用的服务实例列表中随机选择一个实例来处理请求。例如,假设有三个服务实例A、B、C,每次请求到来时,以相同的概率(1/3)从这三个实例中随机选择一个,这种方式简单直接,在实例性能差异不大的情况下能均匀分配请求。
- 轮询(Round - Robin):
- 工作原理:按照顺序依次将请求分配到各个可用的服务实例上。例如,有服务实例A、B、C,第一个请求分配给A,第二个请求分配给B,第三个请求分配给C,第四个请求又回到A,如此循环。它能保证每个实例都有机会处理请求,适用于实例性能相近的场景。
- 加权轮询(Weighted Round - Robin):
- 工作原理:为每个服务实例分配一个权重值,权重值越高,被分配到请求的概率越大。例如,实例A权重为2,实例B权重为1,实例C权重为1,在轮询时,每4次请求中,A会被分配到2次,B和C各被分配到1次。这种策略适用于不同实例性能有差异的情况,性能高的实例权重可以设置得更高。
- 最少连接(Least Connections):
- 工作原理:优先将请求分配给当前连接数最少的服务实例。因为连接数少意味着该实例的负载相对较轻,能更好地处理新的请求。例如,当有请求到来时,负载均衡器统计各个实例的当前连接数,将请求发送给连接数最少的实例,以实现负载均衡。
- 源地址哈希(Source Hashing):
- 工作原理:根据请求源IP地址的哈希值,将请求始终路由到特定的服务实例。例如,对源IP地址进行哈希计算,得到一个哈希值,通过某种映射规则将该哈希值映射到具体的实例上。这样来自同一个源IP的请求会始终被发送到同一个实例,适用于一些有状态的服务场景,保证同一客户端的请求能被相同实例处理。