日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于 Seata 的 Spring Cloud 應(yīng)用樣例

更新時(shí)間:

使用 Seata 能夠解決 Spring Cloud 微服務(wù)應(yīng)用的分布式事務(wù)問題。本文通過一個(gè)樣例工程介紹如何將基于 Seata 實(shí)現(xiàn)分布式事務(wù)的 Spring Cloud 應(yīng)用運(yùn)行在 GTS 上。

背景信息

GTS SDK 2.9.0 版本開始提供對 Seata 的兼容支持。

樣例簡介

該樣例模擬了一個(gè)用戶訂購商品的業(yè)務(wù)系統(tǒng),包含 3 個(gè)微服務(wù):

  • Storage:庫存服務(wù),扣減指定商品的庫存數(shù)量。
  • Order:訂單服務(wù),根據(jù)采購請求生成訂單。
  • Account:賬戶服務(wù),從用戶賬戶中扣減金額。

訂購商品的業(yè)務(wù)流程如下圖所示:

樣例場景-Spring Cloud
  1. Business 開啟一個(gè) GTS 管理的全局事務(wù)。
  2. Business 調(diào)用 Storage 和 Order。
  3. Order 調(diào)用 Account。

GTS 將保障整個(gè)服務(wù)調(diào)用鏈路上的數(shù)據(jù)一致性。

步驟一:下載樣例工程

登錄阿里云管理控制臺,樣例工程詳情請參見基于Seata的Spring Cloud應(yīng)用樣例

步驟二:構(gòu)建樣例工程

  1. 創(chuàng)建一個(gè)用于運(yùn)行樣例的數(shù)據(jù)庫,執(zhí)行工程中的 init.sql 腳本,建立相關(guān)表。
  2. 構(gòu)建工程。

    1. 構(gòu)建工程依賴 Maven,準(zhǔn)備一個(gè)可用的 Maven 環(huán)境。

    2. 在樣例工程的根目錄下,執(zhí)行 mvn clean install 命令。

    SDK 包是由 common/lib 里的 download-maven-plugin 插件通過 wget 命令從 GTS 官網(wǎng)下載的。如果您的環(huán)境不能執(zhí)行 wget 命令,上面的 Maven 構(gòu)建會失敗。這種情況下,請您按以下方式操作。

    1. 手工下載最新的 SDK開發(fā)包,并放在 common/lib 目錄下。

    2. 在工程 pom.xml 文件的 modules 中將common 刪掉。

      <modules>
       <!--<module>common</module>-->
       <module>bussiness</module>
       <module>account</module>
       <module>storage</module>
       <module>order</module>
       <module>eureka</module>
      </modules>                            
    3. 重新執(zhí)行 mvn clean install 命令。

    運(yùn)行成功后common/lib目錄下會生成 GTS 的 SDK 包,包括:

    • 客戶端主包:~txc-client-${gts.sdk.version}.jar

    • Spring Cloud 原生支持包:txc-client-springcloud-${gts.sdk.version}.jar

    說明

    需要執(zhí)行以下命令,來觸發(fā)download-maven-pluginwget

    mvn clean install

步驟三:導(dǎo)入樣例工程到 IDE

為了方便運(yùn)行和理解,建議您把工程導(dǎo)入到 IDE 中。

步驟四:運(yùn)行樣例工程

  1. 分別運(yùn)行樣例工程中 5 個(gè) module 的 Main 方法,啟動服務(wù)。

    • Storage:StorageApplication

    • Order:OrderApplication

    • Account:AccountApplication

    • Business:BusinessApplication

  2. 服務(wù)啟動成功后,通過瀏覽器訪問 http://127.0.0.1:8084/purchase 來調(diào)用訂購業(yè)務(wù)。

    說明

    可選的調(diào)用參數(shù)請閱讀樣例中的 BusinessController.java 的代碼來了解。

關(guān)鍵配置和運(yùn)行機(jī)制解讀

application.properties 中,seata.txc 前綴的一系列配置是 GTS 關(guān)鍵配置,說明如下:

  • GTS 全局事務(wù)調(diào)用鏈路上的每個(gè)服務(wù)都要做這些配置,例如樣例中的Business、Storage、Order和Account。

  • seata.txc.txcAppName:為每個(gè)服務(wù)定義一個(gè)全局唯一的名字。

  • seata.txc.txServiceGroup:GTS 服務(wù)實(shí)例名。

    • 在本地運(yùn)行通過公網(wǎng)訪問 GTS 服務(wù)時(shí),請使用公共的實(shí)例 txc_test_public.1129****3855****.QD 并配合使用下面的 seata.txc.servcieEndPoint 配置。

    • 在正式環(huán)境 ECS 上運(yùn)行時(shí),請使用您訂購的 GTS 服務(wù)實(shí)例全名,并配合使用下面的 seata.txc.accessKeyseata.txc.secretKey 配置。

  • seata.txc.servcieEndPoint:公網(wǎng)訪問 GTS 服務(wù)的接入地址,固定值 https://test-cs-gts.aliyuncs.com 。這個(gè)配置僅在本地公網(wǎng)訪問時(shí)需要。

  • seata.txc.accessKeyseata.txc.secretKey:在阿里云環(huán)境上正式運(yùn)行,這里配置您GTS服務(wù)實(shí)例使用者的AK和SK用于鑒權(quán)。默認(rèn)是使用訂購GTS 服務(wù)實(shí)例的用戶(即實(shí)例全名中間部分賬號ID對應(yīng)用戶)的AK和SK。也可以使用RAM授權(quán)的用戶AK和SK,具體方法請參見為 RAM 用戶授權(quán)事務(wù)分組