当前服务本身发现,首先不断发现自己本身的服务,<br>finshReferesh()-》startBeans->NacosWatch#start->namingService#subscribe<br>->hostReactor#subscribe->getServiceInfo->updateServiceNow->HostReactor#updateServive->serverProxy#queryList(/instance/list),<br>执行完后,发起定时任务HostReactor.scheduleUpdateIfAbsent,定时执行任务为UpdateTask,间隔时间默认一秒,<br>计算公司如下:Math.min(delayTime << failCount, DEFAULT_DELAY * 60)
Fegin远程服务发现,<br>以ribbon为例,在RibbonClientConfiguration定义了@Bean的ribbonLoadBalancer,实际类型为:ZoneAwareLoadBalancer<br>在实例化过程中调用构造函数完成服务的发现,<br>执行完后,发起定时任务HostReactor.scheduleUpdateIfAbsent,定时执行任务为UpdateTask,间隔时间默认一秒,<br>计算公司如下:Math.min(delayTime << failCount, DEFAULT_DELAY * 60)
执行DynamicServerListLoadBalancer#restOfInit<br>
执行DynamicServerListLoadBalancer#updateListOfServers
NacosServerList#getUpdatedListOfServers
NacosNamingService#selectInstances(serviceId, group, true)
HostReactor#getServiceInfo
HostReactor#updateServiceNow
NamingProxy.queryList