关于Tcc-transcation

来源:9-27 分布式事务章节总结

慕函数2082699

2018-11-16

关于Tcc-transcation,
1、是不是每一个参与Tcc的Resource都要在Tcc数据库中创建一场表,比如说:
CAP->TCC_TRANSACTION_CAP
ORDER->TCC_TRANSACTION_ORD
RED->TCC_TRANSACTION_RED

2、比方说我CAP有两个参与Tcc的接口,我应该怎么设置:
CAP_interface_a->TCC_TRANSACTION_CAP_1
CAP_interface_b->TCC_TRANSACTION_CAP_2

3、如果第一个问题回答是yes
那在一个多域的分布式框架中,tcc数据库中的表不是会很多吗?

写回答

1回答

Allen

2018-11-18

这个问题是比较好的,关于TCC库中的表,是根据业务场景决定的,但是大部分时候是同一个服务一个表,所以可以说第一个问题是Yes,第二个问题的话,如果两个接口是同一个服务,不推荐两张表,更建议使用一个。

我不知道你说的多域和我理解是否一致哈,就是同一个服务会跨机房或跨地域的情况是我理解的多域。原则是不管是否跨域,同一个服务是同一张表。

基于上述内容,既然是多域的服务,你一定是已经想办法解决了数据同步的问题,事务库和内容的同步自然也不是问题了,这是相对比较推荐的方式。

或者退一万步讲,一个一次业务都会在同一个地域进行(不考虑异地容灾之类的问题), 所以事务库其实只需要回滚单一域内的事务, 基于这种场景,即便事务数据没有同步,也是可以解决你的问题的。

0
2
Allen
回复
慕函数2082699
gunsA... gunsN是不是不同服务,如果是的话,可以多个服务配置同一个表,但是不推荐。 TCC的数据库一般不会成为瓶颈, 毕竟他的数据是用完就删。 数据库的瓶颈一般都是数据量太大导致读写太慢或链接问题。
2018-11-19
共2条回复

Dubbo主流版本打造仿猫眼项目 理解微服务核心思想

实战Dubbo项目+面试技巧,老司机带你畅游微服务

1410 学习 · 582 问题

查看课程