SOFA WEEKLY | 每周精选,筛选每周精华问答
同步开源进展,欢迎留言互动
SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。
SOFAStack 官网: https://www.sofastack.tech
SOFAStack: https://github.com/sofastack
SOFA&MOSN 社区 本周 Contributor
每周读者问答提炼
欢迎大家向公众号留言提问或在群里与我们互动 我们会筛选重点问题 通过 “ SOFA WEEKLY ” 的形式回复
@黄润良 提问:
有什么办法可以获取日志的这两个值吗?
A:可以参考下图
MOSN:https://github.com/mosn/mosn
@爱德华 提问:
请教一下,SOFAJRaft 在 leader 晋升后,给每个 follower 发送的探测请求是什么?是 Raft 论文中,为了“提交上一个 term 日志项”,才发送的空请求吗?
A:是为了探测该 follower 与 leader 的日志差异。找对 nextIndex 对吧?提交上一个 term 要通过 noop 日志。Raft 论文里有个 nextIndex,你可以看看相关内容, 日志复制那个小节。
SOFAJRaft:https://github.com/sofastack/sofa-jraft
@Bazingga 提问:
源码里面是怎么支持的呀,RheaKV 是使用了这个功能是吧。
A:可以参考下这个 https://blog.csdn.net/SOFAStack/article/details/91458041
SOFAJRaft:https://github.com/sofastack/sofa-jraft
@爱德华 提问:
我请教一下关于 follower 截断日志的问题。leader 拥有日志:101,102,103,它们的 term 为 2;follower 拥有日志:101,102,103,104,它们的 term 为 2;按照正常逻辑,follower 应该截断 104 的日志。根据上面的代码,在探测消息中,这种情况,follower 会返回了 success=true,并携带 lastLogIndex=104。那么 follower 是在什么时候截断 104 的呢?
A:checkAndResolveConflict 方法。
SOFAJRaft:https://github.com/sofastack/sofa-jraft
SOFAStack&MOSN:新手任务计划
作为技术同学,你是否有过“想参与某个开源项目的开发、但是不知道从何下手”的感觉?
为了帮助大家更好的参与开源项目,SOFAStack 和 MOSN 社区会定期发布适合新手的新手开发任务,帮助大家 learning by doing!
SOFARPC
- Easy
在服务注册时,使用枚举值替代字符串硬编码
优化集成 Nacos、ZK 注册中心的文档
- Medium
让用户使用@SOFAService 后不需要再写@Component
优化 SOFARPC 的异步编程体验
- Hard
JFR 埋点
「详细参考」:
https://github.com/sofastack/sofa-rpc/issues/1127
Layotto
- Easy
fail fast,让 Layotto 启动报错时自杀
为 Java SDK 新增分布式锁 API
为 Java SDK 新增分布式自增 ID API
- Medium
开发 Python SDK
开发 spring-boot-laytto
- Hard
集成 Jaeger 等 tracing 系统
支持 Dapr Config API
「详细参考」:
https://github.com/mosn/layotto/issues/108#issuecomment-872779356