seata的Tcc模式的问题
时间: 2023-06-20 15:05:51 浏览: 81
Seata TCC 模式 Demo
Seata的TCC模式是一种分布式事务解决方案,它通过将一个大的事务拆分成 Try、Confirm、Cancel 三个阶段来实现分布式事务的一致性。
TCC模式的主要问题包括:
1. 实现复杂度高:TCC模式需要实现三个阶段的逻辑,而且在 Cancel 阶段可能需要实现与 Try 和 Confirm 相反的逻辑,这增加了开发人员的实现难度。
2. 必须确保 Try 和 Cancel 阶段的幂等性:由于 Try 和 Cancel 阶段可能会执行多次,因此必须确保它们的执行是幂等的,即重复执行多次不会产生副作用。
3. 不支持跨库事务:TCC模式只能在同一个数据库中实现分布式事务,无法跨多个数据库实现分布式事务。
4. 不适用于长事务:由于 TCC 模式需要多次尝试 Try 阶段,因此不适用于长时间运行的事务,否则可能会导致 Try 阶段的执行时间过长,从而影响业务性能。
5. 可能不支持高并发场景:由于 TCC 模式需要锁定资源,因此在高并发场景下可能会出现锁冲突,从而导致事务失败或性能下降。
总之,TCC模式虽然是一种分布式事务解决方案,但由于其实现复杂度高、幂等性要求严格、不支持跨库事务、不适用于长事务、可能不支持高并发场景等问题,因此在实践中需要仔细评估其适用性。
阅读全文