RXA-Thanos是一个SpringCloud 分布式事务解决方案

/ 后端 / 没有评论 / 382浏览

Rxa-Thanos

 


RXA-Thanos是一个SpringCloud 分布式事务解决方案,基于Redis框架发布订阅方式通信,汲取了XA两阶段提交和最大努力一阶段提交等思想,倾向于强一致性事务

1.集成方式:

基于消息可选(Redis...),所以需要引入相应依赖

1
2
3
4
5
6
7
8
9
<dependency>
    <groupId>com.github.785175323</groupId>
    <artifactId>rxa-thanos</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.使用:

直接引入注解到业务方法,其中注解提供了一系列默认及可选填参数

1
2
3
4
5
6
7
8
9
10
11
12
@RxaThanosTransactional
//超时时间
long timeout() default 30;
//超时时间单位
TimeUnit timeUnit() default TimeUnit.SECONDS;
//传播级别
Propagation propagation() default Propagation.REQUIRED;
//隔离级别
Isolation isolation() default Isolation.DEFAULT;
//事务回滚异常级别
Class&lt;? extends Throwable&gt;[] rollbackFor() default {};

3.执行原理:
通过消息,主服务与从服务间进行提交通知;主服务维护一系列提交状态,主从服务各自设置超时回滚,达到最大努力提交;

GitHub地址