1. 程式人生 > >第一章、spring cloud服務註冊中心eureka---概念

第一章、spring cloud服務註冊中心eureka---概念

註冊中心Eureka

背景介紹

服務中心

服務中心又稱註冊中心,管理各種服務功能包括服務的註冊、發現、熔斷、負載、降級等,比如dubbo admin後臺的各種功能。

有了服務中心呼叫關係會有什麼變化,畫幾個簡圖來幫忙理解

專案A呼叫專案B

正常呼叫專案A請求專案B


有了服務中心之後,任何一個服務都不能直接去掉用,都需要通過服務中心來呼叫


這時候呼叫的步驟就會為兩步:第一步,專案A首先從服務中心請求專案B伺服器,然後專案B在從服務中心請求專案C服務。


上面的專案只是兩三個相互之間的簡單呼叫,但是如果專案超過20個30個呢,畫一張圖來描述幾十個專案之間的相互呼叫關係全是線條,任何其中的一個專案改動,就會牽連好幾個專案跟著重啟,巨麻煩而且容易出錯。通過服務中心來獲取服務你不需要關注你呼叫的專案IP地址,由幾臺伺服器組成,每次直接去服務中心獲取可以使用的服務去呼叫既可。

由於各種服務都註冊到了服務中心,就有了去做很多高階功能條件。比如幾臺服務提供相同服務來做均衡負載;監控伺服器呼叫成功率來做熔斷,移除服務列表中的故障點;監控服務呼叫時間來對不同的伺服器設定不同的權重等等。

Eureka

按照官方介紹:

Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

Eureka 是一個基於 REST 的服務,主要在 AWS 雲中使用, 定位服務來進行中間層伺服器的負載均衡和故障轉移。

Spring Cloud 封裝了 Netflix 公司開發的 Eureka 模組來實現服務註冊和發現。Eureka 採用了 C-S 的設計架構。Eureka Server 作為服務註冊功能的伺服器,它是服務註冊中心。而系統中的其他微服務,使用 Eureka 的客戶端連線到 Eureka Server,並維持心跳連線。這樣系統的維護人員就可以通過 Eureka Server 來監控系統中各個微服務是否正常執行。Spring Cloud 的一些其他模組(比如Zuul)就可以通過 Eureka Server 來發現系統中的其他微服務,並執行相關的邏輯。

Eureka由兩個元件組成:Eureka伺服器和Eureka客戶端。Eureka伺服器用作服務註冊伺服器。Eureka客戶端是一個java客戶端,用來簡化與伺服器的互動、作為輪詢負載均衡器,並提供服務的故障切換支援。Netflix在其生產環境中使用的是另外的客戶端,它提供基於流量、資源利用率以及出錯狀態的加權負載均衡。

用一張圖來認識以下:


上圖簡要描述了Eureka的基本架構,由3個角色組成:

1、Eureka Server

提供服務註冊和發現

2、Service Provider

服務提供方

將自身服務註冊到Eureka,從而使服務消費方能夠找到

3、Service Consumer

服務消費方

從Eureka獲取註冊服務列表,從而能夠消費服務

專案節點
01spring-cloud-eureka
---->0101spring-cloud-eureka 說明:服務註冊中心eureka配置 spring cloud服務註冊中心eureka—單節點配置(二)
---->0102spring-cloud-eureka-two 說明:服務註冊中心eureka配置 spring cloud服務註冊中心eureka—雙節點配置(三)
---->0103spring-cloud-eureka-cluster 說明:服務註冊中心eureka配置 spring cloud服務註冊中心eureka—叢集配置(四)

示例程式碼-碼雲 https://gitee.com/sharps/springcloud