seata springcloud整合教程與遇到的坑
SEATA概要
seata 是alibaba 出的一款分布式事務(wù)管理器,他有侵入性小,實(shí)現(xiàn)簡(jiǎn)單等特點(diǎn)。我們能夠使用seata 實(shí)現(xiàn)分布式事務(wù)管理,
是微服務(wù)必備的組件。他可以實(shí)現(xiàn)在微服務(wù)之間的事務(wù)管理,也可以實(shí)現(xiàn)多個(gè)數(shù)據(jù)源的事務(wù)管理。
seata 在阿里內(nèi)部,和眾多的公司都有應(yīng)用,因此我們可以放心的使用它。
依賴
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId> </dependency>
建表
AT模式客戶端服務(wù)的數(shù)據(jù)庫(kù)都需要建表undo_log
否則報(bào)錯(cuò)
java.sql.SQLSyntaxErrorException: Table ‘psr_enterprise_control_test.undo_log' doesn't exist
-- 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注冊(cè)中心相同 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 # 事務(wù)分組名 disable-global-transaction: false client: rm: report-success-enable: false
啟用全局事務(wù)
@GlobalTransactional
到此這篇關(guān)于seata springcloud整合教程與遇到的坑的文章就介紹到這了,更多相關(guān)seata springcloud整合內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatis 如何配置多個(gè)別名 typeAliasesPackage
這篇文章主要介紹了MyBatis 如何配置多個(gè)別名 typeAliasesPackage,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01springboot整合RabbitMQ中死信隊(duì)列的實(shí)現(xiàn)
死信是無(wú)法被消費(fèi)的消息,產(chǎn)生原因包括消息TTL過(guò)期、隊(duì)列最大長(zhǎng)度達(dá)到以及消息被拒絕且不重新排隊(duì),RabbitMQ的死信隊(duì)列機(jī)制能夠有效防止消息數(shù)據(jù)丟失,適用于訂單業(yè)務(wù)等場(chǎng)景,本文就來(lái)介紹一下2024-10-10SpringBoot注冊(cè)web組件的實(shí)現(xiàn)方式
Servlet是Java Web應(yīng)用程序的基礎(chǔ),它提供了處理客戶端請(qǐng)求的機(jī)制,Servlet三大組件是指Servlet、Filter和Listener,它們是Java Web應(yīng)用程序的核心組件,本文將給大家介紹一下SpringBoot注冊(cè)web組件的實(shí)現(xiàn)方式,需要的朋友可以參考下2023-10-10Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法
這篇文章主要介紹了Struts2通過(guò)自定義標(biāo)簽實(shí)現(xiàn)權(quán)限控制的方法,介紹了定義Struts2的自定義標(biāo)簽的三個(gè)步驟以及詳細(xì)解釋,需要的朋友可以參考下。2017-09-09Java項(xiàng)目中大批量數(shù)據(jù)查詢導(dǎo)致OOM的解決
本文主要介紹了Java項(xiàng)目中大批量數(shù)據(jù)查詢導(dǎo)致OOM的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Java定時(shí)器例子_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文給大家分享了java定時(shí)器例子,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-05-05