SOFA Weekly | 社区本周 Contributor、QA 整理、新手任务计划

2021-11-19 · SOFA 团队 ·

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

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

weekly.jpg

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

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

SOFAStack: https://github.com/sofastack

SOFA&MOSN 社区 本周 Contributor

weekly.jpg

每周读者问答提炼

欢迎大家向公众号留言提问或在群里与我们互动 我们会筛选重点问题 通过 “ SOFA WEEKLY ” 的形式回复

@黄润良 提问:

有什么办法可以获取日志的这两个值吗?

weekly.jpg

A:可以参考下图

weekly.jpg

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 的呢?
weekly.jpg

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

本周推荐阅读

weekly.jpg