事务
文章平均质量分 92
Solomon_肖哥弹架构
Solomon(肖爱良) - 前百度环境音乐CTO&架构师、微服务专家 - 中国机械出版社签约作家,《深入理解Dubbo工业级架构设计》图书的作者 - 分享高并发、高可用、高性能的分布式(微服务、存储、事务、限流)架构设计原理
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
手写 SAGA状态管理+事务补偿+分布式订单履约系统落地(新手篇)
本文通过纯Java代码实现一个完整的电商订单履约系统,让读者初步对SAGA有理解,逐步将同步阻塞式流程改造为异步事件驱动的分布式架构。核心设计包括:Saga事务模式:通过事件队列拆解长事务,实现扣库存→支付→发货的最终一致性。内嵌状态机:在订单类中硬编码状态流转规则,确保业务流程合法性。异步持久化:使用文件存储订单状态,支持系统崩溃后恢复。无框架设计:仅依赖Java基础API(如BlockingQueue),避免Spring等框架的隐含复杂性。原创 2025-07-06 19:45:34 · 993 阅读 · 0 评论 -
分布式事务的救星:Saga模式与状态机架构实战指南+长事务分解(高级篇)
探讨分布式系统中长事务(Long-running Transaction)的处理方法,重点分析了Saga模式的核心思想、技术实现及其在电商订单、跨境汇款、保险理赔等典型场景中的应用。当传统事务遇上分布式系统,XA协议的长锁问题让系统寸步难行。本文将深入Saga模式设计:揭秘如何用"正向操作+补偿事务"破解跨服务长事务困局通过电商订单、跨境汇款等真实案例,展示无锁设计的性能飞跃(从100TPS到10000TPS)剖析状态机如何成为业务流程的"导航仪",与Saga形成完美组合拳直面补偿逻辑、中间状态等原创 2025-07-06 17:58:41 · 2583 阅读 · 0 评论 -
6 个Spring tx 事务注解:4种隔离&7种事务传播业务案例
Spring框架的事务管理模块,通过一系列注解提供了一种强大而灵活的方式来处理企业级Java应用程序中的事务。`@Transactional`注解是这一模块的核心,它支持多种事务属性,如传播行为、隔离级别和超时设置,允许开发者以声明式的方式管理事务的边界和特性。此外,`@Propagation`、`@Isolation`和`@EnableTransactionManagement`等注解进一步丰富了Spring的事务管理能力,使得开发者可以根据不同的业务场景定制事务策略。这些注解的使用不仅简化了事务代码的编原创 2024-11-03 23:53:16 · 616 阅读 · 0 评论 -
Java手写Redis事务管理:带你掌握缓存事务的内部秘密
Redis事务提供了一种将多个命令打包执行的能力,确保这些命令要么全部成功执行,要么在出现错误时全部不做。这种机制对于需要保证操作原子性的场景非常有用,如金融交易、库存扣减等。Redis事务的设计背景是为了在内存数据库中实现类似于传统关系型数据库的事务特性,同时保持Redis的高性能和简单性。然而,与关系型数据库不同的是,Redis事务不支持回滚操作,如果在事务中的某个命令失败,整个事务将被放弃,但不会撤销已经执行的命令。这种设计简化了系统的复杂性,并利用Redis的单线程特性来避免锁的竞争,从而实现快速的原创 2024-07-29 15:38:01 · 1058 阅读 · 0 评论 -
架构师手写代码:分享数据库原子性与一致性实现方案(不再背概念)
数据库事务的原子性和一致性是数据库管理系统(DBMS)中确保数据完整性和可靠性的两个关键属性。下面是这两个属性的基本概念和实现逻辑:架构师手写代码:分享数据库原子性与一致性实现方案(不再背概念)原创 2024-07-25 14:20:32 · 2274 阅读 · 0 评论 -
数据库我是这样写出来的,Java版本1,持续更新
案例非常简化,不支持完整的SQL语法,也没有实现数据持久化、事务、并发控制、索引等数据库系统的关键特性。此外,它仅支持字符串类型的数据和简单的条件查询。此案例为了让大家有一个初步了解。后续会一步一步复杂化与标准化。原创 2024-07-02 13:29:28 · 518 阅读 · 0 评论 -
生产环境数据不一致,因为你没读本文实际案例。
跟大家“弹弹” 事务,隔离,实现原理功能与业务案例关注本人的公众号获取更多精彩内容事务是数据库操作的一个单元,可以包含一个或多个数据库操作语句(如INSERTUPDATEDELETE等)。原创 2024-07-01 17:44:26 · 923 阅读 · 0 评论 -
你不了解的 Mysql语法与使用案例,包含优化,分区,非结构化,事务,锁,必须收藏
创建数据库/* 如果不存在,则创建一个名为my_ecommerce的数据库 */选择数据库/* 选择my_ecommerce作为当前操作的数据库 */创建表/* 创建一个products表,包含产品ID、名称、价格、分类ID和创建时间 */修改表结构/* 在products表中添加一个名为in_stock的列,用于存储库存数量 */删除表/* 如果存在,则删除products表 */创建临时表/* 创建一个临时表,包含价格超过200的产品 */原创 2024-07-01 15:31:28 · 683 阅读 · 0 评论
分享