总结:
自动配置注册:
EurekaAutoServiceRegistration::start(在DefaultLifecycleProcessor中调用):
1. 先检查port;
2. 如果没有启动过并且非安全的端口大于0,则进行注册(通过调用org.springframework.cloud.client.serviceregistry.ServiceRegistry接口的实例).
3. 注册事件;
4. 设置运行状态
注册:
org.springframework.cloud.client.serviceregistry.ServiceRegistry->注册和取消注册
->
EurekaServiceRegistry::register从参数获取EurekaRegistration,
并初始化EurekaRegistration,通过ApplicationInfoManager设置实例的状态,
如果有healthCheck则注册healthCheck.
自动配置取消注册:
1. 调用org.springframework.cloud.client.serviceregistry.ServiceRegistry接口的实例的deregister方法.
2. 设置状态
取消注册(EurekaServiceRegistry::deregister):
将状态设置成DOWN.
================================================
DiscoveryClient::getInstances根据serviceId获取实例
-> EurekaDiscoveryClient::getInstances通过eurekaClient找到InstanceInfo,加入到List中并返回.
展开