1. 程式人生 > >spring cloud系列教程第四篇-Eureka基礎知識

spring cloud系列教程第四篇-Eureka基礎知識

通過前三篇文章學習,我們搭建好了兩個微服務工程。即:order80和payment8001這兩個服務。有了這兩個基礎的框架之後,我們將要開始往裡面新增東西了。還記得分散式架構的幾個維度嗎?我們要通過一個一個維度來講解每個知識點。如下圖:

 

任何一個分散式或者是微服務都會需要一個服務註冊中心。用來服務的註冊與發現。所以,我們就來先從服務註冊中心這個維度來開講。先來講講今年之前比較流行的一個技術:Eureka.

本文主要內容:

1:服務治理的理解

2:服務註冊與發現的理解

3:Eureka兩個元件

4:總結

本文是由凱哥(凱哥Java:kagejava)釋出的《spring cloud系列教程》教程的總第四篇:《spring cloud系列教程第四篇-Eureka基礎知識》。

本文是幾個維度中的第一個維度:註冊與發現維度配置中心管理之Eureka相關教程第一篇。

什麼是服務治理?

在傳統的RPC遠端呼叫框架中,管理每個服務與服務之間依賴關係比較複雜,管理比較複雜,在這種情況下,我們就需要使用到服務治理了。管理服務與服務之間的依賴關係,可以實現服務呼叫、負載均衡、容錯等,實現服務發現與註冊的技術。

Spring cloud 封裝了Netflix公司開發的Eureka模組來實現服務治理。

什麼是服務註冊與發現?

Eureka採用了CS的設計架構,Eureka Server作為服務註冊功能的伺服器,它是服務註冊中心。而系統中的其他微服務,使用Eureka的客戶端連線到Eureka Server並維持心跳連線。這樣系統的維護人員就可以通過Eureka Server來監控系統中各個服務是否正常執行。

在服務註冊與發現中,有一個註冊中心。當伺服器啟動的時候,會把當前自己伺服器資訊(比如:服務地址、通訊地址等)以別名的方式註冊到註冊中心上。另一方(消費者服務提供者),以該別名的方式去註冊中心上獲取到實際的服務通訊地址,然後再實現本地RPC呼叫RPC。遠端呼叫框架核心思想:在與註冊中心,因為使用註冊中心管理每個與服務之間的一個依賴關係(服務治理概念)。在任何RPC遠端框架中,都會有一個註冊中心(存放服務地址相關的資訊:介面地址)。

下圖是Eureka系統架構與dubbo系統架構的對比:

 

簡單理解provider、consumer和Eureka 註冊中心的關係。

 

比如,現在你在某個平臺上正在看凱哥釋出的這篇文章。其中自媒體平臺就是一個註冊中心,你和凱哥就是一個消費者,一個生產者。

凱哥需要在平臺上註冊一個賬號,進行釋出文章。充當生產者的角色;

你需要訪問(或者是註冊)平臺,進行文章瀏覽。其實充當的就是消費者了。

這樣來說,關係是不是就很好理解了。

Eureka的兩個元件

 

Eureka Server提供服務的註冊服務.

各個微服務節點通過配置啟動後,會在EurekaServer中進行註冊,這樣EurekaServer中的服務登錄檔中將會儲存所服務節點的資訊,服務節點的資訊可以在介面中直觀的看到。

Eureka Client通過註冊中心進行訪問

是一個Java客戶端,用與簡化Eureka Server的互動,客戶端同時也具備一個內建的,使用輪詢(round-robin)的負載均衡器。在應用啟動後,將會向Eureka Server傳送心跳(預設週期為30s)。如果Eureka Server在多個心跳週期內沒有接收到某個節點的心跳,Eureka Server將會從服務登錄檔中把這個服務節點移除掉(預設90s,也就是3個心跳週期).

總結

 

本文主要讓大家記住Eureka的兩個元件。分別是seriver和client.客戶端預設每30秒向服務傳送一次心跳請求,用與告訴服務端,我還是可用的。如果服務端預設3個心跳週期,也就是在90秒沒有收到某個客戶端傳送的心跳資訊後,服務端將會從服務登錄檔把對應的服務節點移除掉。因為服務端會認為這個客戶端不可用了。

下篇預告:在下一篇文章中,我們來講講單機辦的Eureka構建步驟

&n