分布式事务实现

事务配置
环境准备:
在读写分离的基础上进行事务的配置
引入maven依赖:
以下两种依赖选择一个就可以,如果想要强一致性就引入XA依赖,如果想要最终一致性就引入Base依赖

        <!--Sharding-JDBC事务-XA模式(强一致性事务)-->
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-transaction-xa-core</artifactId>
            <version>4.1.1</version>
        </dependency>

        <!--Sharding-JDBC事务-Seata模式(最终一致性事务)-->
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-transaction-base-seata-at</artifactId>
            <version>4.1.1</version>
        </dependency>

在启动类上添加:
@SpringBootApplication(exclude = {JtaAutoConfiguration.class, PageHelperAutoConfiguration.class})
@EnableTransactionManagement
PageHelperAutoConfiguration是后续分页插件使用的

在这里插入图片描述

使用:
在service方法上加上注解 @ShardingTransactionType(TransactionType.XA) 和 @Transactional ,两个注解结合使用

import org.apache.shardingsphere.transaction.annotation.ShardingTransactionType;
import org.apache.shardingsphere.transaction.core.TransactionType;
import org.springframework.transaction.annotation.Transactional;


	@Override
    @ShardingTransactionType(TransactionType.XA)
    @Transactional
    public void batchInsertOrder() {
        for(int i=0;i<30;i++){
            OrderEntity entity = new OrderEntity();
            entity.setId(i);
            entity.setName("q");
            entity.setOtherId(21);
            orderMapper.insertOrder(entity);
        }
    }

一般情况下不需要更改配置,但是需要自定义配置的话可以在:项目的resource目录下,新建一个jta.properties文件,在里面可以编写自定义的配置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值