liuyangming / ByteJTA

ByteJTA is a distributed transaction manager based on the XA/2PC mechanism. It’s compatible with the JTA specification. User guide: https://github.com/liuyangming/ByteJTA/wiki
http://www.bytesoft.org
GNU Lesser General Public License v3.0
211 stars 110 forks source link

ByteJTA有设计文档吗? #12

Closed zhenjing closed 5 years ago

zhenjing commented 5 years ago

你好。 在做ByteJTA的二次开发,对整体设计思路不熟,源码注释少,阅读费时。 是否有ByteJTA设计文档? 另外源码没看到测试用例,没有单元测试吗?

liuyangming commented 5 years ago

ByteJTA文档不多,目前只发布了开发指南。 ByteJTA有单元测试,不过单元测试是作为独立工程ByteJTA-autotests存在,还没有对外发布。

zhenjing commented 5 years ago

开发指南在哪?项目wiki?

liuyangming commented 5 years ago

说错了,是用户指南

zhenjing commented 5 years ago

ByteJTA的示例用法简单,分布式事务使用上和本地事务完全一样。 有在实际项目部署过吗?反馈如何?

没有设计文档,注释少,源码不易阅读。使用过项目不用理解源码?

liuyangming commented 5 years ago

基于XA/2PC的事务,使用上本来就是和普通事务一样,只是数据源配置不一样(普通事务用DataSource、XA事务用XADataSource)。 这一点JTA规范有明确定义,业务系统只需要关注javax.sql.DataSource即可。二者不一样的部分,由Spring容器、事务管理器、连接池模块、资源管理器提供适配。

zhenjing commented 5 years ago

先看XA、JPA规范,看源码容易明白。

参考: MySQL XA 介绍:https://www.jianshu.com/p/7003d58ea182 JTA 深度历险 - 原理与实现:https://www.ibm.com/developerworks/cn/java/j-lo-jta/ Java Transaction API (JTA):https://www.oracle.com/technetwork/java/javaee/jta/index.html