Nacos(https://github.com/alibaba/nacos)可以简单理解为一个服务注册中心,提供了服务发现和健康检测,服务配置等功能。
Nacos大致流程:
- 服务端启动,选leader, Nacos实现了一个简单的raft协议,关于raft概念这里就不细说了. Nacos利用raft协议从一个分布式中选择出leader,然后由leader负责数据的写入。 follow节点如果接收到写请求会转发给leader节点。
- 客户端启动:
- 客户端根据Nacos集群信息,进行初始化。
- 客户端向服务端注册实例信息,同时定期向服务端发送心跳。 走的是http协议。
- 客户端订阅某服务IP列表,客户端会在本地开启一个Udp, 同时把IP和端口发送到服务端,服务端会在客户端订阅的服务的IP列表发生变换后通过Udp协议通知到客户端。
我的注解版: