Spring Cloud 很大的一部分是基於 Spring Boot 來實現,不可以不基於spring Boot實現
SpringCloud 主要框架:(共17個)
服務發現——Netflix Eureka
服務調用——Netflix Feign
熔斷器——Netflix Hystrix
服務網關——Netflix Zuul
分布式配置——Spring Cloud Config
消息總線 —— Spring Cloud Bus
SpringCloud 的版本:形式為版本名+里程碑號
Eureka 是 Netflix 開發的服務發現框架,SpringCloud 將它集成在自己的子項目spring-cloud-netflix 中,實現 SpringCloud 的服務發現功能。
Eureka 包含兩個組件:Eureka Server 和 Eureka Client。
Eureka Server 提供服務注冊服務,各個節點啟動后,會在 Eureka Server 中進行注
冊,這樣 EurekaServer 中的服務注冊表中將會存儲所有可用服務節點的信息,服務節點的信
息可以在界面中直觀的看到。
Eureka Client 是一個 java 客戶端,用於簡化與 Eureka Server 的交互,客戶端同時也就別
一個內置的、使用輪詢(round-robin)負載算法的負載均衡器。在應用啟動后,將會向 Eureka
Server 發送心跳,默認周期為 30 秒,如果 Eureka Server 在多個心跳周期內沒有接收到某個節
點的心跳,Eureka Server 將會從服務注冊表中把這個服務節點移除(默認 90 秒)。
Eureka Server 之間通過復制的方式完成數據的同步,Eureka 還提供了客戶端緩存機制,
即使所有的 Eureka Server 都掛掉,客戶端依然可以利用緩存中的信息消費其他服務的 API。
綜上,Eureka 通過心跳檢查、客戶端緩存等機制,確保了系統的高可用性、靈活性和可伸
縮性。
使用步驟:
(1)將其他微服務模塊添加依賴
(2)修改每個微服務的 application.yml,添加注冊 eureka 服務的配置
(3)修改每個服務類的啟動類,添加注解@EnableEurekaClient
Feign 實現服務間調用:
使用步驟:
(1)模塊添加依賴
(2)修改模塊的啟動類,添加注解@EnableDiscoveryClient@EnableFeignClients
(3)模塊創建 client 包,包下創建接口
@FeignClient 類注解用於指定從哪個服務中調用功能 ,注意 里面的名稱與被調用的服務名保持一致,並且不能包含下划線。
@RequestMapping方法注解用於對被調用的微服務進行地址映射。注意 @PathVariable注解一定要指定參數名稱,否則出錯。
