注:1.需要修改seata的配置文件,将其注册到nacos上
2.在每个数据库中都需要增加undo_log表
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,
PRIMARY KEY (`id`),
UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
pom:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-seata</artifactId>
</dependency>
yml:
server:
port: 9050
spring:
application:
# 应用名称
name: jeesun-user
cloud:
nacos:
discovery:
# 服务注册地址
server-addr: 127.0.0.1:8848
alibaba:
seata:
tx-service-group: my_test_tx_group
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.31.52:3307/jeesun_user?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root12
业务类:
/**
* 增加GoodsBase
* @param goodsBase
*/
@Override
@GlobalTransactional
public void add(GoodsBase goodsBase){
goodsBaseMapper.insert(goodsBase);
User user=new User();
user.setId(goodsBase.getId()+100L);
user.setUsername("张三");
userFeign.add(user);
System.out.println(1/0);
}