分布式事务使用说明
概述
Javashop采用seata框架实现分布式事务,Javashop重写了spring的transaction事务代理,完全无侵入式。
具体实现参见这里:
com.enation.app.javashop.framework.transaction.SeataAutoConfiguration
同时也支持seata事务注解在二次开发中也可以使用其注解。
部署seata
详见:《部署seata》
开关
默认是关闭分布式事务的,如需打开请更改如下配置:
seata:
enabled: true #默认为false,打开改为true
何时需要打开分布式事务?
javashop的分库是使用的多数据源
mysql同一个数据库实例下多个database通过srping的事务是可以实现事务的一致性的
但在database分布在多个数据库实例时srping的事务本身无法实现分布式事务,此时需要打开分布式事务
使用示例:
在概述中已经提到,我们实现了spring的transaction事务的seata代理,所以就像往常一样使用@Transaction注解
@Transactional
public void add(){
//some code
}