我們先看一張圖,是說明註冊中心,配置中心,API網關的
看完上圖,腦子裏大概有個影響,接下來逐一說明
1、簡介:
pring Cloud Alibaba 致力於提供微服務開發的一站式解決方案。此項目包含開發分佈式應用微服務的必需組件,方便開發者通過 Spring Cloud 編程模型輕鬆使用這些組件來開發分佈式應用服務。
依託 Spring Cloud Alibaba,您只需要添加一些註解和少量配置,就可以將 Spring Cloud 應用接入阿里微服務解決方案,通過阿里中間件來迅速搭建分佈式應用系統。
2、SpringCloud的幾大痛點
- SpringCloud部分組件停止維護和更新,給開發者帶來不便
- SpringCloud部分環境搭建複雜,沒有完善的可視化界面,我們需要大量的二次開發和定製
- SpringCloud配置複雜,難以上手,部分配置差別難以區分和合理應用
3、SpringCloud Alibaba的優勢:
- 阿里使用過的組件經歷了考驗,性能強悍,設計合理,現在開源出來大家使用
- 成套的產品搭配完善的可視化界面給開發運維帶來極大的便利
- 搭建簡單,學習曲線低
4、結合SpringCloud Alibaba我們最終的技術搭配方案:
- SpringCloud Alibaba - Nacos:註冊中心(服務發現/註冊)
- SpringCloud Alibaba - Nacos:配置中心(動態配置管理)
- SpringCloud - Ribbon:負載均衡
- SpringCloud - Feign:聲明式HTTP客戶端(調用遠程服務)
- SpringCloud Alibaba - Sentnel:服務容錯(限流、降級、熔斷)
- SpringCloud - Gateway:API網關(webflux編程模式)
- SpringCloud - Sleuth:調用鏈監控
- SpringCloud Alibaba - Seata:原Fescar,即分佈式事務解決方案
根據github中的介紹,主要功能如下
5、如何使用
如果需要使用已發佈的版本,在 dependencyManagement
中添加如下配置。
<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>
由於每個微服務都需要往註冊中心註冊,我們把這個依賴放到的common包的pom文件中
6、如何接入
在啓動示例進行演示之前,我們先了解一下 Spring Cloud 應用如何接入 Nacos Discovery。 注意 本章節只是爲了便於您理解接入方式,本示例代碼中已經完成接入工作,您無需再進行修改。
首先,修改 pom.xml 文件,引入 Nacos Discovery Starter。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
在應用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server 地址
spring:
application:
name: hslmall-coupon
datasource:
url: jdbc:mysql://192.168.56.10:3306/hslmall_sms?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
cloud:
#配置nacos服務註冊和服務發現
nacos:
discovery:
server-addr: 127.0.0.1:8848
使用 @EnableDiscoveryClient 註解開啓服務註冊與發現功能
@EnableDiscoveryClient