eureka架构图原理
生活随笔
收集整理的這篇文章主要介紹了
eureka架构图原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們已經編寫完了Consumer,并且在Consumer當中去調用了Provider,完成了服務與服務之間的一個通信,其實我們在做案例的時候,我們是一步一步的,大家回顧一下,是不是先去創建了一個Eureka Server,然后再去構建了一個Provider,然后去構建了一個Consumer,在Consumer當中,Provider完成信息的一個交互,那我們的順序呢,主要是圍繞哪塊展開的呢,還記得我們有講Eureka的時候,講到Eureka的三種角色,Eureka注冊中心的三種角色,我們一直是按照這三個角色的步驟去做的,第一個環境我們是先搭建了一個Eureka的集群,我們在集群當中,Service Provider,服務提供者的一個編寫,然后我們又編寫了一個Consumer,去完成了一個消費者的一個編寫,最后在服務的消費者當中,調用了Provider,我們編碼的順序,其實我們講解完畢以后,在注冊中心當中,如何完成服務的發布和訂閱,以及服務與服務之間如何通信的一個案例,我們來講解注冊中心的一個架構原理,先來看Eureka的架構圖,這個圖是從哪里找來的呢,是從eureka的官網上去找到的,可以看一下,我們可以從github上,在github上搜eureka,我們在這里可以看到有很多eureka關鍵字的,在這里我們看哪個呢,第一個不是,我們用的是這個Netflix/eurekahttps://github.com/Netflix/eureka不是netflix的產品嗎,所以哦我們點Netflix/eureka,在這我們可以看到,這個列表就是eureka的一個更新列表,在這里我們可以看到這里是幾天前完成的Latest commit 9d07ac4 19 days ago那么說明eureka的社區活躍度還是比較高的,然后在這里我們看有一個wikihttps://github.com/Netflix/eureka/wiki在Wiki里面,在這里有一個Eureka at a glance,Eureka的一個瀏覽,我們點他,在這里我么可以看到,他有一些介紹,比如什么是Eureka,在他的下面有一個Eureka的架構
這是Eureka的一個架構圖,這是Eureka的一個架構圖,我們看到Eureka架構圖里面,表達的是對Eureka的一個介紹,那么首先在這個圖當中呢,同樣存在著三種角色,第一個就是Eureka Server,就是我們的注冊中心,這個是我們的第一個角色,第二個角色是Application Server,其實Application Service是誰呢,是我們的Service Provider,就是服務的提供者,然后還有一個Application Client,這個Application Client是誰呢,是我們之前寫過的Consumer,Service Consumer,或者消費者,我們現在把這三個角色搞清楚了,我們來看這個圖,這個圖是建立在集群基礎之上的,集群一個節點,這是集群一個節點,說明我們當前注冊中心當中,有三個集群節點,然后我們來看第一個,ApplicationServer,就是我們的Provider,我們這個服務要想發布出去,肯定要通過注冊中心,那么他在發布當中呢,做了哪些事呢,來看這個箭頭,第一個,Service Provider,必須向Eureka Server完成register的一個注冊,那么這個Registration表示什么含義呢,就是服務的注冊,其實所謂的服務注冊,就是把自己的IP和端口注冊給Eureka Server,這樣的Server就知道你當前的基本信息,知道這些信息以后,就給其他消費者提供接口了消費了,所以他要進行一個注冊,第二個,有一個renew,我們還是回到三個角色這里,我們這里有說明的,Eureka Server,通過Register,Get,Renew,等接口,提供服務的發現和注冊,完成接口提供一些服務的注冊與發現,所以我們現在再來看架構圖,這里就是register和renew,還有get和register,然后再來看注冊完畢以后,這個renew表示什么含義,在這個集群當中,他要知道你當前的服務,是不是還是存活的,他采用的是什么呢,采用的是一個發心跳包的方式,也就是說,我們的服務提供者,provider,一旦在eureka的注冊中心注冊了,那么他會每隔30秒發送一個心跳包,告訴自己還活著,所以renew就是一個發心跳包的,那么如果eureka在90秒以后,沒有搜到Provider收到的心跳包,他就認為你已經死亡掉了,他會把他的服務從列表當中剔除掉,這樣的一個過程,然后咱們再往下看,下面還有一個cancel,這個Cancel表示什么意思呢,是服務下線,這個服務下線,注意看這個箭頭,是我們的Provider向注冊中心發送的,什么意思呢,當Provider關閉時,會向Eureka發送消息,把自己從服務列表中刪除,防止consumer調用到不存在的服務,這是什么意思呢,大家注意看,回到我們之前的代碼當中,我們現在把consumer和provider都停了,然后我們到eureka的管理平臺下刷新,我們的服務是不是還存在,那么存在的原因是什么,剛才我們在這是直接就關掉了,但是我們現在只是把服務給停掉了,并沒有優雅關機,并沒有這樣的一個操作,那么這個時候,其實,Eureka Server會將服務做一個保護,我們看到的就是服務保護,對于服務保護的服務,他是并不會把這個服務刪除掉的,所以即便我們是把服務停掉了,對于這個eureka來講,在這兒他仍然是存在著的,他對這個服務是起到保護的作用,那么我們怎么讓他把已關掉的服務關掉呢,這個就涉及到服務優雅關機的問題,就是我們以后要講的,所以Cancel就是當你的服務關閉時,向Eureka關閉信息,直接把Provider結束掉了,發送Cancel的消息,在Eureka服務當中,他仍然是還有這個服務的信息,然后再往下看,下面還有一個Get Registry,Get Registry是什么含義呢,獲取服務的注冊列表,我們這些服務,就是我們的Provider當中,未來可能會與其他的服務是有通信的,所以他肯定要知道其他服務的信息,比如他的ID和端口,所以Get Registry是用戶獲取其他用戶的信息的,然后再往下看,現在Provider和Eureka Server的關系,這幾個箭頭我們就講完了,然后再來看,還有一個Replicate,這是一個雙向的接口,那么這個Replicate是什么意思呢,集群中的一個數據同步,如果我是一個集群的注冊中心,那么每個數據之間肯定是要做同步的,那么他就是通過Replicate做數據同步的,Eureka集群中的數據復制與同步,然后再往下看,有一個Make Remote,這個是遠程調用,這個是Application Client了,這個是服務的消費者,是發起遠程調用的,就是發起請求,調用,這個就是作為一個Eureka注冊中心,注冊消息,一個架構圖,我們拿到官網提供的架構圖,也根據他所提供的箭頭,來表示每一個箭頭是一個什么含義,按照JAVA圖來看,這個項目圖并不是很復雜的,我們只要搞清楚箭頭是什么含義就可以了,那我們對于Eureka的架構圖就到這兒
?
總結
以上是生活随笔為你收集整理的eureka架构图原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在consumer中调用provider
- 下一篇: ZooKeeper与Eureka的区别