SOFA Weekly | Occlum 发布新版本,Seata QA 整理

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

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

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

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

SOFAStack: https://github.com/sofastack

  每周读者问答提炼  

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

我们会筛选重点问题通过 

" SOFA WEEKLY " 的形式回复

1吴小彬 提问

请教下,如果分支事务中使用了分库分表中间件(shardingsphere-proxy、mycat 等),Seata-AT 模式是不是不能用的?是只可以用 TCC 模式吗?现在的 shardingsphereProxy 中间件(不是 shardingsphereJdbc )用 AT 模式,它对微服务来说就是一个 MySQL 连接,它是怎么知道微服务调用链中的 xid 的?

A:可以用,shardingsphere 4.1 支持 Seata AT, proxy 我估摸着有点悬,因为他属于一个代理层。Jdbc 是直接在应用的 Jdbc 层提供服务的,所以 AT 可以很好的支持。

2谭玖朋 提问:

在关于 AT 模式,第一阶段执行完后生成行锁然后注册分支事务,其中的行锁具体是指什么锁呢?因为发现第一阶段执行完后,其实再查数据的话是已经改变了。所以关于这个行锁这么解释?

A:Select for update 的时候,首先 Seata 会代理这个语句,去查询 TC 这个行有没有锁住,如果没锁住,客户端业务用了 for update 那么就拿到了本地锁,此时因为本地锁排他,这个时候没有全局锁的 for update 就是分布式下的读已提交。

      不是允许脏读,是读已提交。读未提交是默认的,所以只有在你 update 的时候(update 是当前读),但是如果你的 update 是基于快照度的 select 结果,可能会出现事与愿违的结果,如果你要基于某个数据来 update,要么 for update 来读分布式下的已提交,要么就用 update x=x-1 之类的写法,因为提交时会抢占全局锁,没抢到会 rollback,释放当前锁进行重试,这样就能保证抢到锁的时候,update 的数据当前读是分布式下的读已提交并修改。

       目前好像没人写关于 AT 行锁及全局锁部分源码有分析讲解的资料,如果感兴趣可以去阅读一下,写出来投稿给我们。

  本周推荐阅读  

   Occlum 项目进展  

本周发布详情如下:

1Occlum 发布 v0.19.0 版本主要变更如下:

  • 同时兼容 Glibc 和 musl libc的应用

  • 支持基于 DCAP (Intel SGX Data Center Attestation Primitives) 的远程验证

  • 修复了内存泄漏问题

详细参考:

https://github.com/occlum/occlum/releases/tag/0.19.1

本文归档在 sofastack.tech。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值