第十三节:SpringCloudAlibaba(Nacos、Sentinel、Seata)
发布日期:2021-05-03 20:39:04 浏览次数:32 分类:精选文章

本文共 1788 字,大约阅读时间需要 5 分钟。

Spring Cloud Alibaba 实践指南

1. 主要功能

Spring Cloud Alibaba 提供了丰富的功能模块,涵盖服务注册与发现、分布式配置管理、消息驱动能力、分布式事务、阿里云对象存储、分布式任务调度、阿里云短信服务等多个方面。以下是其主要功能概述:

  • 服务限流降级:支持多种框架如 WebServlet、WebFlux、OpenFeign 等的限流降级,可通过控制台实时配置。
  • 服务注册与发现:集成 Ribbon,适配 Spring Cloud 标准。
  • 分布式配置管理:支持分布式配置,配置变更自动刷新。
  • 消息驱动能力:基于 Spring Cloud Stream 构建消息驱动应用。
  • 分布式事务:提供 @GlobalTransactional 注解,解决分布式事务问题。
  • 阿里云对象存储:提供高可靠、安全的云存储服务。
  • 分布式任务调度:支持精准、高可靠的任务调度。
  • 阿里云短信服务:覆盖全球,支持智能短信通讯。

2. 组件概述

Spring Cloud Alibaba 组件丰富,涵盖流量控制、服务发现、消息系统、Dubbo 等多个领域:

  • Sentinel:高性能流控防护组件,支持熔断、降级等功能。
  • Nacos:集成注册中心和配置中心,提供服务发现和动态配置。
  • Seata:分布式事务解决方案,支持多种事务模式。
  • OpenFeign:轻量级 HTTP 客户端,支持限流和降级。
  • Dubbo:高性能 Java RPC 框架。
  • 阿里云短信:友好、高效的短信服务解决方案。
  • 阿里云任务调度:提供精准、高可用的任务执行服务。

3. Nacos 服务注册与配置

3.1 Nacos 简介

Nacos 是 Spring Cloud Alibaba 的服务注册与配置中心,集成了 Eureka 注册中心和 Config+Bus 配置中心。支持动态配置、多环境管理等功能。

3.2 安装与运行

  • 下载 Nacos,推荐使用版本 1.4.1。
  • 安装后,默认端口为 8848,可以通过命令启动。

3.3 服务注册

  • 新建模块 cloudalibaba-provider-payment9001,集成 Nacos 依赖。
  • 配置文件中添加 Nacos 服务地址和配置中心地址。
  • 主启动类注解 @EnableDiscoveryClient,实现服务发现。

3.4 配置中心

  • 使用 @RefreshScope 注解,支持动态配置刷新。
  • 配置文件格式支持 YAML,通过环境参数和命名空间管理多环境配置。

3.5 高级配置

  • 支持 DataID、Group、Namespace 等命名空间管理。
  • 配置中心可以与 MySQL 等数据库集成,支持持久化存储。

4. Sentinel 热点配置

4.1 安装与配置

  • 下载 Sentinel Dashboard,启动后默认端口为 8080。
  • 配置 Nacos 作为数据源,集成限流规则。

4.2 流控规则

  • QPS、线程数、关联等多种限流模式。
  • 支持热点参数限流,统计传入参数的热点参数。

4.3 自定义处理

  • 使用 @SentinelResource 注解,定义资源名称和处理逻辑。
  • 自定义 BlockHandler,实现限流后的异常处理。

5. Seata 分布式事务

5.1 安装与配置

  • 安装 Seata 服务器和客户端。
  • 配置 transaction.log 存储模式,集成数据库。
  • 配置注册中心,确保服务可用。

5.2 业务实现

  • 新建订单、扣减库存、扣减账户余额、修改订单状态等流程。
  • 使用 @GlobalTransactional 注解,确保全局事务一致性。
  • 回滚机制支持部分事务恢复。

6. 开源组件集成

6.1 Nacos 与 Sentinel 集成

  • Nacos 作为配置中心,存储 Sentinel 的限流规则。
  • 使用 Nacos 动态配置管理 Sentinel 的流控策略。

6.2 OpenFeign 与 Hystrix

  • 集成 OpenFeign,实现服务调用。
  • 配置 Hystrix,处理服务降级和熔断。

6.3 Dubbo 集成

  • 引用 Dubbo 进行 RPC 调用。
  • 配置 Dubbo 服务注册与发现。

通过以上配置和实现,可以高效构建基于 Spring Cloud Alibaba 的微服务应用,充分发挥其强大功能。

上一篇:Git快速入门-Gitee版
下一篇:第十二节:Stream(消息驱动)和Sleuth(分布式请求链路跟踪)

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月02日 18时14分41秒