【Kratos】Selector之Node更新流程
1、摘要
Selector 提供负载均衡能力,从服务的一组Node中选取当次最佳的Node进行服务调用。然而,想要动态更新服务的Node,需要搭配服务发现组件一同使用。 本文将会着重讲解Node更新过程的抽象,以及grpc和http具体是如何实现的。
2、正文
抽象层
抽象层面看,Node的更新过程涉及到三个主体:discovery、resolver和selector。其中各自负责的功能如下:
- discovery:负责监听服务。
- resolver:负责等待服务更新,并通知selector。
- selector:负责解析服务更新数据,并更新Node。
GRPC实现
GRPC本身支持负载均衡,用户可以自定义负载均衡器,通过自定义的负载均衡器,桥接selector和GRPC框架。
自定义的Picker(源文件balancer.go的Picker实现了Picker接口),内部包含了selector&#x