Seata分布式事务解决方案
1.给每个微服务数据库创建回滚日志表
2.下载seata服务器
3.导入spring-cloud-starter-alibaba-seate
4.启动seata服务器,对应依赖版本
5.解压后在conf文件中registry.conf 注册中心配置 修改注册中心
6.所有想要用到分布式事务的微服务使用seata DatasourcePraxy 代理自己的数据源 写seata配置
7.每个微服务都必须导入seata服务器里的registry和file.conf文件
8.file.conf中service.vgroup_mapping改成service.vgroup_mapping.服务名-fescar-service-group配置
9.给分布式大事务方法标注@GlobalTransactional 每一个小事务用@Transactional
config配置
@Configuration
public class MySeataConfig {
@Autowired
DataSourceProperties dataSourceProperties;
@Bean
public DataSource dataSource(DataSourceProperties dataSourceProperties) {
HikariDataSource dataSource = dataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
if (StringUtils.hasText(dataSourceProperties.getName())) {
dataSource.setPoolName(dataSourceProperties.getName());
}
return new DataSourceProxy(dataSource);
}
}