SOFA WEEKLY | 每周精选,筛选每周精华问答
同步开源进展,欢迎留言互动
SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。
SOFA 文档: https://www.sofastack.tech/
SOFA: https://github.com/alipay
每周推荐阅读
蚂蚁金服分布式事务开源以及实践 | SOFA 开源一周年献礼
详解蚂蚁金服 SOFAJRaft | 生产级高性能 Java 实现(文末有共建文章领取列表)
每周读者问答提炼
欢迎大家向公众号留言提问或在群里与我们互动
我们会筛选重点问题通过
" SOFA WEEKLY " 的形式回复
@谭智超 提问:
SOFARPC 的客户端想做 mock 测试,是使用 Filter 在中伪造返回对象就可以吗?还是有其它更好的实现?
A:之前有设想是在服务端管控一个 JSON 的对象表示,然后通过 Filter 中获取某次调用的 mock 结果,然后进行对应的值覆盖。大致思路是一样的,主要是管控和结果的设置和赋值。
@ 李盼庚 提问:
请教大家一个问题哈,SOFAArk 做了类隔离了,是否具有动态更新的能力?在不重启应用的情况下,变更某个 Ark Plugin?
A:可以参考下文链接内的动态合并部署,动态更新针对 Biz, 不针对 Plugin。
https://www.sofastack.tech/sofa-boot/docs/sofa-ark-readme
@ 浮云 提问:
使用线程池的时候怎么把 Trace 的上下文传递过去?
A:有 TracerCallable 和 TracerRunnable。如果要实现远程调用的话,看你的是什么远程调用,HTTP 还是 SOFARPC, 主要看 Tracer 有没有对对应的组件进行埋点。具体可以参考下文链接:
https://www.sofastack.tech/sofa-tracer/docs/Async
@ 上海树维-名-合肥 提问:
我测试了一种分库测试案例,比如 A->B->C,在 B 里面调用 C 之后和 B 执行本地事务代码之前打了断点,调用 c 完成后,关闭 C 服务,然后执行完断点代码,C 对应的数据库里面有 undo_log 日志并且数据已经被修改,然后启动服务 C,server 会通知 C 服务根据 undo_log 日志回滚数据,数据回滚之后,undo_log 表里面的那条日志记录状态没变化,不知道从哪里能看出来已经根据这条日志记录进行回滚操作了。
A:业务数据和日志上验证,之前 v0.4 版本改动导致 undolog 一个 bug,不能自动删除日志。v0.4 之后的版本已修复,详情如下:
https://github.com/seata/seata/pull/750/files
我觉得应该是 seate-server 通知的吧,如果不回滚,只能自己手动回滚嘛?
A:seata-server 是根据事务发起方的通知来协调的,也有可能是事务超时了。
server 不应该不断重试 通知 C 去回滚嘛,要不然 需要手动处理的数据在生产时可能会很多。
A:整个事务是要回滚还是提交决定好以后,server 就会不停的去调用参与者。
那刚才这种案例 只能手动去处理了嘛?
A:不用的。C 如果被调用到,并且数据回滚了,那 undo_log 日志也应该会删除。不应该数据回滚了,日志没删除的情况。
还有一种就是事务发起方 A 中途挂了,是不是也没人通知 B 去回滚了?
A:通知参与者都是 server 来通知的。只不过事务提交还是回滚是发起方 A 告诉 server 的。
如果事务发起方 A 中途挂了或者网络抖动会怎么样?
A:server 会在事务超时后,去通知参与者回滚。
SOFA Missions
1、 SOFAJRaft Metric 统计接口化:允许可插拔的 Metric 类库接入,默认是 Dropwizard,用户可实现该接口提供其他实现,如 Micrometer 等。
Issue:
https://github.com/alipay/sofa-jraft/issues/38
2、文档贡献: 分布式计数器 Counter 例子时序图。
Issue:
https://github.com/alipay/sofa-jraft/issues/93
SOFA 活动推荐
2019 年 3 月,蚂蚁金服加入分布式事务 Seata 的社区共建中,并贡献其 TCC 模式。
<SOFA:Channel/> 系列第 4 期,4 月 18 日周四晚 7 点特邀 蚂蚁金服 技术专家 & Seata Commiter 觉生 与大家分享《分布式事务 Seata TCC 模式深度解析》。
| 复制链接至浏览器打开 or 点击阅读原文即可报名
http://t.cn/E6DoPlU
| 本期将带来:
TCC 模式基本原理解析
分布式事务并发控制解析
分布式事务空回滚与幂等解析
分布式事务防悬挂解析
分布式事务异步化解析
| 加入 SOFA 钉钉互动群
欢迎加入直播互动钉钉群:23127468(搜索群号加入即可)
本文分享自微信公众号 - 金融级分布式架构(Antfin_SOFA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。