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<? extends Throwable>[] rollbackFor() default {};
|
3.执行原理:
通过消息,主服务与从服务间进行提交通知;主服务维护一系列提交状态,主从服务各自设置超时回滚,达到最大努力提交;