SEATA分布式事务

seata官网 链接地址:Seata 是什么

一、Seata整合 控制分布式事务步骤

1)、每一个微服务先必须创建ubdo_log回滚日志表;

2)、安装事务协调器:seata-server: https://github.com/seata/seata/releases

3)、整合

1、导入依赖 :spring-cloud-starter-alibaba-seata seata-all-0.7.1

2、解压启动seata-server;

registry.conf :注册中心配置 修改它: registry type = "nacos"

file.conf:

3、所有想用到分布式事务的微服务 使用 seata DataSourceProxy代理自己的数据源

4、每个微服务都必须要导入

registry.conf

file.conf vgroup_mapping.{application.name}-fescar-service-group = "default"

5、给分布式大事务的入口标注: @GlobalTransactional

6、每一个小事务标注: @Transactional

TC (Transaction Coordinator) - 事务协调者

维护全局和分支事务的状态,驱动全局事务提交或回滚。

TM (Transaction Manager) - 事务管理器

定义全局事务的范围:开始全局事务、提交或回滚全局事务。

RM (Resource Manager) - 资源管理器

管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

DataSourceProxy 管理默认的数据源

@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());
        }
        //用SEATA包装 原来的数据源 。交给seata管理
        return new DataSourceProxy(dataSource);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

syfjava

请博主喝杯蜜雪冰城

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值