服务下线比较简单,入口在com.alibaba.nacos.naming.controllers.InstanceController#deregister
--> serviceManager.removeInstance
--> removeInstance
将实例从实例列表中移除,然后更新服务实例。consistencyService.put 在服务注册有说过,不再重复说了只不过底层做的是DELETE操作。
private void removeInstance(String namespaceId, String serviceName, boolean ephemeral, Service service,
Instance... ips) throws NacosException {
String key = KeyBuilder.buildInstanceListKey(namespaceId, serviceName, ephemeral);
List<Instance> instanceList = substractIpAddresses(service, ephemeral, ips);
Instances instances = new Instances();
instances.setInstanceList(instanceList);
consistencyService.put(key, instances);
}