SOFA Weekly | 每周精选【11/18 - 11/22】

SOFA WEEKLY | 每周精选,筛选每周精华问答
同步开源进展,欢迎留言互动
SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁金服自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。
SOFAStack 官网: https://www.sofastack.tech
SOFAStack: https://github.com/sofastack
  每周读者问答提炼  
欢迎大家向公众号留言提问或在群里与我们互动
我们会筛选重点问题通过 
" SOFA WEEKLY " 的形式回复
1、@J~杰 提问:
帮我看个问题,标红的这个状态没执行是啥原因?
A: 没有 Next 属性,可以下载 seata-sample,里面有例子,https://github.com/seata/seata-samples。
好的,CompensateState 这个属性是正向失败后,重试这个状态?
A:正向失败后,触发这个补偿状态。
https://github.com/seata/seata/tree/develop/test/src/test/java/io/seata/saga/engine
这里有很多单元测试案例,代码对应的json在:
https://github.com/seata/seata/tree/develop/test/src/test/resources/saga/statelang
正向失败后,触发这个 CompensateState 状态,但失败后并不会默认就触发补偿流程,需要在 Catch 属性里,Next 到一个 CompensateTrigger。
那 Saga 模式下,如果 TC 端发出回滚命令,Saga 怎么处理,没发现有回滚状态?
A:Saga 模式的 TCC 模式有点不一样的是,Saga 的回滚不是由 TC 来协调,而是只 TC 触发,回滚流程是由状态机执行的。
可以看一下这个例子:
https://github.com/seata/seata/blob/develop/test/src/test/resources/saga/statelang/simple_statelang_with_compensation.json
这里是 Catch 到异常后,可以自定义捕获某些异常,然后 Next 到一个处理 state,这个 state 可以是任何 state,如果是 CompensateTrigger 则立即进行回滚。
Saga 是通过检测异常来识别回滚命令?
A:Catch 属性是用来检测异常的,但异常的处理可能不仅仅是进行回滚,可能有别的处理逻辑,因业务不同而不同,catch 到这些异常处理,你可以 Next 到任何一个 state 来处理异常;如果希望回滚,框架提供了 CompensateTrigger 这种一个特定的 state,Next 到 CompensateTrigger,则立即进行回滚。
如果一个 Saga 状态失败后,RM 一直会重试,这个重试有没有次数限制的?
A: https://github.com/seata/seata/blob/develop/server/src/main/resources/file.conf.example
重试间隔和重试超时时间, -1是无限重试,比如可以配置成 1d ,只重度一天。
还有个问题,发现 catch 没有捕捉到 RuntimeExcepeion 异常:
A:它走到 Fail 那个状态去了吗?另外就是 Status 是会执行的,catch 异常和状态判断是两个互不干扰的事情。
就是没有走到 Fail 那个状态才奇怪,刚开始我是把 Status 给去掉的,也没走,后来就加上的。这个重试是状态为 un 的时候,TC 就会一直发起重试的吧?
A:如果没有发起过回滚(补偿流程),失败后 TC 会重试继续完成状态机正向执行,如果发了回滚,回滚失败后 TC 会重试回滚。
那如果发生回滚,是从哪个状态节点开始回滚的?
A:从失败的节点开始。
是通过读这张表的数据 seata_state_inst?
A:对。
Seata: https://github.com/seata/seata

2、@胡文伟 提问:
双模微服务是指什么?
A: 所谓双模,是指 SOFA 微服务和 Service Mesh 技术的双剑合璧,即“基于 SDK 的 SOFA 微服务”可以和“基于 Sidecar 的 Service Mesh 微服务”实现下列目标:互联互通:两个体系中的应用可以相互访问;平滑迁移:应用可以在两个体系中迁移,对于调用该应用的其他应用,做到透明无感知;异构演进:在互联互通和平滑迁移实现之后,我们就可以根据实际情况进行灵活的应用改造和架构演进。

  双十一落地实践特辑阅读  

  SOFA 项目进展  

本周发布详情如下:
1、发布 MOSN v0.8.1,主要变更如下:
i. 新增 MOSN 处理失败请求数的统计;
ii. 提升写共享内存时的性能;
iii. 优化内存占用与日志输出;
iv. 修复日志文件轮转的 Bug;
详细发布报告:
https://github.com/sofastack/sofa-mosn/releases/tag/0.8.1

  SOFAChannel 直播推荐  

Service Mesh 是蚂蚁金服下一代架构的核心,本期直播主要分享在蚂蚁金服当前的体量下,我们如何做到在奔跑的火车上换轮子,将现有的 SOA 体系快速演进至 Service Mesh 架构。聚焦 RPC 层面的设计和改造方案,分享蚂蚁金服双十一核心应用如何将现有的微服务体系平滑过渡到 Service Mesh 架构下并降低大促成本,并从核心、RPC、消息等模块展开分享本次双十一落地实践的实现细节。

你将收获:

  • 蚂蚁金服 Service Mesh 架构双十一大规模落地实践案例分析;
  • 从核心、RPC、消息等模块分享蚂蚁金服 Service Mesh 落地实践细节;

时间:2019年12月5日(周四)19:00-20:00
形式:线上直播
报名方式:点击“阅读原文”即可报名

本文归档在 sofastack.tech。
???? 奖励支持 SOFAStack 的你~
* 点下右下角“在看
* 到公众号对话框发送“卫衣”,试试手气~
* 本期互动奖品“SOFAStack 定制卫衣
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值