整理采用“推(Push)拉(Pull)结合”的模式。Pull作为一个fallback机制,为了防止推送机制失效导致配置无法更新。

一、Pull 模式

Nacos Client

若开启了容灾模式(failover-mode=true),则直接从 Client 端容灾缓存目录中获取 Server 信息并返回,否则去 Server 端拉取。
待获取 Server 信息保存到本地内存后,发布服务变更事件serviceChange(Client Listener),同时将Sever信息写入磁盘以用于容灾。
image.png

Nacos Server

若 Client 请求中包含udp端口,则构建UDP推送客户端 PushClient 并加入推送器 PushServer 中,以用于 Server 向 Client 推送服务变更信息。
image.png


二、Push 模式

Nacos Server

一致性协议服务(ConsistencyService)中包含了一个通知器 Notifier ,Notifier 会定时获取数据操作对象然后通过推送器 PushService 向 Client 端发送 Server 变更事件。
image.png

Nacos Client

获取服务变更事件数据报,然后进行相应的处理(参见 Pull 模式)。
image.png