SOFA Weekly | SOFABolt 源码解析合辑、CSDI summit 活动预告

原创
2020/09/25 17:49
阅读数 219

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

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

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

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

SOFAStack: https://github.com/sofastack


  每周读者问答提炼  

欢迎大家向公众号留言提问或在群里与我们互动
我们会筛选重点问题通过 
" SOFA WEEKLY " 的形式回复


1、@刘源远 提问:

请教一下大家,这个本地事务提交,是指这个本地事务在分布式事务中提交,还是指在自己的事务中提交啊?

如果是指分布式事务中提交,那不就应该在分支事务提交之前,才存在回滚嘛?如果是指自己的事务中提交,那我断点下来,本地业务事务已经提交了,为什么还产生这条记录呢?

A:只要二阶段回滚的时候,发现你的 undolog 没插入就会做一条防御性的 undolog,你可以认为你没产生资源悬挂,但是二阶段确实没读到你的 undolog。所以才会插入一个防御性,你完全不需要理会 status=1 的记录。


奇怪的是,我断点下来,在一阶段会产生 undolog 记录(两条),然后抛异常回滚之后,一阶段的 undolog 记录(两条)被删除了,产生一条 status=1 的记录。会不会是因为某些原因,一阶段会产生 undolog 记录被删除了,所有二阶段没有查询到?

A:多数据源?


对的,多数据源。

A:确认下是不是重复代理了?把自动代理关了,一般多数据源都是已经手动代理了,因为二阶段的时候,下发找 datasource,找到的不是你当时操作数据库的 datasource,导致没发现 undolog,就插了一条 status=1。


我现在手动配置代理,有两个数据源,一个用了 DataSourceProxy,一个没有。现在处于分布式事务中是使用了 DataSourceProxy 的数据源,但是回滚后还是会产生一条 status=1 的 undolog。

A:自动代理关了吗,看下怎么代理的。


你指的自动代理是 springboot-start 吗?还是其他的?

A:Seata 的数据源自动代理,设置 Seata:

 enable-auto-data-source-proxy: false


OK,好啦。

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


  SOFABolt 源码解析阅读  


  社区活动预告  



CSDI summit 中国软件研发管理行业技术峰会(Software development management industry technology summit)由国内专业咨询机构百林哲匠心打造的软件行业技术领域顶级盛会,将于2020年9月24-27日举办。

话题涵盖:组织数字化转型、研发效能、产品创新、用户增长、云原生、架构创新、微服务、AI 大数据、数据安全和云安全、AIOT 实践等方面。蚂蚁集团也应邀参与本次大会分享。


分享主题金融级云原生 PaaS 实践之路

分享嘉宾:成旻 蚂蚁金服高级技术专家


分享时间:2020-09-26 16:40 - 18:00

分享亮点:

  • 蚂蚁 PaaS 产品的缘起;

  • 经典应用服务的能力和特色;

  • 容器应用服务的进阶能力;

  • 面向未来--混合云发展发向;

活动形式:线上峰会

活动详情:点击“阅读原文”,了解日程详情



本文归档在 sofastack.tech。

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

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部