<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>分布式事务 on Apache Dubbo</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/trasaction/</link><description>Recent content in 分布式事务 on Apache Dubbo</description><generator>Hugo</generator><language>zh-cn</language><atom:link href="https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/trasaction/index.xml" rel="self" type="application/rss+xml"/><item><title>使用 Seata 支持分布式事务</title><link>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/trasaction/distributed-transaction/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-3199--dubbo.netlify.app/zh-cn/overview/mannual/java-sdk/tasks/trasaction/distributed-transaction/</guid><description>&lt;p>本示例演示如何使用 Apache Seata 实现 Dubbo 分布式事务功能，保证数据一致性。&lt;/p>
&lt;p>Apache Seata 是一款开源的分布式事务解决方案，致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
在Dubbo中集成Seata实现分布式事务非常方便，只需简单几步即可完成，本文将通过一个示例带你快速体验，示例总体架构图如下：&lt;/p>
&lt;p>&lt;img alt="seata-flow" src="https://deploy-preview-3199--dubbo.netlify.app/imgs/docs3-v2/java-sdk/seata/flow.png">&lt;/p>
&lt;p>开始前，请先完成以下内容:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>下载示例源码&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>git clone --depth&lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">1&lt;/span> https://github.com/apache/dubbo-samples.git
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>进入示例源码目录：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#b58900">cd&lt;/span> dubbo-samples/2-advanced/dubbo-samples-seata
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/li>
&lt;li>
&lt;p>下载最新版的&lt;a href="https://seata.apache.org/zh-cn/unversioned/download/seata-server">seata-server二进制包&lt;/a>至本地。&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h2 id="步骤-1建立数据库并初始化相关测试数据">步骤 1：建立数据库并初始化相关测试数据&lt;/h2>
&lt;ul>
&lt;li>本文将使用MySQL 5.7 (更多支持的数据库可在文末查看附录)。
进入dubbo-samples-seata的script目录，找到dubbo_biz.sql和undo_log.sql两个数据库脚本文件，内容如下:&lt;/li>
&lt;/ul>
&lt;p>undo_log.sql是Seata AT 模式需要 &lt;code>UNDO_LOG&lt;/code> 表&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#93a1a1;background-color:#002b36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-sql" data-lang="sql">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">-- for AT mode you must to init this sql for you business database. the seata server not need it.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#586e75">&lt;/span>&lt;span style="color:#719e07">CREATE&lt;/span> &lt;span style="color:#719e07">TABLE&lt;/span> &lt;span style="color:#719e07">IF&lt;/span> &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">EXISTS&lt;/span> &lt;span style="color:#719e07">`&lt;/span>undo_log&lt;span style="color:#719e07">`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>(
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>branch_id&lt;span style="color:#719e07">`&lt;/span> &lt;span style="color:#b58900">BIGINT&lt;/span> &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;branch transaction id&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>xid&lt;span style="color:#719e07">`&lt;/span> &lt;span style="color:#b58900">VARCHAR&lt;/span>(&lt;span style="color:#2aa198">128&lt;/span>) &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;global transaction id&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>context&lt;span style="color:#719e07">`&lt;/span> &lt;span style="color:#b58900">VARCHAR&lt;/span>(&lt;span style="color:#2aa198">128&lt;/span>) &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;undo_log context,such as serialization&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>rollback_info&lt;span style="color:#719e07">`&lt;/span> LONGBLOB &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;rollback info&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>log_status&lt;span style="color:#719e07">`&lt;/span> &lt;span style="color:#b58900">INT&lt;/span>(&lt;span style="color:#2aa198">11&lt;/span>) &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;0:normal status,1:defense status&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>log_created&lt;span style="color:#719e07">`&lt;/span> DATETIME(&lt;span style="color:#2aa198">6&lt;/span>) &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;create datetime&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">`&lt;/span>log_modified&lt;span style="color:#719e07">`&lt;/span> DATETIME(&lt;span style="color:#2aa198">6&lt;/span>) &lt;span style="color:#719e07">NOT&lt;/span> &lt;span style="color:#719e07">NULL&lt;/span> &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#2aa198">&amp;#39;modify datetime&amp;#39;&lt;/span>,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#719e07">UNIQUE&lt;/span> &lt;span style="color:#719e07">KEY&lt;/span> &lt;span style="color:#719e07">`&lt;/span>ux_undo_log&lt;span style="color:#719e07">`&lt;/span> (&lt;span style="color:#719e07">`&lt;/span>xid&lt;span style="color:#719e07">`&lt;/span>, &lt;span style="color:#719e07">`&lt;/span>branch_id&lt;span style="color:#719e07">`&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ) ENGINE &lt;span style="color:#719e07">=&lt;/span> InnoDB AUTO_INCREMENT &lt;span style="color:#719e07">=&lt;/span> &lt;span style="color:#2aa198">1&lt;/span> &lt;span style="color:#719e07">DEFAULT&lt;/span> CHARSET &lt;span style="color:#719e07">=&lt;/span> utf8mb4 &lt;span style="color:#719e07">COMMENT&lt;/span> &lt;span style="color:#719e07">=&lt;/span>&lt;span style="color:#2aa198">&amp;#39;AT transaction mode undo table&amp;#39;&lt;/span>;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#719e07">ALTER&lt;/span> &lt;span style="color:#719e07">TABLE&lt;/span> &lt;span style="color:#719e07">`&lt;/span>undo_log&lt;span style="color:#719e07">`&lt;/span> &lt;span style="color:#719e07">ADD&lt;/span> &lt;span style="color:#719e07">INDEX&lt;/span> &lt;span style="color:#719e07">`&lt;/span>ix_log_created&lt;span style="color:#719e07">`&lt;/span> (&lt;span style="color:#719e07">`&lt;/span>log_created&lt;span style="color:#719e07">`&lt;/span>);
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>dubbo_biz.sql是示例业务表以及初始化数据&lt;/p></description></item></channel></rss>