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獲取注冊服務列表,從而能夠消費服務
