SOFA Weekly | QA 整理

2021-06-18 · SOFA 团队 ·

SOFA WEEKLY | 每周精选,筛选每周精华问答

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

SOFAStack 官网: https://www.sofastack.tech

SOFAStack: https://github.com/sofastack

每周读者问答提炼

欢迎大家向公众号留言提问或在群里与我们互动

我们会筛选重点问题

通过 “ SOFA WEEKLY ” 的形式回复

1、@孙力 提问:

请问和 MOSN 相关的健康检查有什么可行的方案吗?比如如何检查 MOSN 的健康状态,MOSN 检查业务容器健康,检查失败后有什么降级或动作?

A:MOSN 有获取运行状态的 API ,

https://github.com/mosn/mosn/blob/master/pkg/admin/server/apis.go#L301

检查业务容器健康通常来说需要自己扩展。

https://github.com/mosn/mosn/blob/9a53d7239d8d5ca987410c15d791e780b5809558/pkg/upstream/healthcheck/factory.go#L53

健康检查也有回调可以注册,可以实现自己的降级逻辑。

MOSN:https://github.com/mosn/mosn

2、@许玉杰 提问:

AT 模式是怎么做到的空回滚、防悬挂和幂等的啊?

A:幂等是用户自己做的,防悬挂和空回滚有 undolog,AT 的幂等等于接口幂等,自己的接口保证即可。

Seata:https://github.com/seata/seata

3、@jueming 提问:

Seata 支持 mybatis 的注解开发吗?目前用的 seata1.0 的版本,需要配置代理数据源,但是配置之后,影响了其他 sql 的执行,代理执行了 sql 的方法,打印了相关 sql 语句(数据库里有数据),但是得到的实体却为空。我把代理关闭以后则不影响 sql 的查询,这种情况应该怎么解决?

A:这里的问题是添加代理数据源的时候,使之前的 datasource 自动失效,没有读取 mybatis 的配置,解决方法是在设置新的 sqlsessionfactory 的时候,把需要配置的属性通过 ibatis 包下的 Configuration 注入进去。

Seata:https://github.com/seata/seata

本周推荐阅读

更多文章请扫码关注“金融级分布式架构”公众号