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 ” 的形式回复
@zjw 提问:
请教个 SOFARegistry 的问题,sessionServer 启动后,地址是上报给 Meta 的吗?如果 sessionServer 意外关闭,地址是什么时候怎么摘除的?
A:session 会定时向 Meta 发送请求对自己的地址进行心跳续约,session 宕机后,Meta 端一段时间接收不到心跳就会摘除宕机的 session,然后广播给所有其他的 session。目前是靠心跳,超时之后 Meta 会把 session 或者 data 剔除。
「SOFARegistry」:https://github.com/sofastack/sofa-registry
@滕川 提问:
如果 leader 节点挂了,新选举的 leader 节点如何知道各个 follower 节点的 match index。
A:leader 不需要知道,leader 节点就直接发 appendEtries 即可。如果哪个 follower 还缺更之前的 log,那么它拒绝掉这次 appendEntries 就可以了, leader 会有相应的回退处理逻辑。
「SOFAJRaft」:https://github.com/sofastack/sofa-jraft
@橙橙不是澄澄 提问:
Raft 里面为什么不要 observer 呢?恰好之前看到 ZooKeeper 里面有这个角色。
A:Raft 里面可以有类似的角色,叫 learner。learner 不参与选举,只接收 leader 日志,JRaft 也支持 learner。
「SOFAJRaft」:https://github.com/sofastack/sofa-jraft
@邓君武 提问:
SOFAJRaft 文档中说支持 MULTI-RAFT-GROUP,目前 SOFAJRaft-RheaKV 这个存储组件中用到了。那么如果我想根据 SOFAJRaft 实现一个分布式的业务系统,MULTI-RAFT-GROUP 该怎么用呢?
A:MULTI-RAFT-GROUP 主要用于解决 SIGLE-RAFT-GROUP 单点瓶颈问题(存储或是吞吐),多个 group 中每个 group 都有一个 leader,可以把 leader 打散到不同的机器上,提高并发度。JRaft 天然支持 MULTI-RAFT-GROUP ,使用的话可以参考 RheaKV。
「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
升级由 Rust 开发的 Wasm demo
- Hard
集成 Jaeger 等 tracing 系统
支持 Dapr Config API
「详细参考」:https://github.com/mosn/layotto/issues/108#issuecomment-872779356