Seata 1.7.0 正式发布,大幅度提升稳定性

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: Seata 1.7.0 正式发布,大幅度提升稳定性

作者:Seata 社区


用户登记


欢迎已使用用户在此链接登记,便于我们更好的针对业务场景优化:

https://github.com/seata/seata/issues/1246


发布概览


1.7.0 定位为 Seata 重要的稳定性版本,大幅提升稳定性和鲁棒性,满足企业级大规模生产可用需求。同时对  native image 做了探索。


  • 对现存的 issue 进行了深度的跟踪和解决。
  • 对 JDK(8,11,17)、Spring(5.2.x,5.3.x,6.0. x)、Platform(amd64、arm64)进行了交叉兼容。
  • 对低版本的 conf 配置进行了兼容适配。
  • 对安全问题进行了深度治理。
  • 更友好的日志格式,满足可观测性需求。
  • 发布了针对针对不同需求的 docker image。



此次 release  共修改文件数:423,累计提交代码  +9103 −1910,合并 PR 76个,共 25 人参与代码 commit 。


https://github.com/seata/seata/pull/5712


1.7.0 milestone:

https://github.com/seata/seata/milestone/23

seata-server:

https://github.com/seata/seata/releases/download/v1.7.0/seata-server-1.7.0.tar.gz

docker image:

https://hub.docker.com/repository/docker/seataio/seata-server

部署指南:

https://seata.io/zh-cn/docs/ops/deploy-guide-beginner.html

升级指南:

https://seata.io/zh-cn/docs/ops/upgrade.html


与低版本可平滑兼容。


版本的主要更新如下


feature:

  • [#5476] Seata 客户端侧支持 native-image
  • [#5495] 控制台集成 Saga 状态机设计器
  • [#5668] 兼容 1.4.2 及以下版本的 file.conf/registry.conf 配置

bugfix:

  • [#5682] 修复 Saga 模式下 replay context 丢失 startParams 问题
  • [#5671] 修复 Saga 模式下 serviceTask 入参 autoType 转化失败问题
  • [#5194] 修复使用 Oracle 作为服务端 DB 存储时的建表失败问题
  • [#5021] 修复 JDK17 下获取 Spring 原始代理对象失败的问题
  • [#5023] 修复 seata-core 模块传递依赖冲突
  • [#5224] 修复 Oracle 初始化脚本索引名重复的问题
  • [#5233] 修复 LoadBalance 相关配置不一致的问题
  • [#5266] 修复控制台全局锁查询接口查到了已释放的锁
  • [#5245] 修复不完整的 distribution 模块依赖
  • [#5239] 修复当使用 JDK 代理时,getConfig 方法获取部分配置时抛出 ClassCastException 异常的问题
  • [#5281] 修复并行 rm 请求处理时数组索引越界问题
  • [#5288] 修复 AT 模式下 oracle 的主键列自增的问题
  • [#5287] 修复 AT 模式下 PostgreSQL 的主键列自增的问题
  • [#5299] 修复 TC 端重试回滚或重试提交超时 GlobalSession 的删除问题
  • [#5307] 修复生成 update 前后镜像 SQL 不转义问题
  • [#5311] 移除基于文件存储恢复时的 RollbackRetryTimeout 事务
  • [#4734] 修复 AT 模式下新增字段产生的字段找不到
  • [#5316] 修复 JDK8 中 G1 参数
  • [#5321] 修复当 TC 端回滚返回 RollbackFailed 时,自定义 FailureHandler 的方法未执行
  • [#5332] 修复单元测试中发现的 bug
  • [#5145] 修复 Saga 模式全局事务状态始终为 Begin 的问题
  • [#5413] 修复 arm64 平台下的 JDK 和 Spring 兼容问题
  • [#5415] 修复客户侧事务提交前超时未执行 hook 和 failureHandler 的问题
  • [#5447] 修复 Oracle XA 模式同服务多个相同数据库数据源问题
  • [#5472] 在 RM 中使用 @GlobalTransactional 时,如果 RM 执行失败会抛出 ShouldNeverHappenException
  • [#5535] 修复读取 logback 文件路径错误的问题
  • [#5538] 修复提交事务时事务已完成不抛出异常问题
  • [#5539] 修复 Oracle 10g where 条件包含 setDate 全表扫描问题
  • [#5540] 修复 GlobalStatus=9 在 DB 存储模式无法清除的问题
  • [#5552] 修复 Mariadb 回滚失败的问题
  • [#5583] 修复 gRPCxid 解绑问题
  • [#5602] 修复 participant 情况下的重复日志
  • [#5645] 修复 Oracle 插入 undolog 失败问题
  • [#5659] 修复后镜像查询时增加关键字转义符导致数据库强制开启大小写校验引起的SQL异常
  • [#5663] 修复 connectionProxyXA 连接复用时 timeout 为 null
  • [#5675] 修复 xxx.grouplist 和 grouplist.xxx 配置项兼容问题
  • [#5690] 修复控制台打印 unauthorized error 问题
  • [#5711] 修复取中划线配置项错误问题

optimize:

  • [#5208] 优化多次重复获取 Throwable#getCause 问题
  • [#5212] 优化不合理的日志信息级别
  • [#5237] 优化异常日志打印(EnhancedServiceLoader.loadFile#cahtch)
  • [#5089] 优化 TCC fence log 清理定时任务的 delay 参数值检查
  • [#5243] 升级 Kryo 5.4.0 优化对 jdk17 的兼容性
  • [#5153] 只允许 AT 去尝试跨 RM 获取 channel
  • [#5177] 如果 server.session.enable-branch-async-remove 为真,异步删除分支,同步解锁
  • [#5273] 优化 protobuf-maven-plugin 插件的编译配置,解决高版本的命令行过长问题
  • [#5303] 移除启动脚本的 -Xmn 参数
  • [#5325] 添加配置中心、注册中心类型以及存储模式日志信息
  • [#5315] 优化 SPI 加载日志
  • [#5323] 为全局事务超时日志添加时间信息
  • [#5414] 优化事务失败处理 handler
  • [#5537] 优化客户侧事务日志
  • [#5541] 优化 Server 日志输出
  • [#5548] 优化 gpg key 和发布流水线
  • [#5638] 优化 Server 端事务隔离级别为读已提交
  • [#5646] 重构 ColumnUtils 和 EscapeHandler
  • [#5648] 优化 Server 日志输出
  • [#5647] 支持表和列元数据大小写敏感设置
  • [#5678] 优化大小写转义符
  • [#5684] 优化 CodeQL,skywalking-eyes 和 checkout 等 actions
  • [#5700] 优化分布式锁竞争日志

security:

  • [#5172] 修复一些安全漏洞的版本
  • [#5683] 增加 Hessian 序列化黑白名单
  • [#5696] 修复若干 Node.js 依赖安全漏洞

test:

  • [#5380] 修复 UpdateExecutorTest 单测失败问题
  • [#5382] 修复多 Spring 版本测试失败


英文版参考:https://github.com/seata/seata/releases/tag/v1.7.0


致谢


非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。


  • slievrly
  • xssdpgy
  • albumenj
  • PeppaO
  • yuruixin
  • dmego
  • CrazyLionLi
  • xingfudeshi
  • Bughue
  • pengten
  • wangliang181230
  • GoodBoyCoder
  • a364176773
  • isharpever
  • ZhangShiYeChina
  • mxsm
  • l81893521
  • liuqiufeng
  • yixia
  • jumtp


同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。


社区讨论群



常用链接


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

Samples: https://github.com/seata/seata-samples

Release: https://github.com/seata/seata/releases

官网: https://seata.io


开发者招募


如果您对 Seata 的前后端开发、测试和文档感兴趣,请您邮件联系:jimin.jm@alibaba-inc.com

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
7月前
|
Nacos 数据库
分布式事务解决方案Seata
分布式事务解决方案Seata
105 1
|
1月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
18天前
|
消息中间件 SQL 中间件
大厂都在用的分布式事务方案,Seata+RocketMQ带你打破10万QPS瓶颈
分布式事务涉及跨多个数据库或服务的操作,确保数据一致性。本地事务通过数据库直接支持ACID特性,而分布式事务则需解决跨服务协调难、高并发压力及性能与一致性权衡等问题。常见的解决方案包括两阶段提交(2PC)、Seata提供的AT和TCC模式、以及基于消息队列的最终一致性方案。这些方法各有优劣,适用于不同业务场景,选择合适的方案需综合考虑业务需求、系统规模和技术团队能力。
132 7
|
1月前
|
存储 Java 关系型数据库
在Spring Boot中整合Seata框架实现分布式事务
可以在 Spring Boot 中成功整合 Seata 框架,实现分布式事务的管理和处理。在实际应用中,还需要根据具体的业务需求和技术架构进行进一步的优化和调整。同时,要注意处理各种可能出现的问题,以保障分布式事务的顺利执行。
51 6
|
1月前
|
数据库
如何在Seata框架中配置分布式事务的隔离级别?
总的来说,配置分布式事务的隔离级别是实现分布式事务管理的重要环节之一,需要认真对待和仔细调整,以满足业务的需求和性能要求。你还可以进一步深入研究和实践 Seata 框架的配置和使用,以更好地应对各种分布式事务场景的挑战。
29 6
|
28天前
|
消息中间件 运维 数据库
Seata框架和其他分布式事务框架有什么区别
Seata框架和其他分布式事务框架有什么区别
25 1
|
3月前
|
SQL NoSQL 数据库
SpringCloud基础6——分布式事务,Seata
分布式事务、ACID原则、CAP定理、Seata、Seata的四种分布式方案:XA、AT、TCC、SAGA模式
SpringCloud基础6——分布式事务,Seata
|
7月前
|
存储 关系型数据库 MySQL
基于Seata实现分布式事务
通过以上步骤,你可以使用 Seata 实现分布式事务,确保在微服务架构中的事务一致性。Seata 支持多种语言和框架,能够满足不同业务场景的需求。欢迎关注威哥爱编程,一起学习成长。
184 1
|
4月前
|
关系型数据库 MySQL 数据库
SpringCloud2023中使用Seata解决分布式事务
对于分布式系统而言,需要保证分布式系统中的数据一致性,保证数据在子系统中始终保持一致,避免业务出现问题。分布式系统中对数据的操作要么一起成功,要么一起失败,必须是一个整体性的事务。Seata简化了这个使用过程。
100 2
|
4月前
|
Java 关系型数据库 MySQL
(二十七)舞动手指速写一个Seata-XA框架解决棘手的分布式事务问题
相信大家对于事务问题都不陌生,在之前《MySQL事务篇》中曾详解过MySQL的事务机制,在传统的单库环境下开发,咱们可依赖于MySQL所提供的事务机制,来确保单个事务内的一组操作,要么全部执行成功,要么全部执行失败。