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