企业网站建设选题的依据及意义wordpress 没有样式表
使用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