请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于Tcc-transcation

关于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数据库中的表不是会很多吗?

正在回答 回答被采纳积分+3

1回答

Allen 2018-11-18 00:18:08

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

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

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕函数2082699 #1
    其实第3点我想问的是,比方说我有gunsA,...,gunsN,这个服务都涉及Tcc,这个时候是不是我tcc对应的数据库要生成tccA,...,tccN这么多的表,这样随着我微服务的不断扩充,服务越来越多,tcc的数据库会不会称为瓶颈?
    回复 有任何疑惑可以回复我~ 2018-11-18 01:37:48
  • Allen 回复 提问者 慕函数2082699 #2
    gunsA... gunsN是不是不同服务,如果是的话,可以多个服务配置同一个表,但是不推荐。  TCC的数据库一般不会成为瓶颈, 毕竟他的数据是用完就删。 数据库的瓶颈一般都是数据量太大导致读写太慢或链接问题。
    回复 有任何疑惑可以回复我~ 2018-11-19 14:18:07
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信