面试题答案
一键面试- 客户端负载均衡:
- 原理:客户端(服务消费者)维护一份可用服务实例列表,在发起gRPC调用时,根据特定的负载均衡算法(如轮询、随机、基于权重等)从列表中选择一个服务实例进行调用。例如,轮询算法会依次选择每个服务实例,使得请求均匀分布在各个实例上;随机算法则随机选择实例,简单但可能不够均衡;基于权重算法会根据服务实例的性能(如CPU、内存、网络带宽等资源状况)设置权重,权重高的实例被选中的概率更大,更合理地分配负载。
- 服务端负载均衡(如基于反向代理的负载均衡,以Nginx为例):
- 原理:Nginx作为反向代理服务器,接收来自客户端的gRPC请求。它通过配置文件或动态发现机制获取服务实例列表,并根据配置的负载均衡算法(如轮询、IP哈希等)将请求转发到后端的服务实例。轮询算法与客户端轮询类似,按顺序依次分配请求;IP哈希算法根据客户端的IP地址计算哈希值,通过哈希值将请求固定地分配到某个服务实例,这样来自同一客户端的请求会始终被转发到同一个实例,适合有状态服务场景。