1. SpringCloud Alibaba簡介
1)簡介
Spring Cloud Alibaba致力於提供微服務開發的一站式解決方案。此項目包含開發分佈式應用微服務的必需組件,方便開發者通過Spring Coud編程模型輕鬆使用這些組件來開發分佈式應用服務。
依括Spring Cloud Alibaba,您只需要添加一些註解和少量配置,就可以將Spring Cloud應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分佈式應用系統。
https://github.com/alibaba/spring-cloud-alibaba
2)SpringCloud相關
SpringCloud的幾大痛點
- SpringCloud部分組件停止維護和更新,給開發帶來不便;
- SpringCloud 部分環境搭建複雜,沒有完善的可視化界面,我們需要大量的二次開發和定製
- Springcloud配置複雜,難以上手,部分配置差別難以區分和合理應用
SpringCloud Alibaba的優勢:
- 阿里使用過的組件經歷了考驗,性能強悍,設計合理,現在開源出來大家用
- 成套的產品搭配完善的可視化界面給開發運維帶來極大的便利
- 搭建簡單,學習曲線低。
結合Springcloud Alibaba我們最終的技術搭配方案:
- SpringCloud Alibaba-Nacos:註冊中心(服務發現/註冊)
- SpringCloud Allbaba-Nacos:配置中心(動態配置管理)
- SpringCloud-Ribbon:負載均衡
- SpringCloud-Feign:聲明式HTTP客戶端(調用遠程服務)
- SpringCloud Alibaba-Sentinel:服務容錯(限流、降級、熔斷)
- SpringCloud-Gateway:API 網關(webflux編程模式)
- SpringCloud-Sleuth:調用鏈監控
- Springcloud Alibaba-Seata:原Fescar,即分佈式事務解決方案
3)版本選擇
由於Spring Boot 1和Spring Boot 2在Actuator模塊的接口和註解有很大的變更,且spring-cloud-commons從1.xx版本升級到2.0.0版本也有較大的變更,因此我們採取跟SpringBoot 版本號一致的版本:
·1.5.x版本適用於Spring Boot 1.5.x
·2.0.x版本適用於Spring Boot 2.0.x
·2.1.x版本適用於Spring Boot2.1.x
4)項目中的依賴
在common項目中引入如下,進行統一管理
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、SpringCloud Alibaba-Nacos[作爲註冊中心]
Nacos 是阿里巴巴開源的一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平臺。他是使用java編寫。需要依賴java環境。
Nacos 文檔地址:https://nacos.io/zh-cn/docs/quick-starthtml
1)、下載nacos-server
htps://github.com/alibaba/nacos/releases
2)、啓動nacos-server
·雙擊bin中的startup.cmd文件
·訪問 http:/localhost:8848/nacos/
·使用默認的nacos/nacos 進行登錄