SpringMVC 分布式事务 Seata 模式解析

SEATA AT模式:零侵入的分布式事务解决方案 分布式事务是微服务架构中的关键技术挑战,用于解决跨服务数据一致性问题。其核心原理基于两阶段提交协议,通过事务协调者管理各参与者的提交或回滚。SEATA框架的AT模式创新性地采用业务表记录undo_log的方式,实现了对业务代码零侵入的分布式事务管理,只需添加@GlobalTransactional注解即可自动处理事务。这种方案特别适合电商、金融等需要保证数据最终一致性的场景,相比TCC模式具有更低的使用门槛。在实际应用中,AT模式通过异步化处理和undo_log机制,既能避免传统2PC的同步阻塞问题,又能确 阅读详情

📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》(基础篇)、(进阶篇)、(架构篇)、《解密程序员的思维密码——沟通、演讲、思考的实践》作者、清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

📘拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、SpringMVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。

📙不定期分享高并发、高可用、高性能、微服务、分布式、海量数据、性能调优、云原生、项目管理、产品思维、技术选型、架构设计、求职面试、副业思维、个人成长等内容。

Java程序员廖志伟

💡在这个美好的时刻,笔者不再啰嗦废话,现在毫不拖延地进入文章所要讨论的主题。接下来,我将为大家呈现正文内容。

优快云

🌟 SpringMVC 分布式事务知识点

🍊 Seata AT 模式

🎉 AT 模式简介

Seata AT 模式是 Seata 分布式事务解决方案的核心之一,它通过两阶段提交协议确保分布式事务的原子性。在 AT 模式下,Seata 将业务操作分为业务数据和业务逻辑两部分,其中业务数据操作被封装在数据库事务中,而业务逻辑操作则通过 Seata 提供的 API 进行控制。

🎉 AT 模式原理

AT 模式利用两阶段提交协议,在分布式事务中实现原子性。当业务操作成功时,Seata 会提交数据库事务;若失败,则回滚事务。这种模式简化了分布式事务的实现,易于使用。

🎉 AT 模式架构

AT 模式架构主要包括以下组件:

  • Seata Server:负责协调分布式事务。
  • Seata Client:负责本地事务与全局事务的绑定。
  • Seata RM(Resource Manager):负责管理全局事务的分支事务。
  • Seata TM(Transaction Manager):负责全局事务的提交和回滚。

🎉 AT 模式事务流程

  1. Seata Client 将本地事务与全局事务绑定。
  2. Seata RM 将全局事务的分支事务注册到 Seata Server。
  3. Seata Server 协调分布式事务的执行。
  4. 当本地事务提交时,Seata Client 将本地事务的提交结果同步到全局事务中。
  5. 当本地事务回滚时,Seata Client 将本地事务的回滚结果同步到全局事务中。
  6. Seata Server 根据全局事务的执行结果,提交或回滚全局事务。

🎉 AT 模式优缺点

技术原理应用场景优势与局限实际案例
两阶段提交协议需要保证数据一致性的分布式系统简单易用,性能较好分布式数据库、分布式缓存等

🎉 AT 模式配置与使用

在 Spring Boot 项目中,配置 AT 模式需要添加以下依赖:

<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-all</artifactId>
    <version>1.3.0</version>
</dependency>

然后在 application.properties 文件中配置 Seata 相关参数:

seata.server.address=127.0.0.1:8091
seata.transaction.mode=AT

在业务代码中,使用 @Transactional 注解来声明事务:

@Transactional
public void transfer(Long fromId, Long toId, Integer amount) {
    // 执行业务逻辑
}

🍊 Seata TCC 模式

🎉 TCC 模式简介

Seata TCC 模式通过三个阶段(准备阶段、提交阶段、回滚阶段)实现分布式事务的原子性。在 TCC 模式下,业务操作被拆分为三个阶段,分别对应以下操作:

  • 准备阶段:尝试修改数据但不提交事务。
  • 提交阶段:若成功则提交事务。
  • 回滚阶段:若失败则回滚事务。

🎉 TCC 模式原理

TCC 模式通过将分布式事务拆分为三个阶段,分别对应以下操作:

  • 准备阶段:业务操作执行前,先进行预操作,并记录预操作结果。
  • 执行阶段:业务操作执行,并根据预操作结果进行相应的操作。
  • 补偿阶段:如果业务操作执行失败,则进行补偿操作,以恢复业务操作前的状态。

🎉 TCC 模式架构

TCC 模式架构主要包括以下组件:

  • Seata Server:负责协调分布式事务。
  • Seata Client:负责本地事务与全局事务的绑定。
  • Seata RM:Seata 资源管理器,负责管理全局事务的分支事务。
  • Seata TM:Seata 事务管理器,负责全局事务的提交和回滚。

🎉 TCC 模式事务流程

  1. Seata Client 将本地事务与全局事务绑定。
  2. Seata RM 将全局事务的分支事务注册到 Seata Server。
  3. Seata Server 协调分布式事务的执行。
  4. 当本地事务执行到准备阶段时,Seata Client 记录业务操作前的状态。
  5. 当本地事务执行到提交阶段时,Seata Client 确认业务操作成功,并提交业务操作。
  6. 当本地事务执行到补偿阶段时,Seata Client 进行补偿操作,以恢复业务操作前的状态。

🎉 TCC 模式优缺点

技术原理应用场景优势与局限实际案例
三阶段提交协议需要保证数据一致性的分布式系统简单易用,性能较好分布式数据库、分布式缓存等

🎉 TCC 模式配置与使用

在 Spring Boot 项目中,配置 TCC 模式需要添加以下依赖:

<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-all</artifactId>
    <version>1.3.0</version>
</dependency>

然后在 application.properties 文件中配置 Seata 相关参数:

seata.server.address=127.0.0.1:8091
seata.transaction.mode=TCC

在业务代码中,实现 Try、Confirm 和 Cancel 接口:

public interface AccountService {
    @GlobalTransactional
    void transfer(Long fromId, Long toId, Integer amount);
}

🍊 Seata SAGA 模式

🎉 SAGA 模式简介

Seata SAGA 模式通过将业务操作拆分为多个子事务实现分布式事务的原子性。每个子事务独立,可独立提交或回滚。所有子事务成功则整个事务成功,若有子事务失败则回滚所有子事务。

🎉 SAGA 模式原理

SAGA 模式将业务操作拆分为多个子事务,每个子事务独立,可独立提交或回滚。所有子事务成功则整个事务成功,若有子事务失败则回滚所有子事务。

🎉 SAGA 模式架构

SAGA 模式架构主要包括以下组件:

  • Seata Server:负责协调分布式事务。
  • Seata Client:负责本地事务与全局事务的绑定。
  • Seata RM:Seata 资源管理器,负责管理全局事务的分支事务。
  • Seata TM:Seata 事务管理器,负责全局事务的提交和回滚。

🎉 SAGA 模式事务流程

  1. Seata Client 将本地事务与全局事务绑定。
  2. Seata RM 将全局事务的分支事务注册到 Seata Server。
  3. Seata Server 协调分布式事务的执行。
  4. 当本地事务执行到下一个本地事务时,Seata Client 继续执行下一个本地事务。
  5. 如果本地事务失败,则 Seata Client 回滚所有已执行的本地事务。

🎉 SAGA 模式优缺点

技术原理应用场景优势与局限实际案例
子事务拆分需要保证数据一致性的分布式系统简单易用,性能较好分布式数据库、分布式缓存等

🎉 SAGA 模式配置与使用

在 Spring Boot 项目中,配置 SAGA 模式需要添加以下依赖:

<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-all</artifactId>
    <version>1.3.0</version>
</dependency>

然后在 application.properties 文件中配置 Seata 相关参数:

seata.server.address=127.0.0.1:8091
seata.transaction.mode=SAGA

在业务代码中,实现本地事务:

@Service
public class AccountService {

    @Transactional
    public void transfer(Long fromId, Long toId, Integer amount) {
        // 执行业务逻辑
    }
}

🍊 本地消息表

🎉 本地消息表简介

本地消息表是 Seata 分布式事务解决方案的一部分,通过存储业务操作的消息实现分布式事务的异步通知。本地消息表是一种特殊的数据库表,用于存储业务操作的消息。

🎉 本地消息表原理

本地消息表通过以下步骤实现分布式事务的异步通知:

  1. 在本地事务执行过程中,将事务消息存储到本地消息表中。
  2. 当本地事务提交时,Seata 将消息存储到本地消息表中。
  3. 消息消费者从本地消息表中读取消息,并执行相应的业务操作。

🎉 本地消息表架构

本地消息表架构主要包括以下组件:

  • 本地消息表:存储本地事务的消息。
  • 消息消费者:从本地消息表中读取消息,并执行相应的业务操作。

🎉 本地消息表优缺点

技术原理应用场景优势与局限实际案例
数据库表存储需要保证数据一致性的分布式系统简单易用,性能较好分布式数据库、分布式缓存等

🎉 本地消息表配置与使用

在 Spring Boot 项目中,配置本地消息表需要添加以下依赖:

<dependency>
    <groupId>io.seata</groupId>
    <artifactId>seata-all</artifactId>
    <version>1.3.0</version>
</dependency>

然后在 application.properties 文件中配置 Seata 相关参数:

seata.server.address=127.0.0.1:8091
seata.transaction.mode=RM

在业务代码中,使用 @Transactional 注解来声明事务:

@Transactional
public void transfer(Long fromId, Long toId, Integer amount) {
    // 执行业务逻辑
}

优快云

博主分享

📥博主的人生感悟和目标

Java程序员廖志伟

📙经过多年在优快云创作上千篇文章的经验积累,我已经拥有了不错的写作技巧。同时,我还与清华大学出版社签下了四本书籍的合约,并将陆续出版。

面试备战资料

八股文备战
场景描述链接
时间充裕(25万字)Java知识点大全(高频面试题)Java知识点大全
时间紧急(15万字)Java高级开发高频面试题Java高级开发高频面试题

理论知识专题(图文并茂,字数过万)

技术栈链接
RocketMQRocketMQ详解
KafkaKafka详解
RabbitMQRabbitMQ详解
MongoDBMongoDB详解
ElasticSearchElasticSearch详解
ZookeeperZookeeper详解
RedisRedis详解
MySQLMySQL详解
JVMJVM详解

集群部署(图文并茂,字数过万)

技术栈部署架构链接
MySQL使用Docker-Compose部署MySQL一主二从半同步复制高可用MHA集群Docker-Compose部署教程
Redis三主三从集群(三种方式部署/18个节点的Redis Cluster模式)三种部署方式教程
RocketMQDLedger高可用集群(9节点)部署指南
Nacos+Nginx集群+负载均衡(9节点)Docker部署方案
Kubernetes容器编排安装最全安装教程

开源项目分享

项目名称链接地址
高并发红包雨项目https://gitee.com/java_wxid/red-packet-rain
微服务技术集成demo项目https://gitee.com/java_wxid/java_wxid

管理经验

【公司管理与研发流程优化】针对研发流程、需求管理、沟通协作、文档建设、绩效考核等问题的综合解决方案:https://download.youkuaiyun.com/download/java_wxid/91148718

希望各位读者朋友能够多多支持!

现在时代变了,信息爆炸,酒香也怕巷子深,博主真的需要大家的帮助才能在这片海洋中继续发光发热,所以,赶紧动动你的小手,点波关注❤️,点波赞👍,点波收藏⭐,甚至点波评论✍️,都是对博主最好的支持和鼓励!

🔔如果您需要转载或者搬运这篇文章的话,非常欢迎您私信我哦~

SpringCloud+Seata+MybatisPlus多数据源@GlobalTransactional异常数据未回滚事务失效的解决方案 SpringCloud整合Seata事务失效的解决方案 阅读详情

相关推荐

Frida实战:如何逆向分析某电商App的doCommandNative函数(附完整Hook脚本)

本文详细介绍了如何使用Frida逆向分析电商App中的doCommandNative函数,涵盖动态注册识别、SO加固对抗及高级Hook脚本编写等实战技巧。通过完整Hook脚本示例,帮助安全研究人员深入理解JNICLibrary的关键函数逆向分析方法,提升移动应用安全研究能力。

weixin_29327977的博客 615

Java微服务分布式事务框架seata的TCC模式

上一章节介绍微服务分布式项目中,使用的事务框架seata,本章节介绍分布式事务框架seata TCC模式,以及集成到Springboot、微服务框架里。

Java 技术专栏,从入门到精通,熟悉企业级开发 1万+

如何设计一个处理物联网设备数据流的后端系统。

设计一个处理物联网设备数据流的后端系统,需要综合考虑设备数据采集、传输、处理、存储等多个方面,保证系统能够处理海量数据,具备高可用性、扩展性和安全性。合理选择适当的技术架构和工具(如MQTT、Kafka、InfluxDB等),并确保系统能够灵活应对不断变化的业务需求和设备接入。

weixin_53227829的博客 838

Dubbo 分布式事务 Seata 入门

1. 概述 在《Seata 极简入门》文章中,我们对 Seata 进行了简单的了解,并完成了 Seata 的部署。而本文,我们将 Dubbo 服务接入 Seata 来实现分布式事务。 Seata是阿里开源的一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。 注意,考虑到 Nacos 作为注册中心在国内越来越流行,本文将采用 Nacos 作为 Dubbo 的注册中心。 友情提示:如果对 Nacos 不了解的胖友,可以参考《Nacos 极简入门》文章。 2. AT 模.

weixin_42073629的博客 716

在WPS/Office中免费使用AI,快速提升办公效率!​

《免费解锁WPS/Office AI办公神器教程》摘要: 本教程详解如何通过第三方插件OfficeAI免费实现WPS/Office智能办公,突破官方付费限制。从安全设置到安装配置,手把手教学,涵盖文档生成、PPT美化、Excel图表等核心功能。关键优势包括零成本、全场景支持及云端/本地双模式切换,并附常见问题解决方案。注意需使用WPS 2024+版本,安装时需临时关闭杀毒软件。教程强调工具来源合法性,建议商用购买正版授权。(149字)

杜哥无敌的博客 2303

Zemax实战:手把手教你设计一个40倍、NA0.65的显微物镜(附初始结构文件)

本文详细介绍了使用Zemax设计40倍、NA0.65显微物镜的完整流程,从初始结构搭建到优化验证,涵盖光学设计的关键技巧和实战经验。通过分阶段优化策略和公差分析,帮助工程师快速掌握高倍显微物镜的设计方法,提升光学系统性能。

weixin_42525369的博客 338

Spring项目整合 Seata分布式事务解决方案

将resources目录文件拷出的临时容器 拷出后,修改,然后有以下两种解决方案: Seata 注册中心和配置中心配置支持 file,nacos, consul, apollo, zk, etcd3 等,可以参考从容器拷贝下来的 官方yaml配置文档,下面是配置nacos的application.yml参考: 至此,Seata服务端(TC)已经配置并启动成功了。 查看Seata启动日志: 配置Seata客户端(TM和RM) 引入依赖() undo_log建表、配置参数(仅AT模

Carroll的博客 2072

告别重复劳动:用Python+pywinauto打造你的微信个人助理(自动回复/收款/定时发消息)

本文介绍如何利用Python和pywinauto库构建微信个人助手,实现自动回复、定时消息、智能收款等功能,告别重复劳动。通过详细的代码示例和配置指南,帮助开发者快速掌握微信自动化技术,提升工作效率。

weixin_42568801的博客 328

SSM 如何使用 Seata 框架实现分布式事务?

Seata 框架是一种分布式事务解决方案,它可以帮助我们解决分布式事务的一致性问题。Try 阶段:在该阶段中,系统会尝试执行分布式事务。如果所有参与者都执行成功,则分布式事务进入 Confirm 阶段。否则,分布式事务进入 Cancel 阶段。Confirm阶段:在该阶段中,系统会向所有的参与者发出 confirm 请求,通知它们提交分布式事务。如果所有参与者都提交成功,则分布式事务提交。否则,分布式事务回滚。

u013749113的博客 979

当传统CFD遇上AI:PINN如何帮我们省下90%的仿真计算时间?

本文探讨了物理信息神经网络(PINN)在计算流体力学(CFD)中的应用,如何通过无网格方法节省90%的仿真计算时间。PINN将物理定律编码到神经网络中,显著减少传统CFD中的网格生成和计算时间,同时保持高精度。文章还对比了PINN与传统方法的性能,并讨论了其独特优势和当前局限。

weixin_32678995的博客 319

【unity游戏开发入门到精通——UGUI】UI控件 —— Toggle开关切换控件

【unity游戏开发入门到精通——UGUI】UI控件 —— Toggle开关切换控件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1844

Springmvc+Druid+Mybatis+Seata+Nacos+Http动态切换多数据源,分布式事务的实现

本文示例主要实现两个springmvc服务之间通过Http调用接口,实现两个服务的分布式事务,关键点在于调用方在http请求头中添加seata的TX_XID请求头,被调用方发生异常时手动回滚全局事务,nacos\seata部署参考上一篇springcloud版本。.........

殷长庆的博客 1236

26、特洛伊木马:威胁与防范

本文详细介绍了多种常见的特洛伊木马,包括RegForm、ProMail和远程访问特洛伊木马(RATs),并分析了其工作原理与危害。重点讲解了著名RATs如Back Orifice、SubSeven和The Thing的技术特点,揭示了黑客编写特洛伊木马的常用语言与方法。同时,提供了有效的防范策略,如谨慎获取软件、使用回滚程序、杀毒软件、防火墙及反特洛伊木马程序,并通过流程图展示了防御机制。旨在帮助用户识别威胁并加强系统安全防护。

e3f4g5的博客 88

【深入理解SpringCloud微服务】Seata(AT模式)源码解析——全局事务的事务传播机制

本文解析了Seata AT模式中全局事务传播机制的实现原理。核心在于通过xid传递实现事务传播:调用方通过RestTemplate拦截器SeataRestTemplateInterceptor将xid添加到HTTP请求头;被调用方通过SpringMVC拦截器TransactionPropagationInterceptor从请求头获取xid并绑定到ThreadLocal。xid存储于RootContext(ThreadLocal实现),SQL执行时会检查当前线程是否绑定xid来决定是否加入全局事务。文章详细

weixin_43889578的博客 1196

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

SSM 如何使用 Saga 机制实现分布式事务?

Saga 是一种解决分布式事务问题的机制,它通过将一个大事务分解为多个小事务并使它们顺序执行来保证分布式事务的一致性。每个小事务都是一个本地事务,Saga 将这些本地事务组合成一个全局事务。如果某个本地事务失败,Saga 会通过执行补偿操作来回滚全局事务。Saga 机制的核心思路是将分布式事务分解成多个本地事务,这些本地事务可以跨越不同的服务,但是在一个事务期间内,它们必须遵循一致性规则。

徐师兄的博客 844

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

spring cloud seata 环境搭建(docker)

springcloudseata环境搭建(docker)

weixin_43931625的博客 2108

SpringCloud-Alibaba之Seata入门以及踩坑(二)

seata的分布式事务使用起来是非常简单的,但是seata的使用会对现有项目中产生一些意外的错误,但是都可以得到相应的解决;需要小伙伴去实践。!!

2401_83916241的博客 1519

springcloudalibaba 之seata

找过很多博客文章,也看过seata官网,我不知道我的这个能不能帮到你们,只是分享下我的踩坑经历 我目前使用这个是可以使用的,并上传到了github。地址:https://github.com/94LuXing/springcloudalibaba.git master分支 1、seata github地址seata/seata: Seata is an easy-to-use, high-performance, open source distributed transaction solu...

进行中 410

Seata 配置中心

配置中心配置文件 配置中心读取配置的流程 选择配置文件, 例如registry.conf 根据配置文件的文件类型选择基础配置 通过基础配置进行驱动, 加载核心配置 seata 在加载核心配置的时候, 会放到本地的 ConcurrentHashMap 缓存。 取值时可以分为三个级别: 优先从缓存中获取 从 System.getProperty 获取 从配置中心获取 如果取到值会存放到缓存中 选择配置文件 配置中心配置文件默认是: registry.conf , 可以通过系统属性(System.getP

祈祷之手 1808

源码 解析_springmvc源码架构解析之@ResponseStatus

说在前面前期回顾sharding-jdbc源码解析更新完毕spring源码解析 更新完毕spring-mvc源码解析 更新完毕spring-tx源码解析 更新完毕spring-boot源码解析 更新完毕rocketmq源码解析 更新完毕dubbbo源码解析 更新完毕netty源码解析 更新完毕spring源码架构更新完毕springmvc源码架构更新中springboot源码架构计划中...

weixin_39989190的博客 152

项目中springmvc的流程个人体会

项目中springmvc的流程个人体会

liWei_Csdn0000的博客 118

整合SSM框架必备基础—SpringMVC(上)

01 MVC概述 在Web系统开发中一般按照视图(View)、模型(Model)、控制(Controller)三层设计模式进行构建,视图层负责模型数据的渲染,将数据用一定的形式展现给用户;模型层负责监听实体的变化并对实体进行解析和封装;控制层负责提供前后端交互的请求逻辑处理入口,处理用户请求,并建立适当的模型传递给视图进行渲染。层级关系一般如下图所示: (想自学习编程的小伙伴请搜索圈T社区,更多行...

wanghao112956的博客 330

微服务笔记 2025/2/15

微服务

yesyesyes_yes的博客 553

SSM框架核心原理与高频面试题深度解析

控制反转(IoC)和面向切面编程(AOP)是Spring框架的两大核心设计理念。IoC容器通过Bean的生命周期管理实现组件解耦,而AOP则基于动态代理技术实现横切关注点的模块化。MyBatis作为优秀的ORM框架,其SQL映射和缓存机制能显著提升数据访问效率。在Java企业级开发中,SSM(Spring+SpringMVC+MyBatis)组合因其轻量级和灵活性成为经典选择。本文深入剖析Spring事务传播机制、MyBatis动态SQL实现等关键技术点,特别针对循环依赖、批量插入优化等典型面试场景提供解决

weixin_34356555的博客 511

基于SpringCloudAlibaba的分布式商城系统-前言

6、商品详情页实现本章主要是通过Thymeleaf来实现商品详情页的渲染、通过本章加深对Thymeleaf的使用、同时通过Nginx来实现详情页的发布和动静分离的加载、最后通过Canal实现详情页和索引实时更新7、订单、购物车实现本章主要就是实现电商项目中的两个核心功能购物车和下订单、购物车中的数据会存入MongoDB中、同时会对下单流程进行校验、也会防止超卖的问题。8、分布式事务解决方案。

2401_84024576的博客 2423

Java最新十一,腾讯T3大牛亲自讲解

这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的教程了。你的支持,我的动力;祝各位前程似锦,offer不断!!!本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录需要这份系统化的资料的朋友,可以点击这里获取。

2401_84688608的博客 762
上一篇: 领域驱动设计(DDD)核心概念解析
下一篇: Zookeeper Session详解与实战
Java廖志伟
博客等级 码龄2年 3609粉丝 1517原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值