seata springcloud整合教程與遇到的坑
SEATA概要
seata 是alibaba 出的一款分佈式事務管理器,他有侵入性小,實現簡單等特點。我們能夠使用seata 實現分佈式事務管理,
是微服務必備的組件。他可以實現在微服務之間的事務管理,也可以實現多個數據源的事務管理。
seata 在阿裡內部,和眾多的公司都有應用,因此我們可以放心的使用它。
依賴
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId> </dependency>
建表
AT模式客戶端服務的數據庫都需要建表undo_log
否則報錯
java.sql.SQLSyntaxErrorException: Table ‘psr_enterprise_control_test.undo_log’ doesn’t exist
官方GIT腳本文件
-- for AT mode you must to init this sql for you business database. the seata server not need it. CREATE TABLE IF NOT EXISTS `undo_log` ( `branch_id` BIGINT NOT NULL COMMENT 'branch transaction id', `xid` VARCHAR(128) NOT NULL COMMENT 'global transaction id', `context` VARCHAR(128) NOT NULL COMMENT 'undo_log context,such as serialization', `rollback_info` LONGBLOB NOT NULL COMMENT 'rollback info', `log_status` INT(11) NOT NULL COMMENT '0:normal status,1:defense status', `log_created` DATETIME(6) NOT NULL COMMENT 'create datetime', `log_modified` DATETIME(6) NOT NULL COMMENT 'modify datetime', UNIQUE KEY `ux_undo_log` (`xid`, `branch_id`) ) ENGINE = InnoDB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8 COMMENT ='AT transaction mode undo table';
配置
application.yml
seata: enabled: true enable-auto-data-source-proxy: true tx-service-group: my_test_tx_group # 與seata.service.vgroup-mapping一致 registry: type: nacos # 與seata註冊中心相同 nacos: application: seata-server server-addr: ${PSR_NACOS:localhost:8848} namespace: test group: application cluster: default config: type: nacos # 與seata配置中心相同 nacos: server-addr: ${PSR_NACOS:localhost:8848} group: seata namespace: test service: vgroup-mapping: my_test_tx_group: default # 事務分組名 disable-global-transaction: false client: rm: report-success-enable: false
啟用全局事務
@GlobalTransactional
到此這篇關於seata springcloud整合教程與遇到的坑的文章就介紹到這瞭,更多相關seata springcloud整合內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Docker+nacos+seata1.3.0安裝與使用配置教程
- Seata 環境搭建部署過程
- seata docker 高可用部署的詳細介紹
- springboot cloud使用eureka整合分佈式事務組件Seata 的方法
- Spring Cloud + Nacos + Seata整合過程(分佈式事務解決方案)