一、SpringCloud的幾大痛點:
SpringCloud部分組件停止維護和更新,給開發帶來不便;
SpringCloud部分環境搭建複雜,沒有完善的可視化界面,我們需要大量的二次開發和定製
SpringCloud配置複雜,難以上手,部分配置差別難以區分和合理應用
SpringCloud Alibaba的優勢:
阿里使用過的組件經歷了考驗,性能強悍,設計合理,現在開源出來大家用,成套的產品搭配完善的可視化界面給開發運維帶來極大的便利,搭建簡單,學習曲線低。
結合SpringCloud Alibaba我們最終的技術搭配方案:
SpringCloud Alibaba - Nacos:註冊中心(服務發現/註冊)
SpringCloud Alibaba - Nacos:配置中心(動態配置管理)
SpringCloud- Ribbon:負載均衡
SpringCloud- Feign:聲明式hTTP客戶端(調用遠程服務)
SpringCloud Alibaba- Sentinel:服務容錯(限流、降級、熔斷)
SpringCloud- Gateway: API 網關(webflux 編程模式)
SpringCloud- Sleuth:調用鏈監控
SpringCloud Alibaba-Seata:原Fescar, 即分佈式事務解決方案。
二、如何使用nacos註冊中心:
官方文檔:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md
引入依賴:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
註冊中心:
<!-- 服務註冊/發現-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
-
首先,修改 pom.xml 文件,引入 Nacos Config Starter。放在common中
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
-
在配置文件中配置,往下看
先把Nacos Server 啓動 並添加配置
下載nacos server 1.1.3
注意!啓動這裏有坑,如果啓動startup閃退的話,檢查jdk環境變量是否配置好,然後檢查用戶變量裏是否有JAVA_HOME
訪問:127.0.0.1:8848/nacos
登錄賬號密碼默認:nacos
接上邊:在服務中心啓動類上添加註解 @EnableDiscoveryClient
配置文件:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
application:
name: xuanyuan-member
然後在服務列表就可以看到了:
三、如何使用OpenFeign測試 服務之間的遠程調用:
Feign聲明式遠程調用
1、簡介
Feign是一個聲明式的HTTP客戶端,它的目的就是讓遠程調用更加簡單。Feign提供了HTTP請求的模板,通過編寫簡單的接口和插入註解,就可以定義好HTTP請求的參數、格式、地址等信息。
Feign整合了Ribbon (負載均衡)和Hystrix(服務熔斷),可以讓我們不再需要顯式地使用這兩個組件。
SpringCloudFeign在NetflixFeign的基礎上擴展了對SpringMVC註解的支持,在其實現下,我們只需創建一一個接口並用註解的方式來配置它,即可完成對服務提供方的接口綁定。簡化了SpringCloudRibbon自行封裝服務調用客戶端的開發量。