SOFA Weekly | QA 整理

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

同步开源进展,欢迎留言互动

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

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

SOFAStack: https://github.com/sofastack

  每周读者问答提炼  

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

我们会筛选重点问题通过 

" SOFA WEEKLY " 的形式回复

1、@叶毅威 提问:

请教下 SOFARegistry 数据持久化在哪里啊?

A:SOFARegistry 的元数据(注册中心自身的 IP 列表之类的数据)存储在 meta 角色内,使用 JRaft 进行存储。应用的发布数据保存在 data 角色的内存中,采用三副本(可配置)的方式实现高可用。

SOFARegistry:https://github.com/sofastack/sofa-registry

2、@叶毅威 提问:

我用 SDK 调用注册了一个 datainfo 但是关掉之后 这个并没有下线,是哪里需要配置么,不是默认链接断开就下线么

A:session 上采用 HTTP 方式获取的数据都是当前节点的注册数据,只有 data 上才会做数据聚合。dataInfo 是不会被删除的,连接断开后对应 dataInfo 下的对应 Publisher 会被自动移除。

SOFARegistry:https://github.com/sofastack/sofa-registry

3、@田冲 提问:

现象:canal 监听到某个被分布式事务控制的表的 insert-binlog 日志后再去查询 MySQL 表里数据时发现这条数据不存在,延迟1秒钟左右再查询就能查询到。

疑问:Seata-at 模式-两阶段提交的设计会出现 MySQL 先生成了 binlog 日志,后提交事务的情况吗?

A:这个问题其实很简单,你 canal 读不到,那你自己应用本地事务提交后马上读这个 insert 的数据看能不能读到;如果读到,理论上来说这个过程不可能超过一秒,所以如果你应用能查到,你canal查不到,排查canal的问题,而不是 Seata 的问题;Seata 最后也只不过做了 connection.commit;最后事务的提交落库是数据库方本地事务流程落库,Seata 不会起到任何干扰,Seata 代理的是 jdbc 层的处理;redo 后写 binlog 时马上就会广播的,而不是事务提交才把 binlog 广播出去;所以内 xa 的二阶段没提交你就去查主库,由于隔离级别不一定查得到。

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

  本周推荐阅读  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值