分散式事務 TCC-Transaction 原始碼分析 —— 除錯環境搭建

芋道原始碼_以德服人_不服就幹發表於2019-02-21

摘要: 原創出處 http://www.iocoder.cn/TCC-Transaction/build-debugging-environment/ 「芋道原始碼」歡迎轉載,保留摘要,謝謝!

本文主要基於 TCC-Transaction 1.2.3.3 正式版


分散式事務 TCC-Transaction 原始碼分析 —— 除錯環境搭建

???關注**微信公眾號:【芋道原始碼】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有原始碼分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文註釋原始碼 GitHub 地址
  3. 您對於原始碼的疑問每條留言將得到認真回覆。甚至不知道如何讀原始碼也可以請教噢
  4. 新的原始碼解析文章實時收到通知。每週更新一篇左右
  5. 認真的原始碼交流微信群。

1. 依賴工具

  • Maven
  • Git
  • JDK
  • MySQL
  • IntelliJ IDEA

2. 原始碼拉取

從官方倉庫 github.com/changmingxi… Fork 出屬於自己的倉庫。為什麼要 Fork ?既然開始閱讀、除錯原始碼,我們可能會寫一些註釋,有了自己的倉庫,可以進行自由的提交。?

使用 IntelliJ IDEAFork 出來的倉庫拉取程式碼。拉取完成後,Maven 會下載依賴包,可能會花費一些時間,耐心等待下。

本文基於 master-1.2.x 分支。

3. 初始化資料庫

官方提供了兩個 Demo 專案例子:

  • tcc-transaction-dubbo-sample
  • tcc-transaction-http-sample

考慮到不是所有所有同學都使用過 Dubbo 服務化框架,我們以 tcc-transaction-http-sample 項為例子。

開啟 tcc-transaction-http-sample/src/main/dbscripts 目錄,有四個 SQL 指令碼檔案:

  • create_db_cap.sql :tcc-transaction-http-capital 專案資料庫初始化指令碼。
  • create_db_ord.sql :tcc-transaction-http-order 專案資料庫初始化指令碼。
  • create_db_red.sql :tcc-transaction-http-redpacket 專案資料庫初始化指令碼。
  • create_db_tcc.sql :tcc-transaction 底層資料庫初始化指令碼。

筆者使用 Navicat 進行資料庫指令碼執行。使用方式為:Navicat 選單 Connection -> Execute SQL File,選擇指令碼檔案,逐個執行。

目前資料庫指令碼未使用 USE 語句選擇對應資料庫,每個指令碼都需要進行新增。以 create_db_cap.sql 舉例子:

CREATE DATABASE `tcc_cap` /*!40100 DEFAULT CHARACTER SET utf8 */;
-- 新增 USE
USE `tcc_cap`;
複製程式碼

4. 啟動 capital 專案

  1. 修改專案下 jdbc.properties 檔案,填寫成你的資料庫地址

  2. 使用 IDEA 配置 Tomcat 進行啟動。這裡要注意下:

    // appcontext-service-provider.xml
    <bean id="httpServer"
         class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">
       <property name="contexts">
           <util:map>
               <entry key="/remoting/CapitalTradeOrderService" value-ref="capitalTradeOrderServiceExporter"/>
               <entry key="/remoting/CapitalAccountService" value-ref="capitalAccountServiceExporter"/>
           </util:map>
       </property>
       <property name="port" value="8081"/>
    </bean>
    複製程式碼
    • 預設開啟 8081 埠提供介面服務。所以配置 Tomcat 的埠不能再使用 8081,避免衝突。例如,筆者使用 18081。
  3. 訪問 http://127.0.0.1:18081/,看到 “hello tcc transacton http sample capital”,代表專案啟動完成。18081 為你填寫的 Tomcat 埠

5. 啟動 redpacket 專案

同 tcc-transaction-http-capital 專案。

6. 啟動 order 專案

  1. 修改專案下 jdbc.properties 檔案,填寫成你的資料庫地址
  2. 使用 IDEA 配置 Tomcat 進行啟動。
  3. 訪問 http://127.0.0.1:8080/,看到 “sample 說明…”,代表專案啟動完成。8080 為你填寫的 Tomcat 埠
  4. 點選 [商品列表連結] -> [購買] -> [支付],如果看到 “支付成功” 或者 “支付失敗”,恭喜你?,你已經成功搭建完你的除錯環境。愉快的開始玩耍把。

666. 彩蛋

除錯環境搭建是閱讀原始碼的第一步,如果你碰到無法搭建成功的情況,請給筆者公眾號( 芋道原始碼 )留言。筆者會給你 1:1 的高階( 搞基 )支援。

另外這是一個系列文,本系列更新 TCC-Transaction ,下一個系列更新 ByteTCC 。嗨皮不?!

分散式事務 TCC-Transaction 原始碼分析 —— 除錯環境搭建

道友,趕緊上車,分享一波朋友圈!

相關文章