SOFA WEEKLY | 每周精选,筛选每周精华问答
SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。
SOFAStack 官网: https://www.sofastack.tech
SOFAStack: https://github.com/sofastack
感觉 SOFAArk 在静态合并部署情况下,和 SOFABoot 的类隔离起到的作用是一样的?不知道我理解对不对。
A:SOFABoot 没类隔离,它的类隔离就是基于 SOFAArk。
比如新建一个 SOFABoot 应用,需要再手动集成 SOFAArk 吗?
SOFABoot:
https://github.com/sofastack/sofa-boot
SOFAArk:
https://github.com/sofastack/sofa-ark
如果 Seata 在提交阶段有数据库失败了,其他成功的怎么办呢,没办法了吧?
A:一阶段提交,二阶段不可能提交的情况下还失败,XA 本地事务一阶段持久化在数据库层面不可能丢失,本地事务 undolog 跟 redolog 了解一下。对Seata-server来说保存了事务状态,如果二阶段有节点执行失败,就重试,直到成功。也就是你节点二阶段执行失败,自己了解下为什么你数据库出问题了,而不是分布式事务有什么问题。
会不会出现重试过程中,其他事务修改了现有数据,而最终又被重试成功的情况?
A:二阶段提交代表了什么?代表了整个调用链是成功的。一个成功的分布式事务,一阶段已经持久化了,你再去改,这个数据又不是脏的有什么问题?XA 来说,本地事务的本地锁先了解一下,一阶段不提了,锁被本地持有,如何修改?本地排它锁都没释放,何来脏写。
Seata TCC 模式下,订单微服务和库存微服务。订单微服务 try 阶段添加订单信息,现阶段可以支持在库存微服务 try 阶段获取订单信息吗?或者说能把创建好的订单信息存储到Seata-server ,然后在其他微服务可以获取到吗?
A:我理解 Server 只负责全局事务的流转,try 出错就 cancel ,成功就 commit。Try 里面对两个库操作,正常是可以拿到数据吧。
Seata:
https://github.com/seata/seata
本文归档在 sofastack.tech。

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