本樣例介紹如何把 MQ 事務消息的發送納入 GTS 管理的全局事務。
前提條件
在使用 sample-txc-mq 樣例前,請先完成以下工作:
樣例邏輯說明
A 賬戶向 B 賬戶轉賬 10 次,前 5 次成功,后 5 次失敗。在轉賬成功后,通過 MQ 增加了一個通知,告知轉賬成功。使用 GTS 事務保證了賬戶 A 和 B
總金額始終不變,同時保證了只有轉賬成功的情況下才能收到 MQ 的消息通知。
搭建樣例
- 下載樣例 txc-yun-sample并上傳到 ECS 上。
- 在兩個 RDS 實例中分別執行樣例中 sql 目錄下的 txc_sample1.sql 、 txc_sample2.sql 和 txc_undo_log.sql,創建數據表。
- 修改樣例配置。
- 打開 sample-txc-mq/src/main/resources 目錄下的 txc-mq-client-context.xml 文件。
- 將 constructor-arg value 的值替換為申請好的 GTS 事務分組 ID。
- 將 <bean id="txc_mq_producer" class="com.taobao.txc.rm.mq.TxcMQProducerImpl"> 下的參數替換為申請的
MQ 相關配置。
- 將 accessKey 和 secretKey 的值修改為您實際賬號的值。
說明 請使用主賬戶的Access Key ID和Access Key Secret。如果使用RAM子賬戶的Access Key ID和Access Key Secret,需要先使用主賬戶對子賬戶進行授權。
- 在 sample-txc-mq 目錄下執行 build.sh, 編譯樣例工程。
- 編譯完成后,在 sample-txc-mq/client/bin 目錄下執行 run.sh,啟動樣例。
查看 MQ 的 Provider 的運行結果。
- 將 sample-mq-consumer 樣例工程上傳到 ECS。
- 在 sample-mq-consumer/src/main/java/com/taobao/txc/tests 路徑下打開 SMSListener.java,修改其中的 xxxxx 為申請的 MQ 配置。
- 在 sample-mq-consumer 目錄下執行 build.sh, 編譯樣例工程。
- 編譯完成后,在 sample-mq-consumer/client/bin 目錄下執行 run.sh,啟動樣例。
可以消費掉剛剛 sample-txc-mq 工程生產出來的 MQ 消息。