SOFA Weekly | QA 整理

2021-09-24 · SOFA 团队 ·

SOFA WEEKLY | 每周精选,筛选每周精华问答

同步开源进展,欢迎留言互动 weekly.jpg

SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。

SOFAStack 官网: https://www.sofastack.tech

SOFAStack: https://github.com/sofastack

每周读者问答提炼

欢迎大家向公众号留言提问或在群里与我们互动

我们会筛选重点问题

通过 “ SOFA WEEKLY ” 的形式回复

@证道者 提问:

MOSN 怎么将 HTTP 转到 Dubbo 的数据,怎么实现新的协议?

A:这个你要写个 filter ,因为每个 HTTP 字段怎么对应 Dubbo 的字段,是没有固定标准的。

A:「HTTP 转 SOFA 的例子」 https://www.github.com/mosn/mosn/tree/master/pkg%2Ffilter%2Fstream%2Ftranscoder%2Fhttp2bolt

A:这个需要 client 满足这个字段对应规范,所以一般就自己实现了。

公司很多这种 RPC 的接口,每一个接口都要写一下 filter 吗?没有通用的转换吗?

A:一个协议就一个吧,比如 HTTP 的 header:service 对应 Dubbo 的 service。你也可以用其他的 HTTP header 来对应,比如用 dubbo-service,所以没有一个标准,就需要自己简单做个对应关系。

MOSN:https://github.com/mosn/mosn

@王夕 提问:

咨询一个问题,TCC 的嵌套子事务,如果发生重试的话,如下图中的 2、6,会产生不同的 branch 记录吗?

A:有可能,要么关了重试,要么做幂等

也就是说根据 xid 做幂等,而不要根据 branchid 做幂等对吗?

A:branchid 进来一次就变一次,肯定不行,该分支同入参同 xid 一般就可以作为幂等的校验条件。

Seata:https://github.com/seata/seata

@江培泉 提问:

请教下,oracle 用户没获取到行信息,导致 undo_log 无法插入,也无法回滚。

主键字段类型和 JAVA 的类型:

A:主键的 Long 改成 BigDecimal,Oracle 的 number 长度超过 19 之后,用 Long 的话,setObject 会查不出数据来。

Seata:https://github.com/seata/seata

本周推荐阅读