SOFA Weekly | SOFA-Common-Tools 发布新版本, QA 整理

原创
2020/12/25 15:30
阅读数 166
AI总结
SOFA WEEKLY | 每周精选,筛选每周精华问答
同步开源进展,欢迎留言互动
SOFAStack(Scalable Open Financial Architecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。
SOFAStack 官网: https://www.sofastack.tech
SOFAStack: https://github.com/sofastack

  每周读者问答提炼  

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


1、@薛帅领 提问:

多数据源切换后,增加事务但不起作用(切数据源是执行方法后才切换的),事务及 Seate 分布式事务也不可以,这个有什么好的解决方案吗?

A:Spring 本地事务注解本身就不支持多数据源事务,且如果你开启了本地事务,之后并不会进入你的切换数据源的切面。在多数据源下,去掉本地事务注解就好了。用 globaltransactional 注解在多数据源的入口加上,多个数据源都被 Seata 代理的话,就会保证多数据源的事务。


2、@李天宇 提问

如果在分布式事务中,另一个线程做批处理 update 之类的,是否会锁住呢?

A:不会,另一个线程也要记得加上 globaltransactional 注解就行了。在 a 线程要提交之前要去尝试拿到它修改数据的全局锁的,如果 a 拿到了,但是还没到二阶段提交,b 也是要去尝试拿,拿不到就会不执行 SQL ,等待全局锁释放了,也就是 a 发起的事务结束了,b 才能执行 SQL 提交。这样就保证了利用全局锁(粒度行级),来达到隔离性。

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


   本周推荐阅读   


  SOFA 项目进展  

本周发布详情如下:
SOFA-Common-Tools 发布1.3.0版本,主要变更如下:
  • SOFA 线程池支持 ScheduledThreadPoolExecutor 与 ThreadPoolTaskScheduler

  • 新增 SofaConfigs 支持统一的配置获取

  • 新增 LogCode2Description 支持统一的错误码获取

  • 重构线程池实现,支持更丰富的监控数据

  • 所有组件统一 spce 属性获取逻辑

  • 修复配置日志输出到控制台时不生效的问题


详细参考:
https://github.com/sofastack/sofa-common-tools/releases/tag/v1.3.0

本文归档在 sofastack.tech。

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

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