Spring Cloud 2.2.2 源碼之四Eureka客戶端初始化二

初始化基本流程圖

在這裏插入圖片描述

AutoServiceRegistrationConfiguration自動註冊服務

上篇說了客戶端的服務器獲取,服務註冊,服務續約的定時任務,但是這裏有個很重要的AutoServiceRegistrationConfiguration自動服務註冊沒講。如果這個類沒初始化的話,服務註冊上去了也不能提供服務的,因爲默認啓動狀態是STARTING,而如果要進行服務的話,需要是UPAutoServiceRegistrationConfiguration就可以讓他變成UP
在這裏插入圖片描述
在這裏插入圖片描述

EurekaAutoServiceRegistration

在這裏插入圖片描述
條件都滿足:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

EurekaAutoServiceRegistration的start

他也是回調SmartLifecyclestart方法初始化的,和服務端的那個一樣。
在這裏插入圖片描述
主要start裏面:
在這裏插入圖片描述
在這裏插入圖片描述
他也會去設置實例的狀態,而且是從配置文件中獲取,我們來看看:
在這裏插入圖片描述
其實就是我們的配置類EurekaInstanceConfigBean配置的:
在這裏插入圖片描述
當然我們也可以配置:
在這裏插入圖片描述
默認是UP
在這裏插入圖片描述
在另外一個註冊的線程中,實例狀態還是STARTING,無限循環着:
在這裏插入圖片描述
現在來執行完這個看看:
在這裏插入圖片描述
在這裏插入圖片描述
其實就是另外一個線程把這個變量修改啦,這個變量肯定是volatile修飾的啦,立即可見性嘛。不過默認是UP,怎麼就變成STARTING了呢,有興趣的可以DEBUG下,肯定是初始化某個地方要改的,我就不找了。
在這裏插入圖片描述
這下有了狀態改變,就可以去註冊中心改狀態啦。
在這裏插入圖片描述
大致初始化流程知道了,會開啓服務註冊,服務獲取,服務續約的調度任務,默認都是延遲30秒執行,會循環調度,其他的細節自己看啦。

好了,今天就到這裏了,希望對學習理解有幫助,大神看見勿噴,僅爲自己的學習理解,能力有限,請多包涵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章