发布说明
Seata
2.3.0 (2025-03-19,推荐版本)
Release notes
Seata 2.3.0
Seata 2.3.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature:
- [#6904] 增加Fastjson2序列化Rpc消息支持
- [#6876] 支持人大金仓数据库(kingbase)
- [#6881] client和server支持grpc协议
- [#6864] 支持神通数据库(oscar)
- [#6974] 支持UndoLog的fastjson2序列化方式
- [#6992] 支持grpc序列化器
- [#6995] 升级过时的 npmjs 依赖
- [#6973] 支持saga注解化
- [#6926] 支持Raft节点间的SSL通信
bugfix:
- [#6899] 修复file.conf打包后的读取
- [#6890] 修复saga设计json转标准json过程中: 子状态机补偿节点无法被识别
- [#6907] 修复Codecov未生成报告的问题
- [#6923] 增强 401 错误处理,通过刷新令牌
- [#6925] 修复Raft模式下,Follower崩溃可能导致Client继续使用过期令牌的问题
- [#6932] 修复开启本地事务时file&raft模式下锁争抢失败未退出导致可能出现残留锁
- [#6940] 修复NacosRegistry lookup 行为 transactionServiceGroup 为空导致 NPE 错误
- [#6943] 修复并发状态下
convertBranchSession
转换报错问题 - [#6948] 修复在ARM64平台下CI构建出错的问题
- [#6947] 修复nacos注册中心查询可用地址时的空指针问题
- [#6984] 修复 openjdk23 版本下无法构建 docker 镜像的问题
- [#6994] 修复updateJoin语句未更新到数据时prepareUndoLog异常
- [#7005] 修复Raft模式下两阶段并发可能导致NPE的问题
- [#7010] 修复使用达梦数据库时删除undolog发生SQL语法错误
- [#7022] 修复
application.raft.example.yml
的store.mode
属性 - [#7025] 修复vGroupMappingManager未初始化的问题
- [#7044] 修复TableMeta在数据源关闭后刷新错误问题
- [#7117] 修复 seata.server.raft.ssl 前缀不存在的问题
- [#7127] 修复saga注解化导致的server branchType解码失败问题
optimize:
- [#6826] 移除只读XA事务的分支注册操作
- [#6874] modify the version to 2.3.0-SNAPSHOT
- [#6892] 升级 console 模块 npmjs 版本
- [#6874] 修改版本为2.3.0-SNAPSHOT
- [#6883] 删除代码中无用对象的创建
- [#6892] 升级 npmjs 版本
- [#6889] 修正单词拼写错误
- [#6898] 升级 saga 模块 npmjs 版本
- [#6879] 修复日志参数不匹配问题
- [#6898] 升级 saga 模块 npmjs 版本
- [#6902] 优化 readme 文档
- [#6807] 分离merge消息使其能完全并行处理
- [#6905] 移除构建期不兼容的 license
- [#6906] h2依赖添加test scope
- [#6911] 修正项目中的部分拼写错误
- [#6918] 使用eclipse-temurin的openjdk镜像作为基础镜像
- [#6938] 更新 README.md 中的社区联系信息
- [#6950] 移除JVM参数app.id
- [#6959] 修正
seata-http-jakarta
的模块命名和描述 - [#6991] gRPC协议序列化默认值为protobuf
- [#6996] 优化 AT 事务模式锁释放逻辑
- [#6993] 优化 metrics 指标
- [#6995] 升级过时的 npmjs 依赖
- [#6996] 优化 AT 事务模式锁释放逻辑
- [#7023] 优化快速失败
- [#7027] raft模式下reload行为与file保持一致
- [#6891] 增加 StateType 类型
- [#7040] 优化ConfigurationFactory加载的打印信息
- [#7046] 去除spring-webmvc的依赖冲突
- [#7043] 在获取不到mq的sendResult时,直接完成回滚
- [#7051] 为namingserver模块添加Jib支持以构建Docker镜像
- [#7054] file模式中竞争不到锁时输出持有者的xid
- [#7154] 移除未使用的依赖
- [#7153] 升级 tomcat-embed 版本至 9.0.98
- [#7152] 移除 org.eclipse.jetty 依赖
- [#7151] 升级 xstream 版本至 1.4.21
refactor:
test:
- [#6869] 增加
seata-core
测试用例覆盖率 - [#6927] 增加
seata-rocketmq
模块的测试用例 - [#7018] 增加
seata-tm
模块的测试用例 - [#7030] 增加
seata-common
模块的测试用例
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- GoodBoyCoder
- funky-eyes
- dk2k
- MaoMaoandSnail
- yougecn
- arrrnold17
- xjlgod
- PleaseGiveMeTheCoke
- dsomehan
- psxjoy
- xingfudeshi
- o-jimin
- lixingjia77
- whaon
- YvCeung
- jsbxyyx
- lightClouds917
- Muluo-cyan
- yixia
- ChinaJeckXu
- YongGoose
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
常用链接
- Seata: https://github.com/apache/incubator-seata
- Seata-Samples: https://github.com/apache/incubator-seata-samples
- Release: https://github.com/apache/incubator-seata/releases
- WebSite: https://seata.apache.org
2.2.0 (2024-09-20,推荐版本)
Release notes
Seata 2.2.0
Seata 2.2.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature:
- [#6536] 支持 naming server客户端
- [#6226] 支持seata私有协议多版本兼容
- [#6537] 支持 Namingserver
- [#6538] seata server端集成naming server
- [#6766] 添加tcc三阶段钩子函数,方便用户拓展业务逻辑(比如多数据源情况下可以用于切换数据源)
bugfix:
- [#6592] fix @Async注解ClusterWatcherManager中不生效的问题
- [#6624] 修复 Alibaba Dubbo 转换错误
- [#6627] 修复 xaEnded 没有重置
- [#6626] 修复 hsf ConsumerModel 转换错误
- [#6816] 修复在非全局事务上下文中获取branchType时的NPE问题
- [#6640] 优化codecov相关配置
- [#6642] 修复codecov token找不到导致无法提交单测覆盖度报告
- [#6661] 修复
tableMeta
缓存定时刷新失效问题 - [#6486] 修复在mysql数据库下undo_log sql数据超过最大包大小错误
- [#6668] 解决namingserver同一个集群下instance添加和删除时的线程安全问题
- [#6678] 修复由于表名大小写问题导致的相同记录生成不同RowKey的问题
- [#6697] v0版本的ByteBuf不应由父类先解码
- [#6707] 修复Oracle XA事务中只读分支提交出错的问题
- [#6711] 修复达梦数据库的getRollbackInfo没有解压缩的问题
- [#6714] 修复达梦数据库的delete sql回滚失败的问题
- [#6511] 修复在使用SQLServer时,AT模式delete语句无法正常回滚的问题
- [#6701] 修复达梦数据库的对dm.jdbc.driver.DmdbTimestamp的支持
- [#6757] 修复client通过namingserver只能获取到一个tc节点的bug
- [#6769] 修复tcc fence死锁
- [#6778] 修复namingserver的节点term为0问题
- [#6765] 改进MySQL驱动加载机制,将自定义类加载器替换为系统类加载器,更兼容简化流程
- [#6781] 修复tc下线时,由于定时任务没有先关闭,导致下线后还会被注册上,需要靠namingserver的健康检查来下线的bug
- [#6785] 修复 prometheus 在与 Nacos 集成时无法返回 seata metrics 数据的问题
- [#6797] 当查询的集群地址为空时,获取可用的任意集群地址
- [#6800] 使异常消息对所有数据库驱动程序通用
- [#6812] 修复切换事务分组和节点下线时namingserver没有实时感知和推送的bug
- [#6759] 修复跨库表主动刷新
tableMeta
的异常问题 - [#6817] 修复namingserver切换事务分组失效的问题
- [#6820] 修复Dockerfile得文件结构错误
- [#6825] 修复Postgres的XA模式事务超时无法回滚问题
- [#6833] 插入全局锁时 SQLIntegrityConstraintViolationException 捕获不正确
- [#6835] 修复HttpClientUtil中post方法请求体缺失的问题
- [#6845] 修复rocksdb open相同文件多次的问题
- [#6840] 修复ProcessorYaml中不安全的反序列化
- [#6843] 修复从控制台发送POST请求时出现的403错误
- [#6850] raft模式向下兼容2.0版本
- [#6855] 修复raft缩容后元数据中残留该节点的问题(需先升级到2.2再进行缩容)
- [#6859] 移除重复的依赖
optimize:
- [#6499] 拆分 committing 和 rollbacking 状态的任务线程池
- [#6208] 支持多版本的Seata序列化
- [#6209] 解开 RpcMessage 和 Encoder/Decoder 的互相依赖
- [#6634] 根据协议版本指定channel handle
- [#6523] 升级 alibaba/druid 的版本到1.2.20
- [#6566] 支持GlobalTransactionScanner类中exposeProxy属性的配置
- [#6534] 优化: 发送异步响应
- [#6534] 增加license header信息
- [#6666] 添加ExceptionUtil工具类用于解包装异常
- [#6654] 增加Namingserver打包功能
- [#6667] 优化Namingserver日志输出
- [#6687] 删除前端构建的静态代码
- [#6700] 去掉sdk版本检查
- [#6727] 反序列化性能优化
- [#6732] 为application.example.yml与application.raft.example.yml添加默认安全配置
- [#6651] 为 proto 文件添加 license header
- [#6653] 优化多 license和移除license url
- [#6655] 更新前端 license
- [#6652] 为spring 配置文件添加 license header
- [#6656] 更新源码中的 license
- [#6650] 为 SPI配置文件添加 license header
- [#6741] 升级 tomcat-embed-core 至 9.0.90 版本
- [#6742] 升级 console 模块 npmjs 版本
- [#6732] 为application.example.yml与application.raft.example.yml添加默认安全配置
- [#6743] 升级saga模块npmjs版本
- [#6746] 优化 compatible 模块依赖
- [#6745] 修复 node-gyp 在 arm64 和 macos 构建失败问题
- [#6749] 优化 WebSecurityConfig csrf 处理
- [#6748] 优化 ConsistentHashLoadBalance 算法
- [#6747] 优化 fastjson 反序列化
- [#6755] 优化namingserver代码逻辑
- [#6763] 优化 NacosConfiguration 单例加载
- [#6761] 提升namingserver manager代码可读性
- [#6768] 上报tcc fence事务隔离级别
- [#6770] 通过caffeine map支持namingserver事务分组的过期删除
- [#6780] 优化类
SerializerServiceLoader
中的反射操作 - [#6784] 升级 axios 至 1.7.4 版本
- [#6787] 升级 elliptic 至 6.5.7 版本
- [#6783] 将server事务分组修改接口改为/vgroup/v1
- [#6793] 修复 npmjs 依赖冲突问题
- [#6794] 优化 NacosMockTest 单测问题
- [#6793] 独立server的meta信息初始化逻辑
- [#6806] 优化
tableMeta
缓存定时刷新问题 - [#6808] 修改版本号为2.2.0-SNAPSHOT
- [#6819] namingserver与server的合并打包
- [#6827] 重命名namingserver注册类型改为seata
- [#6836] 为CI流程增加独立nacos
- [#6841] 更新license和notice文件并统一依赖版本
- [#6823] 修正DefaultGlobalTransaction日志的错别字
- [#6779] 在config模块中使用curator替代zkclient
- [#6831] 在registry模块中使用curator替代zkclient
- [#6803] 优化 ARM64 架构的编译打包
- [#6852] 优化raft接口
- [#6863] 更新notice.md
refactor:
security:
test:
- [#6533] 增加 Integration-TX-API 模块单元测试覆盖范围
- [#6608] 添加sql-parser-core模块测试用例
- [#6647] 增加saga模块的测试用例覆盖率
- [#6695] 多版本协议的旧版本(< 0.7.1)客户端测试用例
- [#6752] 增加metrics模块测试用例覆盖率
- [#6764] 增加 Apollo Mock 测试用例
- [#6750] 提升spring autoconfigure模块单测覆盖率
- [#6773] 修复codecov图标显示错误的代码覆盖率
- [#6821] 修复单元测试断言
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- tuwenlin
- YeonCheolGit
- liuqiufeng
- God-Gan
- Bughue
- funky-eyes
- tanyaofei
- traitsisgiorgos
- wanghongzhou
- ggbocoder
- azatyamanaev
- xjlgod
- xingfudeshi
- wuwen5
- jsbxyyx
- iAmClever
- GoodBoyCoder
- liuqiufeng
- caohdgege
- TakeActionNow2019
- imashimaro
- lyl2008dsg
- lightClouds917
- l81893521
- laywin
- xiaoxiangyeyu0
- LegGasai
- yangli-stu
- heliang666s
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。