seata 【Help】TCC 最佳实践及一些困惑

ivqmmu1c  于 4个月前  发布在  其他
关注(0)|答案(2)|浏览(61)
  • I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description

现在在 seata-samples 中 tcc 模块下所有测试用例都是在接口上添加 tcc 注解,但是最佳实践好像又不是这样使用的所有有了以下几个问题,希望能得到答复

  1. feature: TCC mode supports tcc annotation marked on both interface and implementation class #4479 这个pr为了解决什么问题,因为这里是可以在实现类上添加tcc注解了,优化了什么,tcc上的使用有什么变化
  2. feature: tcc-mode commit and rollback method support @BusinessActionContextParameter("opId") long opId  #3823 这个pr支持tcc commit/rollback方法属性填充,那针对参数类型为基本类型、List 这种,在commitArgs/RollbackArgs中ClassType填什么呢?
    同时官方推荐使用这种方式还是获取上下文自己get(key)的方式呢?
  3. tcc useTCCFence=true开启后,把悬挂/空回滚/幂等问题都解决了吗
  4. help!!! 1.5.2 TCC模式 try调用超时为什么会产生3个branch_id #4888 issue,rpc框架重试,导致分支事务多次注册这个问题?但是其实我没想明白怎么复现这个问题,我对dubbo不太熟悉
    这里提到了最佳实践:
    最佳实践->tcc的注解写在provider的service上,并且在provider的controller等位置再调用service之前进行 幂等处理 避免进入seata-tcc注解切面进行多次分支事务注册

但是还是需要用户做幂等处理

  1. springcloud/ springboot 服务之间http调用如何使用tcc?
    目前我看源码是在调用方添加@LocalTCC注解,但是我认为跟injvm联系不上。这次我再次困惑@LocalTCC的含义是啥
  2. 目前添加tcc切面bean的逻辑,我的理解是:
    一个在该类上含有@LocalTCC
    一个在该类上是referenceFactoryBean
    为什么要做这两者的区别?就是为什么referenceFactoryBean不统一添加@LocalTCC统一方式?LocalTCC有啥特殊的含义吗?
  3. 所以能提供一个TCC的最佳实践官方文档吗?

Ⅱ. Describe what happened

If there is an exception, please attach the exception trace:

Just paste your stack trace here!

Ⅲ. Describe what you expected to happen

Ⅳ. How to reproduce it (as minimally and precisely as possible)

  1. xxx
  2. xxx
  3. xxx

Ⅴ. Anything else we need to know?

Ⅵ. Environment:

  • JDK version :
  • Seata version:
  • OS :
  • Others:
a14dhokn

a14dhokn1#

1.没有什么大的变化,还是字面意思,我的理解就是增加了使用的方式
2. @wangliang181230 帮忙看下这块
3.是的
4.由于rpc重试,切面会重进导致了多次注册分支,幂等可以考虑包装一个bean,或者用aop,在进try方法进切面前先进spring的切面,进行幂等处理
5.@LocalTCC 就是本地是个tcc服务,而不是暴露到外部作为一个tcc服务,无论是从哪里调用到一个带有localtcc的服务的对应try方法,都会触发分支注册(rm侧)
6.老逻辑引起的理解困难,未来社区会往localtcc方向去靠,去除单独的dubboreference之类的处理
7.可以与社区一起弄个最佳实际的sample并贡献到seata-samples

jbose2ul

jbose2ul2#

第七条现在有了吗,我现在做seata2.0的tcc模式,集成springcloud,是到处找文档

相关问题