SpringCloud的版本名、注冊中心Eureka


 SpringCloud的版本名

  官網中會看到如下的版本名:Dalston、Edgware、Finchley、Greenwich、Hoxton.

開發代號看似沒有什么規律,但實際上首字母是有順序的,比如:Dalston版本,我們可以簡稱 D 版本,

對應的 Edgware 版本我們可以簡稱 E 版本。

而版本號后面的 .SR 指的是:service releases,簡稱 SRX(X 是一個遞增數字)

Spring Cloud與Spring Boot版本匹配關系:

 開發過程中,我們需要更詳細的版本對應,如下:

關於maven倉庫的版本列表

spring-cloud-dependencies 版本列表可查看:

  https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies

spring-boot-starter-parent 版本列表可查看:

  https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent

比如:springBoot是2.1版本, SpringCloud使用G版本

SpringCloud之注冊中心Eureka

  Eureka 是 Netflix 開發的,一個基於 REST 服務的,服務注冊(Service Registry)與發現(Service Discovery)的組件

它主要包括兩個組件:Eureka Server 和 Eureka Client

  •  Eureka Client:一個Java客戶端,用於簡化與 Eureka Server 的交互(通常就是微服務中的客戶端和服務端)
  •  Eureka Server:提供服務注冊和發現的能力(通常就是微服務中的注冊中心)

  各個微服務啟動時,會通過 Eureka Client 向 Eureka Server 注冊自己,Eureka Server 會存儲該服務的信息,也就是說,

每個微服務的客戶端和服務端,都會注冊到 Eureka Server,這就衍生出了微服務相互識別的話題:

  • 同步:每個 Eureka Server 同時也是 Eureka Client(邏輯上的),多個 Eureka Server 之間通過復制的方式完成服務注冊表的同步,形成 Eureka 的高可用
  • 識別:Eureka Client 會緩存 Eureka Server 中的信息,即使所有 Eureka Server 節點都宕掉,服務消費者仍可使用緩存中的信息找到服務提供者
  • 續約:微服務會周期性(默認30s)地向 Eureka Server 發送心跳以Renew(續約)自己的信息(類似於heartbeat)
  • 續期:Eureka Server 會定期(默認60s)執行一次失效服務檢測功能,它會檢查超過一定時間(默認90s)沒有Renew的微服務,發現則會注銷該微服務節點
Register(服務注冊):把自己的IP和端口注冊給Eureka。
Renew(服務續約):發送心跳包,每30秒發送一次。告訴Eureka自己還活着。
Cancel(服務下線):當provider關閉時會向Eureka發送消息,把自己從服務列表中刪除。防止consumer調用到不存在的服務。
Get Registry(獲取服務注冊列表):獲取其他服務列表。
Replicate(集群中數據同步):eureka集群中的數據復制與同步。
Make Remote Call(遠程調用):完成服務的遠程調用。

為什么 要用注冊中心?

1、微服務數量眾多,要進行遠程調用就需要知道服務端的ip地址和端口,注冊中心幫助我們管理這些服務的ip和端口。

2、微服務會實時上報自己的狀態,注冊中心統一管理這些微服務的狀態,將存在問題的服務踢出服務列表,客戶端獲取到可用的服務進行調用。

Eureka解決了第一個問題(==作用==):服務的管理,注冊和發現、狀態監管、動態路由。

Eureka負責管理記錄服務提供者的信息。服務調用者無需自己尋找服務,Eureka自動匹配服務給調用者。

Eureka與服務之間通過心跳機制進行監控;

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

  • 1、Eureka Server: 提供服務注冊和發現
  • 2、Service Provider: 服務提供方將自身服務注冊到Eureka,從而使服務消費方能夠找到
  • 3、Service Consumer:服務消費方從Eureka獲取注冊服務列表,從而能夠消費服務

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM