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

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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值