<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Seata on PlumePHP</title><link>https://plumephp.com/tags/seata/</link><description>Recent content in Seata on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 01 Sep 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/seata/index.xml" rel="self" type="application/rss+xml"/><item><title>Spring Cloud 微服务全栈实践</title><link>https://plumephp.com/spring-cloud-microservices/</link><pubDate>Tue, 01 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/spring-cloud-microservices/</guid><description>&lt;h2 id="1-微服务架构与-spring-cloud-alibaba"&gt;1. 微服务架构与 Spring Cloud Alibaba&lt;/h2&gt;
&lt;h3 id="11-微服务核心特征"&gt;1.1 微服务核心特征&lt;/h3&gt;
&lt;p&gt;微服务将单体拆分为围绕业务能力构建的小型自治服务，独立部署扩展：DDD 限界上下文拆分、独立 CI/CD、容错设计（熔断/限流/隔离）、基础设施自动化。&lt;/p&gt;</description></item><item><title>分布式事务：Seata、TCC 与 Saga 模式详解</title><link>https://plumephp.com/java-distributed-transaction/</link><pubDate>Fri, 14 Aug 2026 10:25:00 +0800</pubDate><guid>https://plumephp.com/java-distributed-transaction/</guid><description>&lt;p&gt;在微服务架构中，一次业务操作往往跨越多个服务和数据库，传统单机事务的 ACID 保证无法直接适用。分布式事务成为企业级系统必须面对的复杂课题。&lt;/p&gt;
&lt;h2 id="一分布式事务的核心挑战"&gt;一、分布式事务的核心挑战&lt;/h2&gt;
&lt;h3 id="11-cap-与-base-理论"&gt;1.1 CAP 与 BASE 理论&lt;/h3&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;理论&lt;/th&gt;
					&lt;th&gt;核心观点&lt;/th&gt;
					&lt;th&gt;对事务的影响&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CAP&lt;/td&gt;
					&lt;td&gt;一致性、可用性、分区容错性不可兼得&lt;/td&gt;
					&lt;td&gt;通常选择 AP，牺牲强一致性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;BASE&lt;/td&gt;
					&lt;td&gt;基本可用、软状态、最终一致&lt;/td&gt;
					&lt;td&gt;接受短暂不一致，追求最终一致&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="12-分布式事务-vs-本地事务"&gt;1.2 分布式事务 vs 本地事务&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 本地事务：简单直接&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@Transactional&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;localOrder&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;orderDao&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// DB1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inventoryDao&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;deduct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sku&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// 同一DB&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// 分布式事务：跨服务、跨数据库&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;distributedOrder&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;orderService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;createOrder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// svc1 + DB1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;inventoryService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;deduct&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sku&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;qty&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// svc2 + DB2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;paymentService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="na"&gt;charge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;amt&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// svc3 + DB3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="二seata开源分布式事务解决方案"&gt;二、Seata：开源分布式事务解决方案&lt;/h2&gt;
&lt;h3 id="21-seata-架构组件"&gt;2.1 Seata 架构组件&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ TM (事务管理器) │----│ RM (资源管理器) │----│ TC (协调中心) │
│ @GlobalTransactional │ │ 各服务的 DataSourceProxy │ │ 维护全局事务状态│
└──────────────┘ └──────────────┘ └──────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="22-at-模式automatic-transaction"&gt;2.2 AT 模式（Automatic Transaction）&lt;/h3&gt;
&lt;p&gt;AT 模式基于 SQL 解析和反向补偿，对业务零侵入。&lt;/p&gt;</description></item><item><title>03. 分布式事务</title><link>https://plumephp.com/distributed-transactions/</link><pubDate>Thu, 13 Aug 2026 14:03:00 +0800</pubDate><guid>https://plumephp.com/distributed-transactions/</guid><description>&lt;p&gt;单体架构使用数据库本地事务即可保证 ACID，但微服务架构下业务操作跨越多个服务和数据库，分布式事务成为必须解决的问题。本文系统讲解从强一致性到最终一致性的各种分布式事务方案。&lt;/p&gt;</description></item><item><title>分布式事务（2PC/3PC/TCC/Saga）</title><link>https://plumephp.com/database-distributed-transaction/</link><pubDate>Thu, 13 Aug 2026 11:05:00 +0800</pubDate><guid>https://plumephp.com/database-distributed-transaction/</guid><description>&lt;p&gt;单体数据库的事务通过 ACID 保证，但当数据分布在多个数据库或服务中时，如何保证跨节点的事务一致性？分布式事务是微服务架构和分库分表场景下的核心挑战。本文全面解析主流分布式事务协议和工程实践。&lt;/p&gt;</description></item></channel></rss>