主页 > 手机  > 

seata基本使用

seata基本使用

使用seata之前需要先了解一下seata的一些名词和关系:

TC:事务协调者 用于开启一个全局和分支事务

TM:事务管理者 定义事务的范围,在事务开始的时候向TC请求开启一个全局事务

RM:资源管理器 管理事务的状态,与TC做交流,通知TC是提交事务还是回滚事务

业务开始的时候:

TC作为一个独立的服务,管理着全局和分支事务,TM定义事务范围并向TC请求开启一个全局的事务,RM监控所有的分支事务,当所有的分支事务成功,则通知TC进行提交事务,如果有一个事务失败,那么TC会执行逆向sql用于回滚事务

使用之前需要先导入仪依赖

<!--seata 分布式事务--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId> </dependency>

然后在配置文件中配置

seata: tx-service-group: train_group # 事务服务组名称 service: vgroup-mapping: # 事务分组与服务组的映射关系 train_group: default # 将 train_group 映射到 default 服务组 grouplist: # 服务组的地址列表 default: localhost:8091 # default 服务组的地址

在相关联的数据库添加一下逆向表用于存放seata的逆向sql用于回滚

CREATE TABLE `undo_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `branch_id` bigint(20) NOT NULL, `xid` varchar(100) NOT NULL, `context` varchar(128) NOT NULL, `rollback_info` longblob NOT NULL, `log_status` int(11) NOT NULL, `log_created` datetime NOT NULL, `log_modified` datetime NOT NULL, `ext` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

在事务的初始链,事务刚开始的地方添加注解

@GlobalTransactional

标签:

seata基本使用由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“seata基本使用