分布式事务配置之atomikos+spring+mybatis

一。关于配置可以参考下面的文章

1.atomikos+spring+mybatis

http://www.tianshouzhi.com/api/tutorials/distributed_transaction/386

其作者的文章系列地阐述了分布式事务的概念以及现在一些流行的解决方案。希望对分布式事务有一个比较完整的了解可以看看该作者的博客。

下面的一些博客配置也可以参考

https://www.2cto.com/kf/201801/714523.html

数据源配置

https://blog.csdn.net/guchuanlong/article/details/12600337

总结:

就分布式事务来说,使用分布式事务的解决机制后,必然会造成性能的消耗。在项目建立的时候,要避免分布式事务,如果实在避免不了,可以采取下面的几个方案:

同一个web服务器,多个数据库,可以使用Atomikos

跨越多个web服务器的事务,如果远程调用支持事务传播,那么使用JTA就可以;如果不支持事务传播,进尽量转化为一个web服务器的情况。

二。简单的描述一下用法

spring事务的用法

1. @Transactional 食物

2. Aop编程

 

在aop配置事务控制或注解式控制事务中,try...catch...会使事务失效,可在catch中抛出运行时异常throw new RuntimeException(e)或者手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();使得事务生效,异常回滚。

例如:

 @Transactional(value="jtaTransactionManager",propagation=Propagation.REQUIRED)
    public UserModel login(UserModel user){
        
    if(userSave){       
     try {        
        userDao.save(user);        
        userCapabilityQuotaDao.save(capabilityQuota);       
       } catch (Exception e) {       
        logger.info("能力开通接口,开户异常,异常信息:"+e);        
        throw new RuntimeException();//默认捕获uncheck异常 error 和RuntimeException异常
         //或者TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
       }        
    }

}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值