Spring Cloud 2.2.2 源碼之四Eureka客戶端初始化二
初始化基本流程圖
AutoServiceRegistrationConfiguration自動註冊服務
上篇說了客戶端的服務器獲取,服務註冊,服務續約的定時任務,但是這裏有個很重要的AutoServiceRegistrationConfiguration
自動服務註冊沒講。如果這個類沒初始化的話,服務註冊上去了也不能提供服務的,因爲默認啓動狀態是STARTING
,而如果要進行服務的話,需要是UP
,AutoServiceRegistrationConfiguration
就可以讓他變成UP
。
EurekaAutoServiceRegistration
條件都滿足:
EurekaAutoServiceRegistration的start
他也是回調SmartLifecycle
的start
方法初始化的,和服務端的那個一樣。
主要start
裏面:
他也會去設置實例的狀態,而且是從配置文件中獲取,我們來看看:
其實就是我們的配置類EurekaInstanceConfigBean
配置的:
當然我們也可以配置:
默認是UP
:
在另外一個註冊的線程中,實例狀態還是STARTING
,無限循環着:
現在來執行完這個看看:
其實就是另外一個線程把這個變量修改啦,這個變量肯定是volatile
修飾的啦,立即可見性嘛。不過默認是UP
,怎麼就變成STARTING
了呢,有興趣的可以DEBUG
下,肯定是初始化某個地方要改的,我就不找了。
這下有了狀態改變,就可以去註冊中心改狀態啦。
大致初始化流程知道了,會開啓服務註冊,服務獲取,服務續約的調度任務,默認都是延遲30
秒執行,會循環調度,其他的細節自己看啦。
好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。