SOFA Weekly | MOSN 直播预告、本周直播回顾整理、SOFARegistry 发布

2020/03/27 17:15
阅读数 102

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

  每周读者问答提炼  

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

1、@John Deng 提问:
现在 MOSN 对 Dubbo 协议支持怎样?
A:这儿,协议支持了:
https://github.com/mosn/mosn/tree/master/pkg/protocol/xprotocol/dubbo
完整的支持,我们已经创建了 Dubbo WG 专门来做这个事情,
https://github.com/mosn/community/blob/master/wg-dubbo.md

已经生产就绪了吗?
A:如果是 Dubbo 的话,目前还没有生产可用,主要是相关生态还没对齐,我们正在推进 Dubbo WG kick off,有兴趣可以加入一起完善。如果指 MOSN 的话,我们去年双 11 已经线上部署几十万容器,生产可用。
MOSN: https://github.com/mosn/mosn

2、@Liang 提问:
SOFAJRaft 的 Leader 节点执行完状态机,把这次的 index 提交之后,什么时候通知的 Follower 节点也提交呢?我看现象是 Follower 也立刻跟着提交了,但是这块代码没有找到。想问下具体是怎么实现的,谢谢~
A:Leader 会往 Follower 发送 lastCommittedIndex, 详情见:
   
     
   
   
   
com.alipay.sofa.jraft.core.NodeImpl#handleAppendEntriesRequest com.alipay.sofa.jraft.core.BallotBox#setLastCommittedIndex
SOFAJRaft: https://github.com/sofastack/sofa-jraft

   
   
   


3、@琦玉 提问:
这种情况下,状态机怎么确定是执行回滚,还是执行重试呢?
A:这个是由开发者决定的。
Server 事务恢复的逻辑是:
1. 当提交失败时,重试提交;
2. 补偿失败时,重试补偿;
3. 如果超时默认是进行重试补偿,如果配置了这个"RecoverStrategy": "Forward"则进行重试向前执行;
这个"RecoverStrategy": "Forward"配置是告诉状态机默认的事务恢复策略。如果发现这条事务无法向前,也可以通过手动调状态机“补偿”。


这种是否最终成功可能有其它业务上的条件,比如取决于另外一个步骤的成功与否。没法在状态语言里面定义。如果 A 充值成功,事务失败,B 就不能回退,必须重试到最终成功。如果 A 充值失败,事务失败,B 就可以回退。这种具体是要怎么去处理呢?分布式事务内先给用户 A 充值, 然后给用户B扣减余额, 如果在给 A 用户充值成功, 在事务提交以前, A 用户把余额消费掉了, 如果事务发生回滚, 这时则没有办法进行补偿了。
A:不允许这样设计,业务流水,必须先扣,再充,必须要遵循“宁可长款,不可短款”的原则。

意思是分成两个独立的事务,Saga 模式中不定义在同一个状态机流程里?先把B的扣钱流程执行完,再去执行A的充值流程 ?
A:不是,是在同一个事务里,同一个流程,要先进行扣 B 的款,再给 A 充值,那和如果充值失败,可以回滚 B。

假如同时给 B 和 C 充值呢?
A:那就都向前重试,因为充钱业务上不会失败。

如果做重试的话,是不是整个流程其它做回退的动作都要在充值动作之前完成?在重试动作之后的动作都只能做重试?
A:也不是完全只能这样,要根据业务场景来吧。做一个合理的流程设计。
相关文章:Seata 长事务解决方案 Saga 模式 | SOFAChannel#10 回顾
Seata: https://github.com/seata/seata

  本周推荐阅读  



  SOFA 项目进展  


本周发布详情如下:

发布 SOFARegistry v5.4.2 版本,主要变更如下:

i. 修复 cloud 模式推送时客户端 cell 设置错误的问题;

详细发布报告:

https://github.com/sofastack/sofa-registry/releases/tag/v5.4.2


  社区活动报名  



MOSN 是一款使用 Go 语言开发的网络代理软件,由蚂蚁金服开源并经过几十万容器的生产级验证。

MOSN 作为云原生的网络数据平面,旨在为服务提供多协议,模块化,智能化,安全的代理能力。在实际的生产使用场景中,通用的网络代理总会与实际业务定制需求存在差异,MOSN 提供了一系列可编程的扩展机制,就是为了解决这种场景。

本次分享将向大家介绍 MOSN 的扩展机制解析以及一些扩展实践的案例。


本期直播包含 Demo,可以先下载 Demo,提前体验 MOSN 拓展机制的使用(报名页面有详细 Demo 链接)。


  • 主题:SOFAChannel#14:云原生网络代理 MOSN 的扩展机制解析
  • 时间:2020年4月9日(周四)19:00-20:00
  • 嘉宾:永鹏 蚂蚁金服高级开发工程师、MOSN Committer
  • 形式:线上直播
  • 报名方式:点击“ 阅读原文 ”,即可报名


本文归档在 sofastack.tech。

🎉励支持 SOFAStack 的你~

* 点下右下角“在看
* 到公众号对话框发送“电脑包”,试试手气~
* 本期互动奖品“蚂蚁定制电脑内胆包

本文分享自微信公众号 - 金融级分布式架构(Antfin_SOFA)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部