# transaction-xhga **Repository Path**: luckhwb/transaction-xhga ## Basic Information - **Project Name**: transaction-xhga - **Description**: 目的: 对需要分布式事务的service添加注解,实现分布式事务. - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # transaction-xhga 添加注解即可完成分布式事务 #### 介绍: ``` 目的: 对需要分布式事务的service添加注解,实现分布式事务. 实现: 将一组操作(创建订单,扣库存,扣余额)分为多个事务,每个事务都是独立的, 各自操作之后向日志服务发送自己的完成情况,日志表对每个服务发来的信息处理, 最后通过日志记录表返回的信息来决定是否回滚. 详情地址: https://github.com/luckhwb/distributed-transaction ``` #### 软件架构: ``` dubbo+zk ``` #### 遇到问题: ``` 技术: 1.添加注解,生成的动态代理类,无法注册到spring ioc.(已解决) 2.如添加前置后置回滚代码逻辑,是否会回滚(会) 3.分布式锁(setnx初略实现,希望提出您宝贵的意见) 实现类:https://gitee.com/luckhwb/transaction-xhga/blob/ec4316c615d6204a0e034f373b89ef7ee16e6d3d/xhga-common/src/main/java/com/xhga/transaction/common/redis/RedisService.java 项目: 1.事务中包含的任意一个服务无法请求的时候会导致No序列有错差,需重启log服务 2.No生成策略需要修复(事务包含的服务都会生成一个No,因为每次消费一个,导致指数式增加) ``` #### 进度: ``` 2019.04.29 基本实现添加注解进行分布式事务处理 2019.04.30 解决遇到问题:项目,(失败删除队列值/每当第一个服务器调用增加队列值) 2019.05.06 使用jdbc操作日志服务,并将日志No(centreNo)存入redis 2019.05.07 解决遇到问题:项目,(失败删除队列值/队列长度小于5时增加队列值) ``` #### 原项目地址(对service方法做处理): ``` 实现分布式事务的实现方案:侵入service方法,做日志实现回滚: 项目详情地址:https://github.com/luckhwb/distributed-transaction ```