SpringCloud(一)版本選擇
- 2020 年 6 月 18 日
- 筆記
- RPC, SpringCloud, 中間件
Springboot版本
官網://spring.io/projects/spring-boot
在官網上 springboot已經更新到最新2.2.6
Spingcloud版本
官網://spring.io/projects/spring-cloud
對於 SpringCloud 來說,版本更新是根據 字母 A-Z 來進行更新,現在已經到了最新的 H版穩定版
在首頁中,可以看到相應版本對應的依賴
使用最新 H版 必須要對應的 Boot版本 為 2.2.x
查看 springboot 和 springcloud 版本依賴://start.spring.io/actuator/info
在這裡可以看到
最新的 Hoxton.SR4 版本最高能使用 springboot版本為 2.3.0測試版
而官網支援的版本
環境搭建
SpringCloud:Hoxton.SR4
SpringBoot:2.2.5.RELEASE
SpringCloud alibaba:2.2
Java:8
Maven:3.5以上
Mysql:5.7以上
Cloud組件
服務註冊中心
- Eureka:現在已經停更,建議使用以下幾種代替(x)
- Zookeeper:經典的服務註冊中心,ZooKeeper是一個分散式的,開放源碼的分散式應用程式協調服務。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。
- Consul:Consul是一個服務網格(微服務間的 TCP/IP,負責服務之間的網路調用、限流、熔斷和監控)解決方案,它是一個一個分散式的,高度可用的系統,而且開發使用都很簡便。它提供了一個功能齊全的控制平面,主要特點是:服務發現、健康檢查、鍵值存儲、安全服務通訊、多數據中心。
- Nacos:Nacos 支援基於 DNS 和基於 RPC 的服務發現(可以作為springcloud的註冊中心)、動態配置服務(可以做配置中心)、動態 DNS 服務。
服務調用
- Ribbon:Spring Cloud Ribbon是一個基於HTTP和TCP的客戶端負載均衡工具,它基於Netflix Ribbon實現。通過Spring Cloud的封裝,可以讓我們輕鬆地將面向服務的REST模版請求自動轉換成客戶端負載均衡的服務調用。
- LoadBalancer:LoadBalancer 可以將來自客戶端的請求分發到不同的伺服器,通過將一系列的請求轉發到不同的伺服器可以提高伺服器的性能,並可以自動地尋找最優的伺服器轉發請求,這樣不僅提高了系統性能,同時達到了負載均衡的目的,滿足了用戶需求,因此 LoadBalancer 在應用場景中一般處於 web 伺服器的前端,用來均衡發到 web 伺服器的請求量,均衡負載,提高系統性能。
- LoadBalancer:LoadBalancer 可以將來自客戶端的請求分發到不同的伺服器,通過將一系列的請求轉發到不同的伺服器可以提高伺服器的性能,並可以自動地尋找最優的伺服器轉發請求,這樣不僅提高了系統性能,同時達到了負載均衡的目的,滿足了用戶需求,因此 LoadBalancer 在應用場景中一般處於 web 伺服器的前端,用來均衡發到 web 伺服器的請求量,均衡負載,提高系統性能。
服務降級
- Resilience4j: Resilience4j是受Netflix的Hysrix項目啟發,專門為Java 8 和函數式編程設計的輕量級容錯框架
- Sentinel:Sentinel支援的熔斷降級維度更多,可對多種指標進行流控、熔斷,且提供了實時監控和控制面板,功能更為強大,推薦使用
服務網關
- GateWay:Spring Cloud Gateway是Spring官方基於Spring 5.0,Spring Boot 2.0和Project Reactor等技術開發的網關,Spring Cloud Gateway旨在為微服務架構提供一種簡單而有效的統一的API路由管理方式。Spring Cloud Gateway作為Spring Cloud生態系中的網關,目標是替代ZUUL,其不僅提供統一的路由方式,並且基於Filter鏈的方式提供了網關基本的功能,例如:安全,監控/埋點,和限流等。
服務配置
- Nacos:Nacos 支援基於 DNS 和基於 RPC 的服務發現(可以作為springcloud的註冊中心)、動態配置服務(可以做配置中心)、動態 DNS 服務。
服務匯流排
- Nacos:Nacos 支援基於 DNS 和基於 RPC 的服務發現(可以作為springcloud的註冊中心)、動態配置服務(可以做配置中心)、動態 DNS 服務。