SOFA Weekly | 每周精选【9/16 - 9/20】

SOFA WEEKLY | 每周精选,筛选每周精华问答
同步开源进展,欢迎留言互动
640?wx_fmt=png
SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级分布式架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。
SOFAStack 官网: https://www.sofastack.tech
SOFAStack: https://github.com/sofastack

  每周读者问答提炼  

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

@wy223170 提问:
你好,请问下 SOFAJRaft 如何在虚拟化环境下使用,比如部署三个实例,三个实例都是 docker 的。因为虚拟化实例可能漂移,怎么保证 snapshot 的迁移呢?另外怎么控制多个实例的同时漂移,导致集群不可用的问题?
A:SOFAJRaft 本身是有状态的,你说的实例漂移就可以理解为这个节点挂掉并新拉起了一个节点,我们内部的做法是通过一个 manager 节点监听容器上下线并执行  CliService removePeer 和 addPeer,利用 raft 协议本身的能力达到数据迁移的目的,但是对于半数以上节点同时漂移是无解的,可能出现丢数据的情况。这是 etcd 的一个解决类似问题的方式,供参考:
https://github.com/coreos/etcd-operator

感谢回答,是不是只要 manager 节点监听到容器变化就会立刻进行 removePeer 或 addPeer,需不需等待容器已经达到某种状态,比如迁移完 snapshot 等才进行 addPeer 之类的,这可能就需要实例迁移后完成一个打标记的功能标志迁移完成了。
A:流程是先 addPeer 成功以后再 removePeer。其中 addPeer 在追数据成功后才会返回成功。看到你多次强调  snapshot,其实这里你不用关注 snapshot,这是 SOFAJRaft 内部会考虑的 raft 层的东西,不需要额外做特殊处理。

  开源项目  


  SOFA 项目进展  

本周发布详情如下:
1、发布 Seata v0.8.1,主要变更如下:
i. 支持配置文件使用绝对路径
ii. 支持 DataSource 的自动代理
iii. 支持通信协议的 kryo 编解码
iv. 修复 file 存储模式的 selectForUpdate lockQuery exception
v. 修复数据库连接使用后的 autocommit 问题
vi. 优化 etcd3 中 watcher 订阅的效率
vii. 优化当数据表无索引时抛出显式异常
详细发布报告:
https://github.com/seata/seata/releases/tag/v0.8.1

  SOFAJRaft 系列解析文章  

本文归档在 sofastack.tech,点击“阅读原文”即可访问。

640?wx_fmt=png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值