当前位置: 首页 > news >正文

Spring Cloud Alibaba 学习 —— 简单了解常用技术栈

Spring Cloud Alibaba

官网:https://sca.aliyun.com/

什么是 Spring Cloud Alibaba

Spring Cloud Alibaba 是 Spring Cloud 规范在阿里生态的扩展实现,结合了阿里自研组件与开源生态,提供面向云原生场景的微服务解决方案。其核心功能可概括为:

服务治理 + 流量管控 + 分布式能力增强

主要解决微服务架构中的服务发现、配置管理、限流降级等核心问题。

核心组件与组成

组件名称功能描述技术特点
Nacos服务注册与配置中心支持动态配置推送、AP/CP 模式切换1
Sentinel流量控制与熔断降级基于 QPS/线程数的实时监控与规则动态生效4
RocketMQ分布式消息队列高吞吐量、顺序消息、事务消息支持
Seata分布式事务解决方案AT/TCC/SAGA 多种模式可选
DubboRPC 通信框架(可选)高性能二进制协议、服务网格集成

Nacos 服务注册于发现

官网:https://nacos.io/

github:https://github.com/alibaba/nacos

什么是 Nacos

Nacos是阿里巴巴开源的动态命名与配置服务,专为云原生微服务架构设计,提供服务发现、配置管理、服务元数据管理等核心功能。其核心目标是通过动态化能力简化微服务架构中的服务治理与配置管理,支持企业快速构建弹性高可用的分布式系统。

核心功能详解

  1. 服务注册与发现
    • 服务注册:微服务启动时向 Nacos 注册自身信息(IP、端口、健康状态等)。
    • 服务发现:消费者通过 Nacos 查询依赖服务的实时地址列表,实现流量路由。
    • 健康检查:基于心跳机制自动剔除异常节点,保障服务可用性。
  2. 动态配置管理
    • 配置统一存储:支持 YAML、JSON 等格式的配置集中管理。
    • 动态推送:配置变更时实时通知所有相关服务,无需重启。
    • 多环境隔离:通过命名空间(Namespace)实现开发、测试、生产环境的配置隔离。
  3. 服务元数据管理
    • 支持为服务添加自定义标签(如版本、区域),用于实现灰度发布、流量染色等高级场景。
  4. 流量管理
    • 与 Sentinel 集成实现服务路由权重调整,支持金丝雀发布。

技术架构与实现原理

Nacos 的服务领域模型分为三层:

  1. 命名空间(Namespace):用于隔离不同租户或环境的配置与服务。
  2. 集群(Cluster):物理隔离的部署单元,如不同机房。
  3. 服务(Service):微服务的逻辑分组,如订单服务、支付服务。

其核心架构采用 AP(高可用)与 CP(强一致性)模式可切换 的设计:

  • AP 模式:优先保证服务可用性,适用于注册中心场景。
  • CP 模式:优先保证数据一致性,适用于配置中心场景。

在微服务中的具体应用

  1. 服务注册发现流程

    注册
    拉取地址
    调用
    服务提供者
    Nacos Server
    服务消费者
  2. 动态配置示例

    # Nacos 配置中心存储的配置
    database:url: jdbc:mysql://${DB_HOST:localhost}:3306/appusername: ${DB_USER:root}
    

    服务通过注解 @RefreshScope 实现配置热更新:

    @RefreshScope
    @RestController
    public class ConfigController {@Value("${database.url}")private String dbUrl;
    }
    
  3. 典型场景

    • 电商系统:通过动态配置调整商品库存阈值。
    • 金融系统:利用命名空间隔离不同区域的交易服务配置。
    • 物联网平台:管理百万级设备连接的元数据。

优势对比

对比项NacosEurekaConsul
配置管理✔️ 原生支持❌ 需额外组件✔️ 支持
一致性协议AP/CP 可切换APCP
性能单机支持 104 节点注册单机约 5 ×103 节点约 3×103 节点

Sentinel 服务熔断与限流

github:https://github.com/alibaba/Sentinel

官网:https://sentinelguard.io/zh-cn/

什么是 Sentinel

Sentinel 是一款面向分布式系统的流量控制、熔断降级与系统保护组件,专注于保障微服务架构的稳定性。其核心价值在于通过多维度的流量治理手段,防止服务因突发流量、依赖故障或系统过载而崩溃,提升分布式系统的容错能力弹性

核心功能

  1. 流量控制
    • QPS/并发数控制:限制单位时间内的请求量或并发线程数,防止突发流量击穿系统。
    • 流量整形:支持匀速排队模式,将突发流量转换为平滑请求,避免系统负载剧烈波动。
    • 集群流控:通过 Token Server 实现跨节点的全局流量控制,适用于大规模分布式场景。
  2. 熔断降级
    • 熔断策略:基于慢调用比例、异常比例或异常数自动熔断不稳定服务,避免级联故障。
    • 降级规则:可配置降级后的默认响应(如返回兜底数据),保障核心业务链路的可用性。
  3. 系统自适应保护
    • Load 保护:根据系统 CPU 使用率、平均 RT 等指标动态调整流量入口阈值。
    • 并发线程数控制:防止线程池耗尽导致服务雪崩。
  4. 实时监控与告警
    • 秒级监控:展示接口级别的 QPS、RT、异常比例等关键指标。
    • 动态规则推送:支持通过 Nacos、ZooKeeper 等配置中心实时更新规则。

技术架构与实现原理

  1. 核心模块

    通过
    拒绝
    资源定义
    Slot 处理链
    规则检查
    业务逻辑
    降级处理
    • Slot 链机制:通过责任链模式依次执行统计、熔断检查、流控等逻辑。
    • 滑动窗口算法:实现高精度 QPS 统计,支持毫秒级流量控制。
  2. 扩展能力

    • 动态数据源:支持与 Nacos、Apollo 等配置中心集成,实现规则持久化。
    • 自定义 Slot:开发者可扩展自定义流量控制策略。

典型应用场景

  1. 电商秒杀场景

    // 定义资源并设置流控规则
    @SentinelResource(value = "seckill", blockHandler = "handleBlock")
    public String seckill(String itemId) {// 业务逻辑
    }
    
    • 通过集群流控限制每秒订单创建量,防止库存超卖。
  2. 微服务熔断

    # Spring Cloud Alibaba 配置示例
    spring:cloud:sentinel:datasource:ds1:nacos:server-addr: localhost:8848dataId: sentinel-rules
    
    • 当支付服务异常比例超过 50% 时自动熔断,降级返回“支付通道维护中”提示。
  3. 系统过载保护

    • 当系统 CPU 使用率超过 80% 时,自动拒绝低优先级请求,保障核心交易链路。

优势对比

对比项SentinelHystrixResilience4j
流量控制✔️ 支持 QPS、并发数、集群流控❌ 仅线程隔离✔️ 有限流控
熔断策略✔️ 慢调用+异常多维判断✔️ 仅异常比例✔️ 类似 Hystrix
监控能力✔️ 实时接口级监控❌ 需集成 Turbine❌ 需额外配置
扩展性✔️ 动态数据源+Slot 扩展❌ 有限✔️ 模块化设计

Seata 分布式事务

github:https://github.com/apache/incubator-seata

官网:https://seata.apache.org/zh-cn/docs/overview/what-is-seata

什么是 Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

核心功能与模式

  1. 事务模式

    • AT 模式(Auto Transaction)

      • 自动补偿机制:通过解析 SQL 生成反向回滚日志(undo_log),实现事务的自动提交与回滚。

      • 两阶段提交:

        Phase1: 分支事务注册+本地提交
        Phase2: 全局提交/回滚

        适用于大多数基于关系型数据库的场景,对业务代码侵入性低。

    • TCC 模式(Try-Confirm-Cancel)

      • 三阶段控制:通过 Try 阶段预留资源,Confirm/Cancel 阶段确认或释放资源,适用于高并发、需自定义补偿逻辑的场景(如积分兑换)。
    • Saga 模式

      • 长事务管理:通过状态机编排服务调用,支持异步事务和自定义补偿策略,适用于跨系统、执行时间较长的业务流程(如电商订单履约)。
  2. 核心组件

    组件角色说明功能示例
    TC事务协调器(Transaction Coordinator)全局事务的发起、提交与回滚
    TM事务管理器(Transaction Manager)定义全局事务边界(@GlobalTransactional)
    RM资源管理器(Resource Manager)分支事务注册、状态报告与锁管理

技术原理剖析

  1. 全局事务生命周期

    // TM 开启全局事务
    @GlobalTransactional
    public void purchase() {// 调用服务A(RM1)reduceStock();// 调用服务B(RM2)deductBalance();
    }
    
    • 事务启动:TM 向 TC 注册全局事务,生成唯一 XID2
    • 分支注册:RM 执行本地事务前向 TC 注册分支,并记录 undo_log。
    • 提交/回滚:TC 根据整体状态触发 Phase2 操作,RM 根据指令提交或回滚。
  2. AT 模式实现细节

    • SQL 解析:通过 JDBC 代理拦截 SQL,解析表结构、操作类型(INSERT/UPDATE/DELETE)。
    • 数据快照
      • 前置镜像:用于回滚时恢复原始数据。
      • 后置镜像:用于提交时验证数据一致性(防脏写)。
    • 锁机制:通过全局锁(global_lock)避免多个事务同时修改同一行数据。

典型应用场景

  1. 电商订单支付

    -- 订单服务(RM1)
    UPDATE order SET status = 'paid' WHERE id = 1001;
    -- 库存服务(RM2)
    UPDATE stock SET count = count - 1 WHERE item_id = 'SKU123';
    
    • 通过 AT 模式保证订单状态与库存扣减的原子性3
  2. 金融账户转账

    • 使用 TCC 模式实现跨行转账:
      • Try:冻结转出账户资金,记录操作日志。
      • Confirm:实际扣减转出金额,增加转入金额。
      • Cancel:解冻资金,删除日志。
  3. 物流状态更新

    • Saga 模式协调订单系统、仓储系统和物流系统,通过状态机定义补偿逻辑(如超时自动触发退货流程)。

优势对比

对比项Seata ATXA 协议基于消息队列
侵入性低(无代码改造)高(依赖数据库驱动)中(需消息监听)
性能高(本地事务优先提交)低(两阶段锁阻塞)中(异步最终一致性)
一致性强一致强一致最终一致
适用场景高并发 OLTP传统银行系统异步处理场景

扩展与优化

  1. 高可用部署
    • TC 集群化:通过注册中心(如 Nacos)实现 TC 节点发现与负载均衡。
    • 数据持久化:支持将事务日志存储至 MySQL、Redis 等数据库,避免单点故障。
  2. 性能调优
    • 异步化提交:Phase2 异步批量处理全局提交请求,降低网络延迟影响。
    • 锁优化:设置合理的全局锁超时时间,避免长时间锁竞争。

相关文章:

  • 新能源汽车与油车销量
  • iOS 集成网易云信IM
  • 强化学习的前世今生(五)— SAC算法
  • 1.2 HarmonyOS NEXT分布式架构核心技术解析
  • JVM 性能调优
  • 鸿蒙OSUniApp 移动端直播流播放实战:打造符合鸿蒙设计风格的播放器#三方框架 #Uniapp
  • Linux之文件进程间通信信号
  • 多商户系统源码性能调优实战:从瓶颈定位到高并发架构设计!
  • ✨1.1.1 按位与运算替代求余运算优化场景
  • Oracle数据类型AnyType与AnyData
  • 直线模组在手术机器人中有哪些技术挑战?
  • nic_monitor-全面监控以太网、IB、RoCE网络流量的工具
  • 职坐标精选嵌入式AI物联网开源项目
  • LangChain【3】之进阶内容
  • 蓝牙攻防实战:蓝牙技术详解
  • 本地部署AI工作流
  • 【机器人】具身导航 VLN 最新论文汇总 | Vision-and-Language Navigation
  • mapbox高阶,PMTiles介绍,MBTiles、PMTiles对比,加载PMTiles文件
  • 如何科学测量系统的最高QPS?
  • 图书管理系统的设计与实现
  • 伪静态网站入侵/申京效率值联盟第一
  • 开发公司楼盘项目管理费合同/网络推广关键词优化公司
  • 广州十大室内设计公司排名/抖音seo推荐算法
  • 惠山网站建设/上海优化价格
  • 一个人做网站的swot/佛山seo外包平台
  • 西安做网站哪家公司好/晋城今日头条新闻