Spring Cloud Alibaba 全解析
一、核心定位 & 核心價值(面試開篇必答,定調(diào)必背)
? 什么是 Spring Cloud Alibaba
Spring Cloud Alibaba 是 阿里巴巴開源的一站式微服務(wù)解決方案,是 Spring Cloud 生態(tài)的核心子項(xiàng)目,完全兼容 Spring Cloud 標(biāo)準(zhǔn)規(guī)范,是目前國內(nèi)企業(yè) 95% 以上微服務(wù)架構(gòu)的首選技術(shù)棧。
? 誕生背景(面試必考)
原生的 Spring Cloud 核心組件(Eureka、Hystrix、Zuul、Config)基于 Netflix 系列開源組件,但 Netflix 從 2018 年開始對核心組件陸續(xù)宣布停更 / 閉源,導(dǎo)致原生 Spring Cloud 存在穩(wěn)定性、維護(hù)性、本土化適配的問題;阿里基于自身多年微服務(wù)實(shí)戰(zhàn)經(jīng)驗(yàn),開源了一套本土化、高性能、一站式的微服務(wù)組件,完美替代 Netflix 組件,并且新增了熔斷限流、分布式事務(wù)、服務(wù)治理等企業(yè)剛需能力,最終整合為 Spring Cloud Alibaba 生態(tài)。
? 核心優(yōu)勢(面試必答,4 個核心亮點(diǎn))
- 一站式解決方案:一個技術(shù)棧搞定「服務(wù)注冊發(fā)現(xiàn) + 配置中心 + 熔斷限流 + 遠(yuǎn)程調(diào)用 + 網(wǎng)關(guān) + 分布式事務(wù) + 消息隊(duì)列」所有微服務(wù)核心能力;
- 完美兼容 Spring 生態(tài):無縫整合 SpringBoot/SpringCloud,開發(fā)體驗(yàn)一致,幾乎無學(xué)習(xí)成本;
- 本土化 + 高性能:阿里自研組件,針對國內(nèi)業(yè)務(wù)場景深度優(yōu)化,性能遠(yuǎn)超 Netflix 原生組件;
- 組件成熟度高:所有組件均經(jīng)過阿里雙十一高并發(fā)場景驗(yàn)證,生產(chǎn)環(huán)境穩(wěn)定性拉滿。
? 對比:Spring Cloud Alibaba vs 原生 Spring Cloud(面試高頻)
| 能力維度 | 原生 Spring Cloud (Netflix) | Spring Cloud Alibaba |
|---|---|---|
| 服務(wù)注冊與發(fā)現(xiàn) | Eureka (停更)、Consul | Nacos(注冊 + 配置 二合一,首選) |
| 配置中心 | Spring Cloud Config (簡陋) | Nacos(動態(tài)配置、灰度發(fā)布、配置分層) |
| 熔斷限流降級 | Hystrix (停更) | Sentinel(熔斷 + 限流 + 降級 + 熱點(diǎn)規(guī)則,全能) |
| 遠(yuǎn)程調(diào)用 | OpenFeign、Ribbon | OpenFeign + Nacos 負(fù)載均衡、Dubbo(高性能 RPC) |
| 網(wǎng)關(guān) | Zuul1.x (性能差)、Gateway | Spring Cloud Gateway + Nacos 整合(首選) |
| 分布式事務(wù) | 無官方組件 | Seata(阿里開源,分布式事務(wù)事實(shí)標(biāo)準(zhǔn)) |
| 服務(wù)治理 | 弱 | Nacos 權(quán)重、隔離、元數(shù)據(jù)、健康檢查(完善) |
| 生態(tài)完善度 | 低(組件停更) | 極高(持續(xù)迭代、阿里背書) |
? 核心結(jié)論:目前國內(nèi)企業(yè)開發(fā)微服務(wù),Spring Cloud Alibaba 是唯一首選,原生 Spring Cloud 幾乎無企業(yè)使用。
二、Spring Cloud Alibaba 核心版本兼容(實(shí)戰(zhàn)必看,避坑第一?。?/h2>
? 致命大坑:版本強(qiáng)綁定
Spring Cloud Alibaba 對 SpringBoot + SpringCloud 的版本有嚴(yán)格的強(qiáng)綁定關(guān)系,版本搭配錯誤會導(dǎo)致項(xiàng)目啟動失敗、依賴沖突、組件失效等各種奇奇怪怪的問題,這是新手最容易踩的坑!
核心原則:先定 SpringBoot 版本,再匹配對應(yīng) SpringCloud 和 SpringCloud Alibaba 版本,絕對不要亂選版本!
? 主流穩(wěn)定版本匹配表(生產(chǎn)環(huán)境首選,2026 年最新推薦)
? 組合1(企業(yè)首選,最穩(wěn)定):SpringBoot 2.3.9.RELEASE + SpringCloud Hoxton.SR10 + SpringCloud Alibaba 2.2.6.RELEASE
? 組合2(次選,新版本):SpringBoot 2.6.13 + SpringCloud 2021.0.5 + SpringCloud Alibaba 2021.0.5.0
? 組合3(入門學(xué)習(xí)):SpringBoot 2.2.5.RELEASE + SpringCloud Hoxton.SR3 + SpringCloud Alibaba 2.2.1.RELEASE
注意:SpringBoot 3.x 版本對應(yīng) SpringCloud Alibaba 2022.x 版本,兼容無問題,生產(chǎn)可放心使用。
? 核心統(tǒng)一父依賴(Maven,所有微服務(wù)工程通用)
所有微服務(wù)子工程建議創(chuàng)建父工程,統(tǒng)一管理版本,避免依賴沖突,直接復(fù)制即用:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.9.RELEASE</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.SR10</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
</properties>
<!-- 統(tǒng)一管理SpringCloud依賴 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 統(tǒng)一管理SpringCloud Alibaba依賴 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>三、Spring Cloud Alibaba 核心組件(靈魂核心,面試 + 實(shí)戰(zhàn)全覆蓋)
核心結(jié)論:Spring Cloud Alibaba 的核心就是「三大金剛 + 生態(tài)組件」,
Nacos + Sentinel + Seata是絕對核心,所有微服務(wù)架構(gòu)都圍繞這三個組件搭建,面試必考這三個組件的作用 + 原理 + 使用!所有組件均為「按需引入依賴」,哪個組件不用就不加對應(yīng)的依賴,輕量化集成。
? 核心組件 1:Nacos 【注冊中心 + 配置中心 二合一,重中之重】
1. 核心定位
Nacos = Naming (服務(wù)注冊發(fā)現(xiàn)) + Configuration (配置中心),一個組件搞定兩個核心能力,完全替代 Eureka + Config + Bus,是 Spring Cloud Alibaba 的「基石組件」,所有微服務(wù)都必須接入 Nacos,面試必考 TOP1。
2. 核心能力(面試必背,缺一不可)
?? 能力①:服務(wù)注冊與發(fā)現(xiàn)(替代 Eureka/Consul)
- 所有微服務(wù)啟動時,自動將自身服務(wù)名、IP、端口注冊到 Nacos Server;
- 微服務(wù)之間通過「服務(wù)名」遠(yuǎn)程調(diào)用,無需寫死 IP 端口,Nacos 自動做負(fù)載均衡;
- 支持健康檢查、服務(wù)上下線感知、權(quán)重配置、服務(wù)隔離、元數(shù)據(jù)管理;
- 核心優(yōu)勢:比 Eureka 性能高、功能全,支持 AP+CP 雙模式切換,宕機(jī)自動恢復(fù)。
?? 能力②:分布式配置中心(替代 Config+Bus)
- 所有微服務(wù)的配置文件(application.yml)統(tǒng)一托管到 Nacos,實(shí)現(xiàn)「配置集中管理」;
- 支持動態(tài)配置刷新:配置修改后,微服務(wù)無需重啟,實(shí)時生效;
- 支持配置分層 / 分組 / 命名空間:完美適配「開發(fā) / 測試 / 生產(chǎn)」多環(huán)境、多服務(wù)、多集群的配置隔離;
- 支持配置灰度發(fā)布、配置回滾、配置加密,企業(yè)級生產(chǎn)能力拉滿。
3. 最簡集成步驟(所有微服務(wù)通用,直接復(fù)制)
?? 步驟 1:引入依賴
<!-- Nacos 注冊中心 + 配置中心 核心依賴 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>?? 步驟 2:配置文件(必須是 bootstrap.yml/bootstrap.properties)
核心坑:Nacos 配置中心的配置必須寫在 bootstrap.yml,因?yàn)?bootstrap.yml 的加載優(yōu)先級高于 application.yml,保證項(xiàng)目啟動時先從 Nacos 拉取配置,再啟動服務(wù)。
spring:
application:
name: order-service # 服務(wù)名,核心!注冊到Nacos的唯一標(biāo)識,遠(yuǎn)程調(diào)用用這個名
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # Nacos服務(wù)端地址
config:
server-addr: 127.0.0.1:8848 # 同一個Nacos地址即可
file-extension: yml # 配置文件格式,yml/properties
group: DEFAULT_GROUP # 配置分組
namespace: dev # 命名空間,對應(yīng)開發(fā)環(huán)境?? 步驟 3:啟動類加注解
@SpringBootApplication
@EnableDiscoveryClient // 開啟服務(wù)注冊與發(fā)現(xiàn),SpringCloud標(biāo)準(zhǔn)注解
public class OrderServiceApplication {
public static void main(String[] args) {
SpringApplication.run(OrderServiceApplication.class, args);
}
}
4. 核心面試考點(diǎn)
- Nacos 的 AP/CP 模式切換?→ 默認(rèn)為 AP(高可用,適合服務(wù)注冊),手動切換為 CP(強(qiáng)一致,適合配置中心);
- Nacos 和 Eureka 的區(qū)別?→ Nacos 功能更全、性能更高、支持配置中心、健康檢查更完善,Eureka 僅支持服務(wù)注冊;
- Nacos 配置優(yōu)先級?→ 本地配置 <Nacos 配置,Nacos 中:命名空間> 分組 > 配置文件;
? 核心組件 2:Sentinel 【熔斷 + 限流 + 降級,微服務(wù)高可用守護(hù)神】
1. 核心定位
Sentinel 是阿里開源的流量治理組件,核心能力是 熔斷、限流、降級、熱點(diǎn)規(guī)則、系統(tǒng)保護(hù),完全替代 Hystrix,并且功能比 Hystrix 強(qiáng)大 10 倍,是保證微服務(wù)「高可用」的核心組件,面試必考 TOP2。
2. 核心解決的問題(面試必答)
微服務(wù)架構(gòu)中,一個服務(wù)的故障會通過調(diào)用鏈路蔓延,導(dǎo)致「雪崩效應(yīng)」(一個服務(wù)掛→整條鏈路掛),Sentinel 通過三大核心能力解決:
- 限流:限制服務(wù)的 QPS / 并發(fā)數(shù),防止服務(wù)被突發(fā)流量打垮(比如秒殺、促銷);
- 熔斷:當(dāng)被調(diào)用的服務(wù)異常率達(dá)到閾值時,自動「熔斷」調(diào)用鏈路,快速失敗,避免服務(wù)雪崩;
- 降級:當(dāng)服務(wù)壓力過大時,關(guān)閉非核心接口(比如商品詳情的評論、推薦),釋放資源保證核心接口可用;
3. 核心特性
- 無侵入:支持注解式開發(fā),業(yè)務(wù)代碼無需改造;
- 實(shí)時監(jiān)控:自帶可視化控制臺,實(shí)時查看流量、異常率、熔斷狀態(tài);
- 規(guī)則豐富:支持限流、熔斷、降級、熱點(diǎn)參數(shù)、系統(tǒng)保護(hù)、黑白名單等;
- 規(guī)則持久化:支持將規(guī)則持久化到 Nacos,服務(wù)重啟不丟失。
4. 最簡集成步驟(直接復(fù)制)
?? 步驟 1:引入依賴
<!-- Sentinel 核心依賴 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>?? 步驟 2:配置文件
spring:
cloud:
sentinel:
transport:
dashboard: 127.0.0.1:8080 # Sentinel控制臺地址
port: 8719 # 客戶端和控制臺通信端口?? 步驟 3:業(yè)務(wù)代碼使用(注解式,零侵入)
@RestController
@RequestMapping("/order")
public class OrderController {
// 限流規(guī)則:該接口QPS最多10,超過則返回自定義提示
@GetMapping("/get/{id}")
@SentinelResource(value = "orderGet", blockHandler = "orderGetBlockHandler")
public Result getOrder(@PathVariable Long id) {
return Result.success("查詢訂單成功:" + id);
}
// 限流后的兜底方法,參數(shù)和返回值必須和原方法一致,多一個BlockException參數(shù)
public Result orderGetBlockHandler(Long id, BlockException e) {
return Result.fail(500, "接口限流啦,稍等再試!");
}
}? 核心組件 3:Seata 【分布式事務(wù),最終一致性解決方案】
1. 核心定位
Seata 是阿里開源的分布式事務(wù)中間件,是目前 Java 微服務(wù)領(lǐng)域分布式事務(wù)的事實(shí)標(biāo)準(zhǔn),完全替代 2PC/XA/TCC 手寫方案,也是我們上一輪詳細(xì)聊的核心內(nèi)容,面試必考 TOP3。
2. 核心定位 & 核心模式
- 解決:微服務(wù)跨服務(wù)、跨數(shù)據(jù)庫的「數(shù)據(jù)一致性」問題(比如訂單創(chuàng)建 + 庫存扣減 + 支付扣款);
- 核心模式:AT 模式(99% 企業(yè)首選) 零侵入、最終一致性、高性能;TCC 模式(金融核心場景)強(qiáng)一致、侵入性強(qiáng);
- 核心角色:TC (事務(wù)協(xié)調(diào)器)、TM (事務(wù)管理器)、RM (資源管理器) (必須背會);
- 核心表:
undo_log表是 AT 模式的靈魂,所有參與事務(wù)的數(shù)據(jù)庫必須創(chuàng)建該表。
3. 最簡集成步驟(AT 模式,零侵入,直接復(fù)制,上一輪詳細(xì)講過)
?? 步驟 1:引入依賴
<!-- Seata 核心依賴 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>?? 步驟 2:配置文件
spring:
cloud:
alibaba:
seata:
tx-service-group: my_tx_group # 事務(wù)分組,和Seata服務(wù)端一致
seata:
registry:
type: nacos
nacos:
server-addr: 127.0.0.1:8848
config:
type: nacos
nacos:
server-addr: 127.0.0.1:8848?? 步驟 3:業(yè)務(wù)代碼(零侵入,只加一個注解)
@Service
public class OrderServiceImpl implements OrderService {
@Autowired
private StockFeignClient stockFeignClient;
@Autowired
private OrderMapper orderMapper;
// 全局事務(wù)入口:加該注解,異常時自動回滾所有分支事務(wù)
@GlobalTransactional(rollbackFor = Exception.class)
@Override
public void createOrder(OrderDTO dto) {
// 1. 本地事務(wù):創(chuàng)建訂單
orderMapper.insert(dto);
// 2. 遠(yuǎn)程調(diào)用:扣減庫存(跨服務(wù)、跨庫)
stockFeignClient.deductStock(dto.getProductId(), dto.getNum());
}
}? 核心記憶:Seata AT 模式是無侵入、最終一致性、高性能,是企業(yè)分布式事務(wù)的唯一首選。
四、Spring Cloud Alibaba 其他核心生態(tài)組件(按需集成,必懂)
以上三個是核心中的核心,以下組件是企業(yè)級微服務(wù)的「標(biāo)配能力」,按需引入即可,都是阿里生態(tài)的優(yōu)質(zhì)組件,整合成本極低:
? 1. OpenFeign 遠(yuǎn)程調(diào)用(標(biāo)配)
Spring Cloud 標(biāo)準(zhǔn)組件,基于 HTTP 的聲明式遠(yuǎn)程調(diào)用,替代原生的 RestTemplate,代碼更優(yōu)雅,無縫整合 Nacos 和 Sentinel,所有微服務(wù)必用。
<!-- OpenFeign 依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
使用方式:啟動類加@EnableFeignClients,然后寫接口:
@FeignClient(value = "stock-service") // 調(diào)用的服務(wù)名(Nacos注冊的名稱)
public interface StockFeignClient {
@PostMapping("/stock/deduct")
Result deductStock(@RequestParam Long productId, @RequestParam Integer num);
}
? 2. Spring Cloud Gateway 網(wǎng)關(guān)(標(biāo)配)
微服務(wù)的「統(tǒng)一入口」,替代 Zuul,基于 Netty 開發(fā),高性能,核心能力:路由轉(zhuǎn)發(fā)、統(tǒng)一鑒權(quán)、限流、日志、跨域,所有前端請求都先經(jīng)過網(wǎng)關(guān),再轉(zhuǎn)發(fā)到具體微服務(wù),生產(chǎn)環(huán)境必用。
<!-- Gateway 核心依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
? 3. Dubbo 高性能 RPC 調(diào)用(可選)
阿里開源的高性能 RPC 框架,基于 TCP 協(xié)議,性能比 OpenFeign(HTTP)高 10 倍以上,適合高并發(fā)、大數(shù)據(jù)量的遠(yuǎn)程調(diào)用場景,無縫整合 Nacos 注冊中心,Spring Cloud Alibaba 提供了完美的整合方案。
? 4. RocketMQ 消息隊(duì)列(可選)
阿里開源的分布式消息隊(duì)列,替代 Kafka/RabbitMQ,適合異步解耦、削峰填谷、可靠消息投遞,無縫整合 Spring Cloud Alibaba,是微服務(wù)異步化的核心組件。
? 5. Alibaba OSS / 短信 / 支付(可選)
阿里云的商業(yè)化組件,一鍵集成:對象存儲 OSS(文件上傳)、短信服務(wù)(驗(yàn)證碼)、支付寶支付,適合企業(yè)級項(xiàng)目快速接入阿里云生態(tài)。
五、Spring Cloud Alibaba 企業(yè)級微服務(wù)完整技術(shù)棧(生產(chǎn)環(huán)境標(biāo)配,面試必背)
這是企業(yè)真實(shí)落地的技術(shù)棧組合,也是面試時回答「你們項(xiàng)目用的是什么技術(shù)棧?」的標(biāo)準(zhǔn)答案,背下來!
? 完整技術(shù)棧組合(從底層到上層,一站式)
基礎(chǔ)框架:SpringBoot 2.3.9.RELEASE + SpringCloud Hoxton.SR10 + SpringCloud Alibaba 2.2.6.RELEASE 核心組件:Nacos(注冊+配置) + Sentinel(熔斷限流) + Seata(分布式事務(wù)) 遠(yuǎn)程調(diào)用:OpenFeign(常規(guī)場景) + Dubbo(高并發(fā)場景) 網(wǎng)關(guān)組件:Spring Cloud Gateway(路由+鑒權(quán)+限流) 數(shù)據(jù)持久化:Mybatis-Plus + MySQL + Redis(緩存) 消息隊(duì)列:RocketMQ(異步解耦、可靠消息) 部署方式:Docker + Kubernetes(容器化部署) 鏈路追蹤:SkyWalking(分布式鏈路追蹤,阿里開源)
六、Spring Cloud Alibaba 面試高頻考點(diǎn)(必考,標(biāo)準(zhǔn)答案,直接背)
? 高頻面試題 TOP10(按考頻排序,全部是考點(diǎn))
1. Spring Cloud Alibaba 核心組件有哪些?各自的作用?
答:核心三大組件:
①Nacos:服務(wù)注冊發(fā)現(xiàn) + 配置中心二合一;
②Sentinel:熔斷限流降級,保證服務(wù)高可用;
③Seata:分布式事務(wù),解決跨服務(wù)數(shù)據(jù)一致性問題。其他組件:Gateway 網(wǎng)關(guān)、OpenFeign 遠(yuǎn)程調(diào)用、Dubbo RPC 調(diào)用。
2. Nacos 的核心能力是什么?和 Eureka 的區(qū)別?
答:Nacos 有兩大核心能力:服務(wù)注冊發(fā)現(xiàn) + 分布式配置中心。
區(qū)別:
①功能:Nacos 功能更全,Eureka 僅支持注冊發(fā)現(xiàn);
②一致性:Nacos 支持 AP+CP 切換,Eureka 僅支持 AP;
③性能:Nacos 性能更高,支持健康檢查、權(quán)重配置等;
④生態(tài):Nacos 是阿里生態(tài),持續(xù)迭代,Eureka 已停更。
3. Sentinel 的核心功能是什么?和 Hystrix 的區(qū)別?
答:Sentinel 核心功能:限流、熔斷、降級、熱點(diǎn)規(guī)則、系統(tǒng)保護(hù)。
區(qū)別:
①功能:Sentinel 功能更豐富,Hystrix 僅支持熔斷和降級;
②性能:Sentinel 基于原生代碼實(shí)現(xiàn),性能更高;
③易用性:Sentinel 注解式開發(fā),控制臺更友好;
④生態(tài):Sentinel 持續(xù)迭代,Hystrix 已停更。
4. Seata 的三大核心角色是什么?AT 模式的核心原理?
答:Seata 三大角色:TC (事務(wù)協(xié)調(diào)器)、TM (事務(wù)管理器)、RM (資源管理器)。AT 模式是無侵入的最終一致性分布式事務(wù),分兩階段:
①一階段:分支事務(wù)提交,寫入 undo_log,釋放行鎖;
②二階段:全局提交則刪除 undo_log,全局回滾則根據(jù) undo_log 自動生成補(bǔ)償 SQL 回滾數(shù)據(jù)。
5. 微服務(wù)中分布式事務(wù)的解決方案有哪些?為什么選 Seata?
答:方案有:本地消息表、MQ 事務(wù)消息、Seata AT/TCC、2PC。選 Seata 的原因:AT 模式零侵入,開發(fā)成本低,性能高,最終一致性滿足絕大多數(shù)業(yè)務(wù)場景,是阿里開源的成熟組件,企業(yè)落地最多。
6. 微服務(wù)的雪崩效應(yīng)是什么?怎么解決?
答:雪崩效應(yīng)是指一個服務(wù)故障,導(dǎo)致調(diào)用鏈路中其他服務(wù)也相繼故障的連鎖反應(yīng)。解決方式:
①熔斷:Sentinel 熔斷異常服務(wù);
②限流:限制服務(wù)的 QPS;
③降級:關(guān)閉非核心接口;
④隔離:服務(wù)之間做線程池隔離;
⑤緩存:熱點(diǎn)數(shù)據(jù)緩存,減少服務(wù)調(diào)用。
7. Nacos 的配置優(yōu)先級是怎樣的?
答:優(yōu)先級從高到低:Nacos 遠(yuǎn)程配置 > 本地 bootstrap.yml > 本地 application.yml。Nacos 內(nèi)部優(yōu)先級:命名空間 > 配置分組 > 配置文件。
8. Spring Cloud Alibaba 中如何實(shí)現(xiàn)服務(wù)的負(fù)載均衡?
答: ①基于 OpenFeign:整合 Nacos 的負(fù)載均衡,默認(rèn)輪詢策略,支持權(quán)重配置;
②基于 Dubbo:整合 Nacos 的負(fù)載均衡,支持輪詢、隨機(jī)、一致性哈希等策略; ③手動配置:通過 Nacos 的權(quán)重配置實(shí)現(xiàn)自定義負(fù)載均衡。
9. Seata AT 模式中 undo_log 表的作用是什么?
答:undo_log 是 AT 模式的核心表,三大作用:
①存儲數(shù)據(jù)的前置 / 后置鏡像,作為回滾的依據(jù);
②實(shí)現(xiàn)臟寫防護(hù),通過唯一索引保證并發(fā)安全;
③標(biāo)記事務(wù)狀態(tài),作為二階段清理的依據(jù)。
10. 微服務(wù)拆分的原則是什么?
答: ①單一職責(zé)原則:一個服務(wù)只做一件事;
②業(yè)務(wù)閉環(huán)原則:一個業(yè)務(wù)流程的核心操作盡量放在一個服務(wù);
③低耦合高內(nèi)聚:服務(wù)之間盡量通過遠(yuǎn)程調(diào)用,內(nèi)部邏輯高內(nèi)聚;
④避免過度拆分:拆分粒度太細(xì)會導(dǎo)致分布式事務(wù)、調(diào)用鏈路復(fù)雜。
七、核心總結(jié)(面試 + 實(shí)戰(zhàn)速記,重中之重)
? 實(shí)戰(zhàn)核心原則
- Spring Cloud Alibaba 是國內(nèi)微服務(wù)的唯一首選,版本兼容是第一大坑,必須嚴(yán)格匹配 SpringBoot 版本;
- 核心三板斧:Nacos 做基礎(chǔ)、Sentinel 保高可用、Seata 解決一致性,這三個組件是必選;
- 分布式事務(wù)優(yōu)先選 Seata AT 模式,零侵入、高性能,99% 場景夠用;
- 微服務(wù)的高可用核心是「限流 + 熔斷 + 降級」,必須接入 Sentinel,避免雪崩效應(yīng)。
? 面試核心原則
- 回答組件相關(guān)問題時,先講定位,再講核心能力,最后講優(yōu)勢,邏輯清晰;
- 回答分布式事務(wù)、服務(wù)雪崩等問題時,先講問題根源,再講解決方案,最后講選型理由;
- 記?。篠pring Cloud Alibaba 的核心價值是「一站式、本土化、高性能、成熟穩(wěn)定」。
到此這篇關(guān)于Spring Cloud Alibaba 詳解的文章就介紹到這了,更多相關(guān)Spring Cloud Alibaba內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java哈希表HashTable(又稱散列表)的實(shí)現(xiàn)及練習(xí)題
哈希表又稱為散列表,是一種通過哈希函數(shù)將數(shù)據(jù)映射到特定位置的數(shù)據(jù)結(jié)構(gòu),這篇文章主要介紹了Java哈希表HashTable(又稱散列表)的實(shí)現(xiàn)及練習(xí)題的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-12-12
java中循環(huán)刪除list中元素的方法總結(jié)
下面小編就為大家?guī)硪黄猨ava中循環(huán)刪除list中元素的方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
關(guān)于SpringBoot配置文件application.properties的路徑問題
這篇文章主要介紹了關(guān)于SpringBoot配置文件application.properties的路徑問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
JSON各種轉(zhuǎn)換問題(json轉(zhuǎn)List,json轉(zhuǎn)對象等)
這篇文章主要介紹了JSON各種轉(zhuǎn)換問題(json轉(zhuǎn)List,json轉(zhuǎn)對象等),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
Java中使用Levenshtein距離實(shí)現(xiàn)字符串相似度匹配方式
這篇文章主要介紹了Java中使用Levenshtein距離實(shí)現(xiàn)字符串相似度匹配方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06
Java編程實(shí)現(xiàn)漢字按字母順序排序的方法示例
這篇文章主要介紹了Java編程實(shí)現(xiàn)漢字按字母順序排序的方法,結(jié)合具體實(shí)例形式分析了java編碼轉(zhuǎn)換及字母排序相關(guān)操作技巧,需要的朋友可以參考下2017-07-07
Java進(jìn)階學(xué)習(xí):jar打包詳解
Java進(jìn)階學(xué)習(xí):jar打包詳解...2006-12-12
如何實(shí)現(xiàn)java8 list按照元素的某個字段去重
這篇文章主要介紹了如何實(shí)現(xiàn)java8 list按照元素的某個字段去重,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06

