从NamingExample 看客户端注册流程
serverProxy.registerService(NamingUtils.getGroupedName(serviceName, groupName), groupName, instance);
客户端发送请求去服务端注册实例地址是/nacos/v1/ns/instance
在naming模块的InstanceController里面的post 接口里
接下来看下服务端主要做了什么工作
服务端出现了几个核心的概念
注册表 Map<namespace, Map<group::serviceName, Service>>
key里面存放 namespaceId 然后map<String,Service>里面key存放group::serviceName
value存放service对象
service对象里面有有个很重要的成员变量
结构是private Map<String,Cluster> clusterMap =new HashMap<>();
key里面存放clusterName(命名空间) value存放Cluster对象
cluster对象里面有
@JSONField(serialize =false)
private Set<Instance> persistentInstances =new HashSet<>();
@JSONField(serialize =false)
private Set<Instance> ephemeralInstances =new HashSet<>();
对应 临时服务实例和永久服务实例
service类的作用
service类存放了多个cluster 每个cluster存放了多个instance
服务端处理客户端注册流程