
分布式理论&实践
文章平均质量分 91
分布式理论
分布式实践
csdn_tom_168
富如可求,虽执鞭之士,吾亦为之。如不可求,从吾所好。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
分布式算法 - Snowflake算法
Snowflake算法通过巧妙地将时间戳、工作机器ID和序列号组合,在保证ID全局唯一的同时实现了趋势递增,非常适合分布式系统的高并发ID生成需求,是分布式系统设计中的重要基础组件之一。Snowflake算法是Twitter开源的分布式ID生成算法,用于在分布式系统中生成全局唯一且趋势递增的ID,满足高并发、高性能的需求。是否大于上次时间戳?原创 2025-06-08 02:24:43 · 898 阅读 · 0 评论 -
分布式算法 - 一致性Hash算法
一致性Hash算法通过将数据和节点映射到环形空间,巧妙地解决了分布式系统中节点变动时的数据迁移问题,在保证数据一致性的同时大幅减少了系统开销,是分布式系统设计中的重要基础算法之一。一致性Hash算法是为了解决分布式缓存系统中节点增减时数据迁移量过大而提出的算法,最早由MIT的Karger等人于1997年提出。计算数据Key的Hash值。原创 2025-06-08 02:21:22 · 778 阅读 · 0 评论 -
分布式算法 - ZAB算法
采用主从架构简化设计结合ZXID实现高效的Leader选举和数据同步通过原子广播协议保证操作的原子性和顺序性在工程实现上注重性能和可靠性平衡ZAB在ZooKeeper中得到了成功应用,证明了其在分布式协调场景下的有效性,但相比Raft等算法,其学习和实现复杂度较高。原创 2025-06-08 02:18:41 · 701 阅读 · 0 评论 -
分布式算法 - Paxos算法
设计哲学Paxos:理论优先,通用性强Raft:工程优先,易理解实现方式Paxos:需要自行实现日志复制、选举等机制Raft:内置完整解决方案运维体验Paxos:故障排查困难Raft:状态机清晰,易于监控适用场景Paxos:需要高度定制化的系统Raft:需要快速落地的生产系统。原创 2025-06-08 02:10:13 · 694 阅读 · 0 评论 -
分布式算法 - Raft算法
易于理解:将复杂的一致性问题分解为几个清晰的子问题强领导:通过领导者集中管理日志复制安全性保证:通过任期号和日志一致性检查保证安全可用性:通过领导者选举保证系统可用性性能:日志复制是并行的,可以高效处理大量请求Raft算法通过这种设计,在保证强一致性的同时,提供了良好的可理解性和实现性,广泛应用于分布式系统中。原创 2025-06-08 01:41:54 · 551 阅读 · 0 评论 -
seata的核心表-与全局事务、分支事务、锁信息、回滚日志、TCC 防护日志以及一些扩展配置信息相关
Seata分布式事务框架的核心数据库表结构包括:1)global_table记录全局事务基本信息,如事务ID、状态和超时时间;2)branch_table存储分支事务详情,包括资源标识和操作状态;3)lock_table维护全局锁信息,防止资源并发冲突。这些表构成Seata的存储层,支持分布式事务的跟踪、管理和一致性保障,确保在异常情况下能正确进行事务补偿或回滚。表结构设计包含事务关联字段、状态标识、资源信息和扩展数据等关键字段。原创 2025-06-08 00:21:37 · 995 阅读 · 0 评论 -
Seata是如何处理空补偿和悬挂问题的?
空回滚:通过 tcc_fence_log 表校验 Try 状态,未执行 Try 的 Cancel 自动跳过并标记 suspended。事务状态表 创建 tcc_fence_log 表,字段包括 xid、branch_id、status 持久化事务状态,支持前置校验。当分支事务的 Try 阶段未执行(如网络超时或服务宕机),但全局事务触发回滚调用 Cancel 方法,导致无效回滚操作。Cancel 先于 Try 执行(如 Try 请求延迟到达),导致 Try 操作误执行,预留资源无法释放。原创 2025-06-08 00:20:55 · 796 阅读 · 0 评论 -
分布式事务的空补偿与悬挂问题详解及解决方案
分布式事务中的空补偿与悬挂问题是常见的数据一致性问题。空补偿指补偿操作执行时原业务未实际执行,而悬挂则是补偿操作先于原业务执行,均会导致数据不一致。解决方案需遵循幂等性设计、状态机控制和消息顺序保证原则,包括业务状态校验、分布式锁防护及状态机框架应用。同时需建立监控告警体系,对空补偿次数和异常状态跳转等指标进行实时监测。最佳实践建议在设计阶段明确状态流转图,开发阶段实现完善的日志和测试,运维阶段定期检查优化。通过系统级防护和业务校验,可以有效解决这些问题,保障分布式系统数据一致性。原创 2025-06-08 00:16:15 · 832 阅读 · 0 评论 -
Seata TCC模式详解(底层原理与实现 + Java代码示例)
Seata TCC模式详解:通过Try-Confirm-Cancel三阶段实现分布式事务。Try阶段预留资源并检查业务规则(如库存检查),Confirm阶段确认业务操作(订单支付),Cancel阶段执行补偿(恢复库存)。实现要点包括幂等性设计、业务状态管理和异常处理。Java示例展示了订单服务接口及实现,通过@GlobalTransactional注解开启全局事务。TCC模式适合复杂业务场景,需遵循Try轻量化、状态机管理和异常捕获等最佳实践。虽然实现复杂,但提供了事务控制的灵活性。原创 2025-06-07 00:07:41 · 680 阅读 · 0 评论 -
Seata XA模式详解(底层原理与实现 + Java代码示例)
Seata XA模式采用两阶段提交(2PC)协议实现分布式事务,通过事务管理器(TM)和资源管理器(RM)协调事务处理。相比TCC和Saga模式,XA提供强一致性但性能较低。本文详细解析了XA模式的底层原理,包括两阶段提交流程和与数据库XA协议的交互,并提供了完整的Java实现示例:1)项目依赖配置;2)数据库表设计;3)订单和库存服务实现;4)XA模式配置;5)全局事务控制器。代码示例展示了如何在Spring Boot项目中集成Seata XA模式,实现跨服务的分布式事务管理。原创 2025-06-07 00:07:17 · 813 阅读 · 0 评论 -
Seata Saga模式详解(底层原理与实现 + Java代码示例(Choreography(编排式))、Orchestration(编制式)))
Seata Saga模式是一种分布式事务解决方案,将长事务拆分为多个本地事务,每个都配有补偿操作。它分为编排式和编制式两种实现方式,包含执行、补偿和恢复三个阶段。核心在于补偿操作设计、事务状态管理和异常处理,适合跨服务业务流程但对性能要求不高的场景。Java示例展示了编排式Saga的实现,包含事件定义、服务接口和实现类,强调每个业务操作需提供幂等性补偿。该模式虽实现复杂,但为分布式事务提供了灵活性,是处理复杂业务逻辑的重要模式。原创 2025-06-07 00:06:49 · 961 阅读 · 0 评论 -
Seata AT模式详解(底层原理、底层流程图、Java代码示例等)
Seata AT模式是一种基于自动补偿机制的分布式事务解决方案,采用两层架构设计(TM/RM和TC)。其核心原理是通过SQL拦截自动记录undo_log,实现事务的自动回滚补偿。运行流程分为准备阶段(记录操作快照)和提交/回滚阶段(基于undo_log执行自动补偿)。AT模式具有零代码侵入、自动回滚、高性能等优势,适用于对一致性要求高的场景。使用时需注意数据库配置和异常处理,合理设计事务边界以优化性能。原创 2025-06-07 00:06:16 · 952 阅读 · 0 评论 -
Seata分布式事务方案详解
Seata是阿里巴巴开源的分布式事务解决方案,支持AT、TCC、Saga和XA四种模式。AT模式基于两阶段提交,自动化程度高;TCC模式通过Try-Confirm-Cancel三阶段处理复杂业务;Saga模式适合长事务场景;XA模式提供强一致性。Seata包含TC(协调器)、TM(管理器)和RM(资源管理器)三大核心组件,能有效解决微服务架构下的分布式事务问题。开发者可根据业务场景选择不同模式,其中AT模式因自动化程度高成为首选,而TCC和Saga则分别适用于复杂业务和长流程场景。原创 2025-06-07 00:05:45 · 770 阅读 · 0 评论 -
分布式事务-2PC、3PC、TCC全方面对比
摘要 本文对比了三种分布式事务解决方案:2PC(两阶段提交)、3PC(三阶段提交)和TCC(Try-Confirm-Cancel)。2PC通过准备和提交两阶段实现强一致性,但存在阻塞和单点故障问题;3PC增加预提交阶段以减少阻塞,但仍有数据不一致风险;TCC通过预留资源方式实现最终一致性,适合复杂业务但实现成本高。流程图和表格直观展示了三者的阶段划分、一致性级别和适用场景差异。Java代码示例分别实现了2PC和3PC的协调逻辑,体现不同方案的编程模式。总体而言,2PC简单但不可靠,3PC改进可用性,TCC灵原创 2025-06-06 10:38:36 · 664 阅读 · 0 评论 -
混合事务架构设计(Saga + TCC)(一)、(二)、(三)、(四)
本文提出了一套混合事务架构设计方案,结合Saga和TCC两种模式的优点,适用于复杂的分布式业务场景。方案采用业务分层原则:核心业务(如资金、库存)使用TCC保证强一致性,非核心业务(如订单、物流)采用Saga提高吞吐量。设计了统一的事务协调器来编排两种事务模式,并详细说明了各组件实现方案,包括TCC服务的三阶段操作和Saga的补偿机制。关键创新点在于事务边界划分、补偿机制协调和统一状态管理。该架构既保证了核心业务的可靠性,又提升了系统整体性能,适用于电商、供应链和金融等典型场景。原创 2025-06-06 00:24:37 · 807 阅读 · 0 评论 -
Saga模式与TCC模式的选择指南
Saga模式与TCC模式的选择应基于业务需求特性:Saga适用于最终一致性场景,实现简单且异步补偿不影响主流程性能,适合订单、库存等可短暂不一致的业务;TCC通过预留资源保证强一致性,适合资金交易等高风险操作,但实现复杂度高。两者补偿机制差异显著:Saga直接逆向回滚操作,TCC需处理预留资源释放。补偿失败时,Saga允许部分失败和业务降级,TCC则需严格人工干预。实际应用中可混合使用,核心业务用TCC保障,非核心流程用Saga提升效率。原创 2025-06-06 00:20:58 · 613 阅读 · 0 评论 -
分布式理论 - BASE理论
BASE理论与分布式事务设计摘要 BASE理论是分布式系统设计的核心原则,包含三要素:基本可用(系统故障时保证核心功能)、软状态(允许数据短暂不一致)和最终一致性(确保数据最终同步)。该理论是对CAP定理中AP系统的补充,通过牺牲强一致性换取高可用性,适用于电商大促、社交网络等场景。在微服务架构中,可通过事件驱动、Saga模式等实现跨服务最终一致性事务,典型案例如DynamoDB、Cassandra等系统。BASE理论的优势在于高可用和可扩展性,但也带来数据短暂不一致等挑战,需结合业务场景权衡设计。原创 2025-06-06 00:11:06 · 782 阅读 · 0 评论 -
分布式理论 - CAP
分布式系统CAP定理与最终一致性解析 CAP定理指出分布式系统无法同时满足一致性、可用性和分区容错性。实际应用中,系统通常在CP(强一致)和AP(高可用)之间选择。CP系统如ZooKeeper牺牲可用性保证数据一致,而AP系统如Cassandra通过异步复制、Gossip协议等手段实现最终一致性。后者允许短暂不一致,换取高可用性。现代分布式系统常采用混合策略(如Saga模式)灵活平衡CAP特性,根据业务需求选择强一致或最终一致方案。最终一致性适用于社交网络、电商等容忍延迟的场景,而金融系统则需强一致性保障。原创 2025-06-06 00:10:09 · 887 阅读 · 0 评论