根据经验和百度结果来判断,是的概率很大,因为不是同个连接,应该很难满足事务的所有特性。另外同个事务保证同个连接,是用ThreadLocal去做的。
这里再白话赘述下事务的四大特性:
- 原子:操作要么整个成功,要么整个失败。一致:操作只能使数据从一个一致性状态到另一个一致性状态。隔离:不同事务互不影响。持久:操作结果永久有效。
- 不同服务之间的事务调用跨库操作,如分库分表,多数据源情况多个服务访问单个数据库
简单来说,就不是同一个jdbc连接对象,会导致分布式事务问题。
怎么解决分布式事务问题?
解决分布式事务,首先想到的是解决原子性问题,怎么保证操作是个整体。自身实现不了,那么可以依托与第三方组件去做。
想到了一个大致的思路:将多个事务的状态储存到某个地方然后进行判断,如果都成功就成功提交所有事务,如果有一个失败则回滚所有事务。



