发布说明
Seata
2.1.0 (2024-09-05,推荐版本)
Release notes
Seata 2.1.0
Seata 2.1.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature:
- [#6370] seata saga spring接耦、架构优化。
- [#6205] 提供mock server
- [#6169] 支持新版本状态机设计器
- [#6230] 支持RocketMQ消息事务
- [#6326] 支持raft节点间的元数据同步
- [#6415] 支持 Saga 设计器的自动布局
bugfix:
- [#6090] 修复tcc切面异常处理过程,不对内部调用异常做包装处理,直接向外抛出
- [#6075] 修复镜像SQL对于on update列没有添加表别名的问题
- [#6086] 修复oracle alias 解析异常
- [#6085] 修复jdk9+版本编译后,引入后ByteBuffer#flip NoSuchMethodError的问题
- [#6101] 修复在dubbo 3.x的版本中, 消费者端不能生成tcc代理的问题
- [#6077] 修复表存在复合主键索引导致无法回滚问题
- [#6121] 修复回滚分支事务时没有按照时间排序的问题
- [#6182] 修复在ci中guava-32.0.0-jre.jar zip文件为空的问题
- [#6196] 修复asf配置格式错误的问题
- [#6143] 修复优雅停机
- [#6204] 修复错误配置问题
- [#6248] 修复JDBC resultSet, statement, connection关闭顺序
- [#6261] at 模式支持pgsql集群模式url
- [#6256] 修复在seata-all sdk下,raft-discovery模块不能读取registry.conf的配置的问题
- [#6232] 修复在mysql的json类型下出现Cannot create a JSON value from a string with CHARACTER SET 'binary'问题
- [#6278] 修复 ProtocolV1SerializerTest 失败问题
- [#6324] 修复 Parse protocol file failed
- [#6331] 修复TCC嵌套事务不能同时添加TwoPhaseBusinessAction和GlobalTransactional两个注解的问题
- [#6354] 修复动态升降级不能正常工作问题
- [#6363] 修复docker镜像中的已知问题
- [#6372] 修复初始化sql文件postgresql.sql 索引名称冲突问题
- [#6380] 修复针对sql server检查UNDO_LOG表是否存在时的SQL异常
- [#6385] 修复Role.Participant不执行hook但会清理的问题
- [#6465] 修复2.0下saga模式的context replay丢失start问题
- [#6469] 修复在sqlserver数据库下[lock_table]数据表的插入操作sql中存在的错误
- [#6496] 修复XA执行长时间SQL(或死锁SQL)没有完成回滚就释放连接
- [#6493] 修复当使用数据库为SQLServer时seata server的SQL报错
- [#6497] 修复自动装配时的seata tcc 配置类
- [#6554] 修复序列化器不固定使用对应配置序列化器的问题
- [#6555] 修复businessActionContext对io seata包的不兼容
- [#6553] 修复执行完 'ServiceTask' 后无法应用任何评估器的问题
- [#6575] 修复io.seata ActionInterceptorHandler误使用了org.apache.seata BusinessActionContextParameter类的问题
optimize:
- [#6031] 添加undo_log表的存在性校验
- [#6089] 修改RaftServerFactory语义并删除不必要的单例构建
- [#4473] rm appdata大小限制
- [#6071] 添加git信息到JAR包中
- [#6042] 增加raft模式鉴权机制
- [#6091] 优化raft鉴权时获取tc地址的方式
- [#6098] 优化acquireMetadata方法的重试逻辑
- [#6034] 使用helm图表进行部署时使用命令行中的命名空间
- [#6116] 移除 lgtm.com
- [#6164] redis 注册中心推空保护优化
- [#6174] 增加 ASF 基础配置
- [#6148] 支持 Nacos ram role 鉴权方式
- [#6181] 更新贡献指引文档
- [#6179] 移除 @author 信息
- [#6176] 更新源文件header信息
- [#6178] 更新Apache License头信息
- [#6186] 更新README.md(更新邮件列表和一些生态访问链接)
- [#6184] 更新NOTICE文件
- [#6192] 移除无用文件
- [#6194] 修复 asf.yaml 解析错误问题
- [#5399] 分支注册只在RM端
- [#6154] 控制台日志优化 "kubectl logs -f"
- [#6116] 重写NettyPoolKey的hashcode和equals,修复了channel对象池重复构建问题
- [#6195] 更新 change log 中的 seata url 为 apache/incubator-seata
- [#6200] 去除required_status_checks检查
- [#6201] 恢复required_status_checks但去除context校验
- [#6218] 移除Seata-Docker链接
- [#6227] 校验pk中不含逗号
- [#6004] 优化RM,TM连接server快速失败
- [#6243] 优化控制台页眉中的链接
- [#6238] 文件合规优化
- [#6239] 更新security policy,disclaimer 和 notice 文件
- [#6245] file模式下,在配置中心的spring配置改变时,使应用程序中的配置生效
- [#6247] 优化 asf.yml 配置
- [#6259] 修改全局会话大小超过配置的错误消息
- [#6264] 修复 jib-maven-plugin 编译失败问题
- [#6246] 在maven打包的同时打包前端资源
- [#6268] 更新console模块 npmjs 过时依赖
- [#6271] 统一git信息
- [#6265] 优化在 arm64 上构建前端失败的问题
- [#6267] 增加 Server 反序列化校验
- [#6275] 优化.asf.yaml文件中的label格式
- [#6291] 优化seata-server在idea等开发工具运行时,控制台未输出完整日志的问题
- [#6283] 增加兼容模块支持 io.seata APIs
- [#6294] 拆分前端资源打包流程到单独的profile
- [#6285] 优化控台中时间查询条件不准确的问题
- [#6297] 修复
maven-pmd-plugin
相关的问题 - [#6298] 重命名包名为 org.apache.seata
- [#6302] 增加 io.seata shade 打包方案
- [#6306] 替换一些URL 至 org/apache/seata
- [#6304] 禁用 OSSRH 发布工作流
- [#6310] seata-server兼容io.seata包
- [#6301] 升级console前端依赖及支持的nodejs版本
- [#6301] 添加saga相关的io.seata兼容性API
- [#6313] console展示版本号
- [#6315] 兼容低版本的SPI
- [#6327] 兼容 integration.http 和 integration.http.Jakarta API
- [#6328] 兼容 integration.grpc API
- [#6330] 去除 mariadb API
- [#6329] 添加 saga 子组件的 io.seata 兼容性 API
- [#6254] 优化Hessian 序列化
- [#6343] 兼容tm 模块和rm-datasource模块
- [#6345] 兼容tcc模块
- [#6332] 分发包中移除 mysql 依赖
- [#6343] 兼容 TM 模块和 rm-datasource 模块
- [#6349] 迁移 dockerhub 仓库
- [#6357] 优化协议编解码的序列化/反序列化
- [#6356] 去除健康检查页面的鉴权
- [#6360] 优化部分链接 401 的问题
- [#6350] 移除 enableDegrade 配置
- [#6366] 优化globaltransaction向下兼容性
- [#6369] 优化 arm64 ci
- [#6386] 在
ConfigurationCache
类中,将byte-buddy
替换为JDK代理 - [#6391] 禁止重复注册TCC资源
- [#6393] 元数据同步前判断版本,并增加重试功能
- [#6387] 优化tcc使用兼容
- [#6403] 优化 Config 兼容模块
- [#6402] 优化rm-datasource向下兼容
- [#6419] 优化integration-tx-api向下兼容
- [#6427] 支持spi、saga、spring模块的向下兼容
- [#6442] 阐明 if
- [#6487] 修复错误包名以及单词
- [#6458] 增加MAC地址null值检查
- [#6516] 优化代码格式
- [#6429] 移除重复注释
- [#6405] 修复 kotlin 编译失败
- [#6412] 优化 core 兼容模块
- [#6518] 优化 ConfigurationCache 代理方法
- [#6529] 优化发布插件
- [#6548] 升级byte-buddy版本至1.14.15
- [#6539] 增加组件 license
- [#6540] 排除 com.google.guava:listenablefuture 依赖
- [#6549] 支持macos arm架构单测
- [#6558] 移除 mysql-connector-java 依赖
- [#6570] 添加 notice 文件
- [#6578] registry.conf 补充raft配置
- [#6576] 移除 oracle 数据类型序列化扩展
- [#6583] 优化默认编译不依赖 Git 环境
- [#6585] 优化 compatible 模块的配置
- [#6597] 从源码中移除 binary 包
- [#6605] 订正 license 和 notice
- [#6609] 订正 notice 文件
- [#6610] 订正 notice 文件
security:
- [#6069] 升级Guava依赖版本,修复安全漏洞
- [#6144] 升级Nacos依赖版本至1.4.6
- [#6145] 升级 jettison依赖版本至1.5.4
- [#6147] 升级 kafka-clients依赖至3.6.1
- [#6339] 升级 spring mvc 和 tomcat.embed 依赖
- [#6340] 升级和整理依赖
- [#6362] 升级 Spring 相关的依赖
- [#6375] 覆盖 console 前端安全漏洞
test:
- [#6081] 添加
test-os.yml
用于测试seata在各种操作系统下的运行情况 - [#6125] TransactionTemplateTest单测unbind xid
- [#6157] 增加common模块单测覆盖率
- [#6250] 增加seata-core模块单测覆盖率
- [#6325] 修复mock-server相关测试用例
- [#6430] 增加 common 模块单元测试覆盖率
- [#6456] 调整动态配置监听测试用例
- [#6466] 支持redis的集成测试
- [#6484] 修复FileConfigurationTest和MockServerTest失败
- [#6545] 修复 TestConfigCustomSPI 兼容性测试失败
- [#6560] 修复 mockserver test,不在 Runtime.getRuntime().addShutdownHook 中关闭
- [#6565] 修复 testCompensationStateMachine 与mockServer单测冲突
refactor:
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- ptyin
- laywin
- imcmai
- DroidEye2ONGU
- funky-eyes
- Bughue
- wangliang181230
- ggbocoder
- leezongjie
- l81893521
- baiyangtx
- lightClouds917
- xingfudeshi
- PleaseGiveMeTheCoke
- sunrui1225
- PeppaO
- AlbumenJ
- dreamskyvision
- jsbxyyx
- liuqiufeng
- saberyjs
- gggyd123
- jonasHanhan
- Code-breaker1998
- yixia
- MikhailNavitski
- deung
- tanyaofei
- xjlgod
- TakeActionNow2019
- sunxunle
- bageyang
- YeonCheolGit
同时,我们收到了社区反馈的很多有价值的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.0.0 (2023-11-24,推荐版本)
Release notes
Seata 2.0.0
Seata 2.0.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
- [#5165] TCC 结构拆分,支持 API 方式接入。增加集成层模块(seata-integration-tx-api),对事务流程定义以及代理部分增强。
- [#5352] 在 TCC Business Action Context 中集成 jackson 和 gson 序列化功能
- [#5377] 使 AbstractHttpExecutor 类支持 PUT 方式的请求
- [#5396] TC 异常日志指标采集
- [#5118] 支持二阶段并行下发执行
- [#5529] docker 镜像支持注入 JVM 参数到容器
- [#3887] 增加 AT 模式的 SQLServer 数据库支持
- [#4033] 增加 ServerDB 存储模式的 SQLServer 支持
- [#5600] skywalking 插件支持根据 XID 追踪事务
- [#5357] seata console 集成 saga 设计器
- [#5717] 兼容 1.4.2 及以下版本的 file.conf/registry.conf 配置
- [#5842] 构建 docker 镜像时添加相关 git 信息,方便定位代码关系
- [#5902] 支持 IPv6 网络环境
- [#5907] 增加 AT 模式的 PolarDB-X 2.0 数据库支持
- [#5932] AT 模式支持达梦数据库
- [#5946] 增加 sqlserver 对控制台分页接口的适配
- [#5226] 支持 Raft 集群部署和事务存储模式
bugfix
- [#5677] 修复 saga 模式下 serviceTask 入参 autoType 转化失败问题
- [#5277] 修复控制台全局锁查询接口查到了已释放的锁
- [#5282] 修复并行 rm 请求处理时数组索引越界问题
- [#5294] 修复 AT 模式下 pgsql/oracle 的主键列自增的问题
- [#5298] 事务提交或回滚超时不移除 global session
- [#5304] 移除基于文件存储恢复时的 RollbackRetryTimeout 事务
- [#5310] 修复生成 update 前后镜像 sql 不对关键字转义的 bug
- [#5318] 修复 jdk8 中 G1 参数
- [#5330] 修复单元测试中发现的 bug
- [#5337] 修复 feature#5165 中关于 spring 使用环境下,多 interceptor 排序问题,同时修复 order 一致时无法使用 BeforeTransaction(AfterTransaction)事务排序问题
- [#5347] 修复控制台打印
unauthorized error
问题 - [#5355] 修复自定义 context-path 时的问题
- [#5362] 修复当 TC 端回滚返回 RollbackFailed 时,自定义 FailureHandler 的方法未执行
- [#5373] 修复客户侧事务提交前超时未执行 hook 和 failureHandler 的问题
- [#5395] 修复 AT 模式下新增字段产生的字段找不到
- [#5426] 修复不能获取 GlobalTransactional 注解问题
- [#5464] 修复 saga 模式全局事务状态始终为 Begin 的问题
- [#5478] 修复提交事务时事务已完成不抛出异常问题
- [#5490] 修复日志中不打印方法名的问题
- [#5449] 修复 Oracle XA 模式 start 重入问题
- [#5462] 在 RM 中使用
@GlobalTransactional
时,如果 RM 执行失败会抛出ShouldNeverHappenException
- [#5498] 修复 Oracle 10g 中“setDate”条件的全表扫描问题
- [#5531] 修复读取 logback 文件路径错误的问题
- [#5523] 修复 GlobalStatus=9 在 DB 存储模式无法清除的问题
- [#5558] 修复 mariadb 回滚 失败的问题
- [#5556] 修复 oracle 插入 undolog 失败问题
- [#5579] 修复 resourceId 为空时,获取 RM_CHANNELS 空指针问题
- [#5577] 修复 grpc 拦截器解绑 xid 失败问题
- [#5594] 修复 participant 情况下的重复日志
- [#5604] 修复在 DB 模式下
asyncCommit
和queueToRetryCommit
两个方法总是失败的问题 - [#5658] 修复大写和小写列名称的转义字符
- [#5661] 修复 connectionProxyXA 连接复用时 timeout 为 null
- [#5679] 修复 xxx.grouplist 和 grouplist.xxx 配置项兼容问题
- [#5715] 修复取中划线配置项错误问题
- [#5748] 修复在某些情况下,业务 sql 中主键字段名大小写与表元数据中的不一致,导致回滚失败
- [#5745] 修复不满足 sofa-rpc 中 setAttachment 方法的参数前缀要求问题
- [#5772] 修复 TableMetaCache 的一些字段类型,避免溢出
- [#5787] 解决 redis 作为注册中心时 cluster 无法自定义的 BUG
- [#5810] 修复 druid 依赖冲突导致的 XA 事务开始异常与回滚失败
- [#5821] 修复 insert executor 对关键字未转义的问题
- [#5835] bugfix: 修复当 XA 事务失败回滚后,TC 还会继续重试回滚的问题
- [#5881] 修复事务回滚时锁未删除的问题
- [#5930] 修复存储为 redis 哨兵模式下哨兵密码缺失的问题
- [#5958] 在二阶段提交状态下发生重选时需要进行解除全局锁
- [#5971] 修复某些未弃用的配置显示"已弃用"
- [#5977] 修复当 raft server 关闭时,rpc server 未关闭的问题
- [#5954] 修复保存的分支会话状态与实际的分支会话状态不一致的问题
- [#5990] 修复 redis sentinel master node 宕机时,lua 脚本未同步的问题
- [#5997] 修复全局事务钩子重复执行
- [#6018] 修复错误的 metric 上报
- [#6024] 修复控制台点击事务信息页面中的"查看全局锁"按钮之后白屏的问题
- [#6015] 修复在 spring 环境下无法集成 dubbo
- [#6049] 修复客户端在 raft 注册中心类型下,网络中断时,watch 线程未暂停一秒等待重试的问题
- [#6050] 修改 RaftServer#destroy 为等待所有关闭流程结束
- [#6033] 修复 HSFRemotingParser 中 isReference 判断逻辑,去掉关于 FactoryBean 的无用判断
optimize
- [#5966] Saga 表达式解耦并统一格式
- [#5928] 增加 Saga 模式状态机语义验证阶段
- [#4858] 重构优化 SessionManager 用法
- [#4881] 重新划分 SessionManager 和 SessionLifecycleListener 用法
- [#5273] 优化
protobuf-maven-plugin
插件的编译配置,解决高版本的命令行过长问题 - [#5278] 清理 sessionmanager 多例模式遗留代码
- [#5302] 移除启动脚本的-Xmn 参数
- [#4880] 优化提交和回滚遇到异常时的日志输出
- [#5322] 优化 SPI 加载日志
- [#5326] 为全局事务超时日志添加时间信息
- [#5328] 为全局事务和事务存储的 Redis 模式,增加对应的 lua 实现
- [#5341] 优化 gRPC TCC 模式
- [#5342] 优化 TCC fence log 清理 定时任务的 delay 参数值检查
- [#5344] 添加配置中心、注册中心类型以及存储模式日志信息
- [#5351] 优化 TCC 模式下的 RPC filter
- [#5354] 重构 RPC 集成模块
- [#5370] 优化事务失败处理 handler
- [#5431] 优化 github 工作流
- [#5461] 优化 license workflow
- [#5456] 重构 ColumnUtils 和 EscapeHandler
- [#5438] 优化 code style 检测属性
- [#5471] 优化客户侧事务日志
- [#5485] 优化 Server 日志输出
- [#4907] 调整二阶段 result 线程池大小及优化代码
- [#5487] 将 branchsession 中的 lockholder 增加 final 修饰
- [#5519] 优化 Oracle FenceHandler
- [#5501] 支持乐观锁方式更新事务状态
- [#5419] 优化镜像发布流水线支持 jdk8/17 和支持 maven 3.9.0
- [#5549] 优化 gpg key 和 发布流水线
- [#5576] 仅当 useTCCFence 设置为 true 时,才开启 Fence 表清理任务
- [#5623] 优化异步提交线程和重试线程之间可能存在的冲突
- [#5563] 优化 channel 通道可用性日志输出
- [#5553] 支持表和列元数据大小写敏感设置
- [#5644] 优化 Server 日志输出
- [#5680] 优化大小写转义符
- [#5686] 优化 license check actions
- [#5714] 优化分布式锁竞争日志
- [#5723] 优化 docker 镜像的默认时区
- [#5779] 删除无用的输出日志并统一日志输出路径
- [#5802] 优化 server 端事务隔离级别为读已提交
- [#5783] 支持 nacos 上 application name 配置
- [#5524] 支持 seata-server.sh 中的更多操作命令
- [#5836] 分离 mariadb 和 mysql 的 AT 实现
- [#5869] 优化一些小的语法
- [#5885] 优化 ConnectionProxyXA 中的日志
- [#5894] 移除无 license 组件
- [#5895] 移除 7z 压缩支持
- [#5896] 移除 mariadb.jdbc 依赖
- [#5384] 统一版本号管理,只需维护
build/pom.xml
中的版本号即可。 - [#5419] 发布基于多个 java 版本的 docker 镜像
- [#5829] 修正
codecov chart
不展示的问题 - [#5878] 优化
httpcore
和httpclient
的依赖定义 - [#5917] 升级 native-lib-loader 版本
- [#5926] 优化一些与 Apollo 相关的脚本
- [#5938] 支持 jmx 监控配置
- [#5944] 修复构建操作警告
- [#5951] 删除在 jdk17 中不支持的配置项
- [#5959] 修正代码风格问题及去除无用的类引用
- [#6002] 移除 fst 序列化模块
- [#6045] 优化 MySQL 衍生数据库判断逻辑
security
- [#5642] 增加 Hessian 序列化黑白名单
- [#5694] 修复若干 Node.js 依赖安全漏洞
- [#5801] 修复 Java 依赖安全漏洞
- [#5805] 修复序列化漏洞
- [#5868] 修复 npm package 漏洞
- [#5916] 修复 npm package 漏洞
- [#5942] 升级依赖版本
- [#5987] 升级依赖版本
- [#6013] 升级 seata-server 依赖的 spring 版本
test
- [#5308] 添加单元测试用例 [FileLoader, ObjectHolder, StringUtils]
- [#5309] 添加单元测试用例 [ArrayUtils, ConfigTools, MapUtil]
- [#5335] 添加单元测试用例 [EnhancedServiceLoader,ExtensionDefinition,SizeUtilTest,ReflectionUtil,LowerCaseLinkHashMap,FileLoader,ObjectHolder]
- [#5367] 修复 UpdateExecutorTest 单测失败问题
- [#5383] 修复多 Spring 版本测试失败
- [#5391] 添加 config 模块的单元测试用例
- [#5428] 修复 FileTransactionStoreManagerTest 单测失败问题
- [#5622] 添加单元测试用例 [ExporterType, RegistryType]
- [#5637] 添加单元测试用例 [BatchResultMessage, HeartbeatMessage, RegisterRMResponse, ResultCode, RegisterTMResponse, MergeResultMessage, MergedWarpMessage, Version]
- [#5893] 移除 sofa 测试用例
- [#5845] 升级
druid
版本,并添加test-druid.yml
用于测试 seata 与 druid 各版本的兼容性。 - [#5863] 修复单元测试在 Java21 下无法正常运行的问题。
- [#5986] 修复 zookeeper 单测失败问题
- [#5995] 添加 RaftClusterMetadataMsg 模 块的单元测试用例
- [#6001] 添加 RaftMsgExecute 模块 branch 包下的单元测试用例
- [#5996] 添加 RaftMsgExecute 模块 global 包下的单元测试用例
- [#6003] 添加 RaftMsgExecute 模块 lock 包下的单元测试用例
- [#6005] 修复 saga 异步测试未定义的行为
- [#6009] 添加 RaftServerFactory 的单元测试用例
- [#6052] 给 ut 升级 springboot 和服务器的 spring 版本
Contributors
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- xssdpgy
- albumenj
- PeppaO
- yuruixin
- CrazyLionLi
- xingfudeshi
- Bughue
- pengten
- wangliang181230
- GoodBoyCoder
- funky-eyes
- isharpever
- mxsm
- liuqiufeng
- l81893521
- dmego
- zsp419
- tuwenlin
- sixlei
- yixia
- capthua
- robynron
- XQDD
- Weelerer
- Ifdevil
- iquanzhan
- leizhiyuan
- Aruato
- ggbocoder
- ptyin
- jsbxyyx
- xxxcrel
- fengzhenhai168
- tobehardest
- leezongjie
同时,我们收到了社区反馈的很多有价值的 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
1.8.0 (2023-11-05)
Release notes
Seata 1.8.0
Seata 1.8.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
bugfix
- [#5833] 修复 XA 事务失败回滚后,TC 继续重试回滚的问题
- [#5884] 修复达梦前后镜像查询列名都加了引号导致 sql 异常的问题
- [#5931] 修复存储 redis 哨兵模式下哨兵密码缺失的问题
- [#5970] 修复某些未弃用的配置显示"已弃用"
optimize
- [#5866] 一些小的语法优化
- [#5889] 移除无 license 组件
- [#5890] 移除 7z 压缩支持
- [#5891] 移除 mariadb.jdbc 依赖
- [#5828] 修正
codecov chart
不展示的问题 - [#5927] 优化一些与 Apollo 相关的脚本
- [#5918] 修正 codecov.yml 不标准属性
- [#5939] 支持 jmx 监控配置
security
test
- [#5888] 移除 sofa 测试用例
- [#5831] 升级
druid
版本,并添加test-druid.yml
用于测试 seata 与 druid 各版本的兼容性。 - [#5862] 修复单元测试在 Java21 下无法正常运行的问题。
- [#5914] 升级 native-lib-loader 版本
- [#5960] 修复 zookeeper 单测失败问题
- [#5981] 固定
seata-server
所使用有 jedis 版本
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
同时,我们收到了社区反馈的很多有价值的 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
1.7.1 (2023-09-05,推荐版本)
Release notes
Seata 1.7.1
Seata 1.7.1 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
- [#5803] docker 镜像支持注入 JVM 参数到容器
bugfix
- [#5749] 修复在某些情况下,业务 sql 中主键字段名大小写与表元数据中的不一致,导致回滚失败
- [#5762] 修复 TableMetaCache 的一些字段类型,避免溢出
- [#5769] 修复不满足 sofa-rpc 中 setAttachment 方法的参数前缀要求问题
- [#5814] 修复 druid 依赖冲突导致的 XA 事务开始异常与回滚失败
- [#5771] 修复 insert executor 对关键字未转义的问题
- [#5819] 修复 oracle alias 解析异常
optimize
- [#5804] 优化 docker 镜像的默认时区
- [#5815] 支持 Nacos applicationName 属性
- [#5820] 统一日志输出目录
- [#5822] 升级过时的 github actions
security
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
同时,我们收到了社区反馈的很多有价值的 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
1.7.0 (2023-07-11,推荐版本)
- 1.7.0 定位为 Seata 重要的稳定性版本,我们对现存的 issue 进行了深度的跟踪和解决。
- 对 jdk(8,11,17)、Spring(5.2.x,5.3.x,6.0. x)、platform(amd64、arm64)进行了交叉兼容。
- 对低版本 conf 配置进行了兼容适配。
- 对安全问题进行了深度治理。
- 发布了针对针对不同需求的 docker 镜像。https://hub.docker.com/repository/docker/seataio/seata-server/tags?page=1&ordering=last_updated
Release notes
Seata 1.7.0
Seata 1.7.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
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 模式下 pgsql 的主键列自增的问题
- [#5299] 修复 TC 端重试回滚或重试提交超时 GlobalSession 的删除问题
- [#5307] 修复生成 update 前后镜像 sql 不对关键字转义的 bug
- [#5311] 移除基于文件存储恢复时的 RollbackRetryTimeout 事务
- [#4734] 修复 AT 模式下新增字段产生的字段找不到
- [#5316] 修复 jdk8 中 G1 参数
- [#5321] 修复当 TC 端回滚返回 RollbackFailed 时,自定义 FailureHandler 的方法未执行
- [#5332] 修复单元测试中发现的 bug
- [#5145] 修复 saga 模式全局事务状态始终为 Begin 的问题
- [#5413] 修复 arm64 平台下的 JDK 和 Spring 兼容问题
- [#5415] 修复客户侧事务提交前超时未执行 hook 和 failureHandler 的问题
- [#5447] fix oracle xa mode cannnot be used By same database
- [#5472] 在 RM 中使用
@GlobalTransactional
时,如果 RM 执行失败会抛出ShouldNeverHappenException
- [#5535] 修复读取 logback 文件路径错误的问题
- [#5538] 修复提交事务时事务已完成不抛出异常问题
- [#5539] 修复 Oracle 10g where 条件包含 setDate 全表扫描问题
- [#5540] 修复 GlobalStatus=9 在 DB 存储模式无法清除的问题
- [#5552] 修复 mariadb 回滚失败的问题
- [#5583] 修复 grpc xid 解绑问题
- [#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
test
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- xssdpgy
- albumenj
- PeppaO
- yuruixin
- dmego
- CrazyLionLi
- xingfudeshi
- Bughue
- pengten
- wangliang181230
- GoodBoyCoder
- funky-eyes
- isharpever
- ZhangShiYeChina
- mxsm
- l81893521
- liuqiufeng
- yixia
- jumtp
同时,我们收到了社区反馈的很多有价值的 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
1.6.1 (2022-12-21)
Release notes
Seata 1.6.1
Seata 1.6.1 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
- [#5115] 支持
spring-boot:3.x
bugfix
- [#5179] 修复使用 Eureka 作为注册中心 ClassNotFoundException 问题
optimize
- [#5120] 统一 yml 文件中的配置项格式
- [#5180] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建 bean 用 static 修饰
- [#5182] 修复 Saga 可视化设计器 GGEditor 安全漏洞
- [#5183] 优化配置开关的默认值
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。
Link
- 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
1.6.0 (2022-12-17)
Release notes
Seata 1.6.0
Seata 1.6.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
- [#4863] 支持 oracle 和 postgresql 多主键
- [#4649] seata-server 支持多注册中心
- [#4779] 支持 Apache Dubbo3
- [#4479] TCC 注解支持添加在接口和实现类上
- [#4877] client sdk 支持 jdk17
- [#4914] 支持 mysql 的 update join 联表更新语法
- [#4542] 支持 oracle timestamp 类型
- [#5111] 支持 Nacos contextPath 配置
- [#4802] dockerfile 支持 arm64
bugfix
- [#4780] 修复超时回滚成功后无法发送 TimeoutRollbacked 事件
- [#4954] 修复 output 表达式错误时,保存执行结果空指针异常
- [#4817] 修复高版本 springboot 配置不标准的问题
- [#4838] 修复使用 Statement.executeBatch() 时无法生成 undo log 的问题
- [#4533] 修复 handleRetryRollbacking 的 event 重复导致的指标数据不准确
- [#4912] 修复 mysql InsertOnDuplicateUpdate 列名大小写不一致无法正确匹配
- [#4543] 修复对 Oracle 数据类型 nclob 的支持
- [#4915] 修复获取不到 ServerRecoveryProperties 属性的问题
- [#4919] 修复 XID 的 port 和 address 出现 null:0 的情况
- [#4928] 修复 rpcContext.getClientRMHolderMap NPE 问题
- [#4953] 修复 InsertOnDuplicateUpdate 可绕过修改主键的问题
- [#4978] 修复 kryo 支持循环依赖
- [#4985] 修复 undo_log id 重复的问题
- [#4874] 修复 OpenJDK 11 启动失败
- [#5018] 修复启动脚本中 loader path 使用相对路径导致 server 启动失败问题
- [#5004] 修复 mysql update join 行数据重复的问题
- [#5032] 修复 mysql InsertOnDuplicateUpdate 中条件参数填充位置计算错误导致的镜像查询 SQL 语句异常问题
- [#5033] 修复 InsertOnDuplicateUpdate 的 SQL 语句中无插入列字段导致的空指针问题
- [#5038] 修复 SagaAsyncThreadPoolProperties 冲突问题
- [#5050] 修复 Saga 模式下全局状态未正确更改成 Committed 问题
- [#5052] 修复 update join 条件中占位符参数问题
- [#5031] 修复 InsertOnDuplicateUpdate 中不应该使用 null 值索引作为查询条件
- [#5075] 修复 InsertOnDuplicateUpdate 无法拦截无主键和唯一索引的 SQL
- [#5093] 修复 seata server 重启后 accessKey 丢失问题
- [#5092] 修复当 seata and jpa 共同使用时, AutoConfiguration 的顺序不正确的问题
- [#5109] 修复当 RM 侧没有加@GlobalTransactional 报 NPE 的问题
- [#5098] Druid 禁用 oracle implicit cache
- [#4860] 修复 metrics tag 覆盖问题
- [#5028] 修复 insert on duplicate SQL 中 null 值问题
- [#5078] 修复 SQL 语句中无主键和唯一键拦截问题
- [#5097] 修复当 Server 重启时 accessKey 丢失问题
- [#5131] 修复 XAConn 处于 active 状态时无法回滚的问题
- [#5134] 修复 hikariDataSource 自动代理在某些情况下失效的问题
- [#5163] 修复高版本 JDK 编译失败的问题
optimize
- [#4681] 优化竞争锁过程
- [#4774] 优化 seataio/seata-server 镜像中的 mysql8 依赖
- [#4750] 优化 AT 分支释放全局锁不使用 xid
- [#4790] 添加自动发布 OSSRH github action
- [#4765] mysql8.0.29 版本及以上 XA 模式不持 connection 至二阶段
- [#4797] 优化所有 github actions 脚本
- [#4800] 添加 NOTICE 文件
- [#4761] 使用 hget 代替 RedisLocker 中的 hmget
- [#4414] 移除 log4j 依赖
- [#4836] 优化 BaseTransactionalExecutor#buildLockKey(TableRecords rowsIncludingPK) 方法可读性
- [#4865] 修复 Saga 可视化设计器 GGEditor 安全漏洞
- [#4590] 自动降级支持开关支持动态配置
- [#4490] tccfence 记录表优化成按索引删除
- [#4911] 添加 header 和 license 检测
- [#4917] 升级 package-lock.json 修复漏洞
- [#4924] 优化 pom 依赖
- [#4932] 抽取部分配置的默认值
- [#4925] 优化 javadoc 注 释
- [#4921] 修复控制台模块安全漏洞和升级 skywalking-eyes 版本
- [#4936] 优化存储配置的读取
- [#4946] 将获取锁时遇到的 sql 异常传递给客户端
- [#4962] 优化构建配置,并修正 docker 镜像的基础镜像
- [#4974] 取消 redis 模式下,查询 globalStatus 数量的限制
- [#4981] 优化当 tcc fence 记录查不到时的错误提示
- [#4995] 修复 mysql InsertOnDuplicateUpdate 后置镜像查询 SQL 中重复的主键查询条件
- [#5047] 移除无用代码
- [#5051] 回滚时 undolog 产生脏写需要抛出不再重试(BranchRollbackFailed_Unretriable)的异常
- [#5075] 拦截没有主键及唯一索引值的 insert on duplicate update 语句
- [#5104] ConnectionProxy 脱离对 druid 的依赖
- [#5124] 支持 oracle 删除 TCC fence 记录表
- [#4468] 支持 kryo 5.3.0
- [#4807] 优化镜像和 OSS 仓库发布流水线
- [#4445] 优化事务超时判断
- [#4958] 优化超时事务 triggerAfterCommit() 的执行
- [#4582] 优化 redis 存储模式的事务排序
- [#4963] 增加 ARM64 流水线 CI 测试
- [#4434] 移除 seata-server CMS GC 参数
test
- [#4411] 测试 Oracle 数据库 AT 模式下类型支持
- [#4794] 重构代码,尝试修复单元测试
DataSourceProxyTest.getResourceIdTest()
- [#5101] 修复 zk 注册和配置中心报 ClassNotFoundException 的问题
DataSourceProxyTest.getResourceIdTest()
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- renliangyu857
- wangliang181230
- funky-eyes
- tuwenlin
- conghuhu
- a1104321118
- duanqiaoyanyu
- robynron
- lcmvs
- github-ganyu
- 1181954449
- zw201913
- wingchi-leung
- AlexStocks
- liujunlin5168
- pengten
- liuqiufeng
- yujianfei1986
- Bughue
- AlbumenJ
- doubleDimple
- jsbxyyx
- tuwenlin
- CrazyLionLi
- whxxxxx
- neillee95
- crazy-sheep
- zhangzq7
- l81893521
- zhuyoufeng
- xingfudeshi
- odidev
- miaoxueyu
同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。
Link
- 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
1.5.2 (2022-07-12)
Release notes
Seata 1.5.2
Seata 1.5.2 发布。
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
- [#4661] 支持根据 xid 负载均衡算法
- [#4676] 支持 Nacos 作为注册中心时,server 通过挂载 SLB 暴露服务
- [#4642] 支持 client 批量请求并行处理
- [#4567] 支持 where 条件中 find_in_set 函数
bugfix
- [#4515] 修复 develop 分支 SeataTCCFenceAutoConfiguration 在客户端未使用 DB 时,启动抛出 ClassNotFoundException 的问题。
- [#4661] 修复控制台中使用 PostgreSQL 出现的 SQL 异常
- [#4667] 修复 develop 分支 RedisTransactionStoreManager 迭代时更新 map 的异常
- [#4678] 修复属性 transport.enableRmClientBatchSendRequest 没有配置的情况下缓存穿透的问题
- [#4701] 修复命令行参数丢失问题
- [#4607] 修复跳过全局锁校验的缺陷
- [#4696] 修复 oracle 存储模式时的插入问题
- [#4726] 修复批量发送消息时可能的 NPE 问题
- [#4729] 修复 AspectTransactional.rollbackForClassName 设置错误
- [#4653] 修复 INSERT_ON_DUPLICATE 主键为非数值异常
optimize
- [#4650] 修复安全漏洞
- [#4670] 优化 branchResultMessageExecutor 线程池的线程数
- [#4662] 优化回滚事务监控指标
- [#4693] 优化控制台导航栏
- [#4700] 修复 maven-compiler-plugin 和 maven-resources-plugin 执行失败
- [#4711] 分离部署时 lib 依赖
- [#4720] 优化 pom 描述
- [#4728] 将 logback 版本依赖升 级至 1.2.9
- [#4745] 发行包中支持 mysql8 driver
- [#4626] 使用
easyj-maven-plugin
插件代替flatten-maven-plugin
插件,以修复shade
插件与flatten
插件不兼容的问题 - [#4629] 更新 globalSession 状态时检查更改前后的约束关系
- [#4662] 优化 EnhancedServiceLoader 可读性
test
- [#4544] 优化 TransactionContextFilterTest 中 jackson 包依赖问题
- [#4731] 修复 AsyncWorkerTest 和 LockManagerTest 的单测问题。
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- pengten
- YSF-A
- tuwenlin
- 2129zxl
- Ifdevil
- wingchi-leung
- liurong
- opelok-z
- funky-eyes
- Smery-lxm
- lvekee
- doubleDimple
- wangliang181230
- Bughue
- AYue-94
- lingxiao-wu
- caohdgege
同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。
Link
- 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
1.5.1 (2022-05-17)
Release notes
Seata 1.5.1
Seata 1.5.1 发布。
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
#4115 支持用户控制台 #3652 支持 APM SkyWalking 集成 #3472 添加 redisLocker 的 lua 模式 #3575 支持对锁和会话不同存储的混合使用 #3009 支持 server 端以 springboot 的方式的启动 #3374 支持 MySQL INSERT ON DUPLICATE KEY UPDATE #3642 TCC 模式支持使用 API 的形式进行二阶段参数传递 #3064 支持可配置 GlobalTransactionInterceptor 和 TccActionInterceptor 的 order 值 #2852 支持自定义 GlobalTransactionScanner 的扫描对象 #3683 支持 Redis 分布式锁来避免多 TC 竞争执行任务 #3545 TCC 模式支持幂等控制、防悬挂和空回滚 #3823 TCC 模式二阶段方法参数列表支持自定义 #3642 TCC 模式一阶段支持 BusinessActionContext 隐式传递 #3856 支持 Edas-Hsf RPC 框架 #3869 支持从环境 ENV 获取配置 #2568 支持 GlobalTransactionInterceptor 配置切面表达式 #3886 支持注册中心注册 ip 的网络偏好设置 #3906 支持 SPI 卸载 #3668 支持 kotlin 协程 #3968 支持 bRPC-java RPC 框架 #4268 增加控制台 Global Session 页面 File 模式实现 #4281 增加控制台 Global Session 页面和 Global LockRedis 模式实现 #4293 增加控制台 Global Lock 页面 File 模式实现 #4335 实现配置中心上传配置交互脚本(nacos,etcd3) #4360 实现配置中心上传配置交互脚本(apollo,consul,zk) #4320 实现控制台 db 模式全局事务、锁查询接口 #4435 控制台前端页面实现 #4480 实现 DefaultAuthSigner 的默认签名加密方法 #3487 增加分布式锁的 DB 实现 #3951 支持 zstd 压缩 #2838 Saga 支持 springboot 项目的自动配置
bugfix
#3497 修复 TCC 模式并发量较大时线程池导致的超时问题 #3686 修复 Apollo 集群配置项错误及 NPE 错误 #3716 修复 findTargetClass 方法的错误 #3773 修复 consul 注册中心在自定义集群名下无法获取 TC 集群 #3695 修复 mariadb 无法创建 XA 连接的问题 #3783 修复 store mode 不生效问题 #3740 修复在某些情况下,当 Saga 事务结束时 LocalThread 未被清除的问题 #3792 修复 Server 无法获取 Redis host 的问题 #3828 修复 StringUtils 抛出 StackOverflowError 的问题 #3817 修复 TC 在 SkyWalking 拓扑图节点不汇聚的问题 #3803 修复 ReflectionUtil 抛出不预期异常问题 #3879 修复 PosrgreSQL 多 schema 无法找到 channel 问题 #3881 修复不存在的相同 DataId 不同默认值返回相同值的问题 #3897 修复 FastjsonUndoLogParser 中 localdatatime 类型不能回滚的问题 #3901 修复 seataio/seata-server 镜像中 servlet-api 冲突无法启动问题 #3931 修复 线程池拒绝执行情况下,dump 内存文件名和路径错误的问题 #3949 修复 nacos-config.py 空白选项的问题和内容丢失的问题 #3988 修复 nacos 的密码带有特殊字符导致用户名不存在问题 #3978 修复 future timeout 引发的 NPE 问题 #3998 修复 jedis multi.exec 的 NPE 问题 #4011 修复 springboot 下无法获取 distributed-lock-table 配置 #4023 修复 dubbo 部分场景存在 xid 未清除的问题 #4032 修复 server 端的 ShutdownHook 在资源释放时,ApplicationContext 已关闭的问题 #4039 修复本地事务抛出异常后 RM 没有清除 xid 问题 #4074 修复 XA 模式资源悬挂问题 #4107 修复项目构建时的死锁问题 #4158 修复 logback 无法加载到 RPC_PORT 的问题 #4162 修复 Redis 注册中心内置配置名导致启动报错问题 #4165 修复 StringUtils.toString(obj) 当 obj 是基本数据数组时,抛出 ClassCastException 的问题 #4169 修复 XA 模式 originalConnection 已关闭,导致二阶段无法执行 #4177 修复当事务超时且 TM 发起 commit 决议时,意外造成全局锁释放的问题 #4174 修复删除 undolog 时连接关闭问题 #4189 修复 kafka-appender.xml 和 logstash-appender.xml 配置文件表达式中的默认值问题 #4213 修复部分"sessionMode"代码未执行导致启动失败问题 #4220 修复 zstd-compressor 模块未合并到 seata-all 中的问题 #4222 修复字段列表为空时,插入语句无法回滚的问题 #4253 修复 UpdateExecutor 只存储 set 字段问题 #4233 修复 lock 和 branch 数据残留问题 #4278 修复 MySQL 的 Blob/Clob/NClob 数据类型无法反序列化的问题 #4302 修复 ORM 可能存在获取不到自增主键值的问题 #4308 修复 PostgreSQL 多个 schema 下存在相同表的 TableMetaCache 解析问题 #4326 修复使用 MariaDB 驱动程序时无法构建 Executor 的问题 #4355 修复使用 MySQL Loadbalance 模式 resourceId 被误判为 resourceIds 的问题 #4310 修复通过 SELECT LAST_INSERT_ID 获取数据库自增 id 失败的问题 #4331 修复使用 ONLY_CARE_UPDATE_COLUMNS 配置可能出现的脏写校验异常 #4408 修复容器环境中设置环境变量无效的问题 #4441 修复 Redis 存储模式下查询时未关闭 Pipeline 和分支注册后添加分支 session 时 branchSessions 为 null 的问题 #4438 修复 file 模式下 GlobalSession 在延迟删除的情况下无法被正常删除的问题 #4432 修复 ServerApplicationListener 无法读取配置中心配置的问题 #4452 修复 service.disableGlobalTransaction 配置的日志输出错误 #4449 修复 Redis 分页查询 NPE 问题,优化 readession 限制查询条数后均衡返回结果 #4459 修复 Oracle 和 PostgreSQL 数据库生成前后镜像失败的问题 #4471 修复运行时切换事务分组对应集群引起的错误 #4474 修复 MySQL 多位 Bit 类型 字段回滚错误 #4492 修复 eureka 注册中心无法动态更新服务列表的问题 #4228 修复 TC 获取不同 ip 的 RM 连接导致的 xa 模式资源悬挂问题 #4561 修复 allSessions/findGlobalSessions 某些情况下返回 null 的问题 #4505 修复 time 类型的 fastjson 序列化问题 #4579 修复 MySQLInsertOrUpdateExecutor 的 prepareUndoLogAll #4005 修复 PK 约束名称与属于 PK 的唯一索引名称不同 #4062 修复 Saga 复杂参数序列化问题 #4199 修复 RPC TM 请求超时问题 #4352 修复 SQL 解析器的一些问题 #3687 修复某些场景下无法重试全局锁的问题
optimize/test
#3700 优化 buildLockKey 方法的效率 #3615 优化二阶段同步提交时全局事务记录可异步删除 #3689 修正 script/server/config/file.properties 中属性编写错误 #3588 优化数据源自动代理的流程 #3528 优化 Redis 存储模式内存占用 #3626 移除重复的 changeStatus 代码 #3722 添加分布式锁的代码 #3713 统一 enableClientBatchSendRequest 的默认值 #3120 优化 Configuration 的部分代码,并添加单元测试 #3735 当 TC 只有单个节点时,不进行非必要的负载均衡操作 #3770 关闭一些未关闭的对象 #3627 使用 TreeMap 替换 TableMeta 中的 LinkedHashMap 以兼容高版本的 MySQL #3760 优化 seata-server 的 logback 相关的配置 #3765 将添加配置类的操作从 AutoConfiguration 转移到 EnvironmentPostProcessor 中并提升该操作的优先级 #3730 重构 TCC 模式相关的代码 #3820 在表 tcc_fence_log 中新增字段 action_name #3738 JacksonUndoLogParser 支持解析 LocalDateTime(支持微秒时间) #3794 优化 seata-server 的打包配置,修正 Dockerfile 的错误配置,并将 Dockerfile 也打包进去 #3795 优化 zkRegistrylookup 方法性能 #3840 优化 apm-skwalking 操作方法生成规则 #3834 优化 seata-distribution 增加 apm-seata-skywalking 包 #3847 优化 ConcurrentHashMap.newKeySet 替换 ConcurrentSet #3849 优化字符串拼接 #3890 优化 insert 后镜像仅查询插入字段 #3895 优化解码异常 #3212 优化解析 OrderBy,Limit 条件代码结构 #3898 增加 docker maven 插件 #3904 增强 metrics 和修复 seata-server 单测不运行的问题 #3905 优化 nacos-config.sh 支持 ash #3935 优化以 Redis 为注册中心时,发送多条命令使用 pipeline #3916 优化注册中心服务节点列表地址探活 #3918 缓存 Field 和 Method 的反射结果 #3311 支持从 consul 单一 key 中读取所有配置 #3907 优化设置 Server 端口 #3912 支持通过 env 配置 JVM 参数 #3939 使用 map 优化大量的判断代码 #3955 添加启动 banner #4266 修改由于修改记录过多导致分支注册及 lock 释放失败的问题 #3949 nacos-config.py 支持默认参数和选择性输入参数 #3954 移除对 druid 依赖中过期方法的调用 #3981 优化服务端口的优先级设置 #4013 优化可用 TC 地址检测 #3982 优化 readme 文档和升级 POM 依赖 #3991 关闭 SpringBoot 下无用的 fileListener #3994 优化 tcc_fence_log 表定时删除任务的机制 #3327 支持从 etcd3 单一 key 中读取所有配置 #4001 支持从 Nacos,Zookeeper,Consul,Etcd3 中读取 yml #4017 优化文件配置 #4018 优化 Apollo 配置 #4021 优化 Nacos、Consul、Zookeeper、Etcd3 配置 #4055 优化 NetUtil 的 getLocalAddress0 方法 #4086 分支事务支持懒加载并优化任务调度 #4056 优化 DurationUtil #4103 减少分支事务注册无需竞争锁时的内存占用 #3733 优化本地事务下的锁竞争机制 #4144 支持默认的事务分组配置 #4157 优化客户端批量发送请求 #4191 RPC 请求超时时间支持配置化 #4216 非 AT 模式无须清理 undolog 表 #4176 优化 Redis 注册中心存储,改用自动过期 key 替代 hash. #4196 TC 批量响应客户端 #4212 控制台接口合并优化 #4237 当所有的 before image 均为空的时候,跳过 checkLock 的步骤 #4251 优化部分代码处理 #4262 优化 TCC 模块代码处理 #4235 优化 eureka 注册中心保存实例信息 #4277 优化 Redis-pipeline 模式本地事务下的锁竞争机制 #4284 支持 MSE-Nacos 的 ak/sk 鉴权方式 #4299 优化异常提示 #4300 优化 NettyRemotingServer 的 close() #4270 提高全局提交和全局回滚的性能,分支事务清理异步化 #4307 优化在 TCC 模式减少不必要的全局锁删除 #4303 tcc_fence_log 表悬挂日志记录异步删除 #4328 配置上传脚本支持注释 #4305 优化 TC 端全局锁获取失败时的日志打印 #4336 添加 AT 模式不支持的 SQL 语句异常提示 #4359 支持配置元数据读取环境变量 #4353 seata-all.jar 瘦身 #4393 Redis & DB 模式下启动不需要 reload #4247 在 github actions 上,添加基于 java17 和 springboot 各版本的测试 #4400 异步二阶段任务支持并行处理提升效率 #4391 commit/rollback 重试超时事件 #4282 优化回滚镜像构建逻辑 #4276 修复 seata-test 单测不运行的问题 #4407 file 模式下无需延迟删除 globasession #4436 优化 file 模式下的 global session 查询接口 #4431 优化 Redis 模式查询 globalSession 限制查询条数 #4465 优化 TC 批量响应客户端模式客户端版本传输方式 #4469 优化控制台 db 模式下获取配置的方式 #4478 优化 Nacos 配置和注册元数据属性 #4522 优化 GC 参数 #4517 增强失败/超时状态的监控 #4451 fileSessionManager 改为单例并优化任务线程池处理 #4551 优化 metrics rt 统计问题 #4574 支持 accessKey/secretKey 配置自动注入 #4583 DefaultAuthSigner 的默认签名加密方法替换为 HmacSHA256 #4591 优化开关默认值 #3780 升级 Druid 版本 #3797 支持在 Try 方法外由用户自己实例化 BusinessActionContext #3909 优化 collectRowLocks 方法 #3763 优化 github actions #4345 修正包目录名 #4346 优化服务器日志并移除 lombok #4348 统 一管理 maven 插件及其版本 #4354 优化 saga 测试用例 #4227 统一管理依赖的版本,并且升级 spring-boot 到 2.4.13 #4453 升级 eureka-clients 和 xstream 的版本 #4481 优化 nacos 配置和命名属性 #4477 优化调试级别日志并修复拼写错误 #4484 优化 TM/RM 注册时 TC 的日志打印 #4458 修复 metrices 模块 README.md 的配置遗漏问题 #4482 #3654 修复 typos #3880 贡献文档增加中文版本 #4134 初始化控制台基础代码 #3870 让 seata-bom 成为真正的 Bill-Of-Material #3889 支持注册中心添加心跳 #3702 修改注释 #4608 #3110 修复测试用例 #4163 完善开发者奉献文档 #3678 补充遗漏的配置及新版本 pr 登记 md 文件 #4449 优化 Redis limit 并修复 Redis 分页问题 #4535 修复 FileSessionManagerTest 单测错误 #4025 优化潜在的数据库资源泄露
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- wangliang181230
- funky-eyes
- lvekee
- caohdgege
- lightClouds917
- objcoding
- siyu
- GoodBoyCoder
- pengten
- Bughue
- doubleDimple
- zhaoyuguang
- liuqiufeng
- jsbxyyx
- lcmvs
- onlinechild
- xjlgod
- h-zhi
- tanzzj
- miaoxueyu
- selfishlover
- tuwenlin
- dmego
- xiaochangbai
- Rubbernecker
- ruanun
- huan415
- drgnchan
- cmonkey
- 13414850431
- ls9527
- xingfudeshi
- spilledyear
- kaka2code
- iqinning
- yujianfei1986
- elrond-g
- jameslcj
- zhouchuhang
- xujj
- mengxzh
- portman
- anselleeyy
- wangyuewen
- imherewait
- wfnuser
- zhixing
同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。
Link
- 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
1.4.2 (2021-04-26)
Release notes
Seata 1.4.2
Seata 1.4.2 发布。
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
此版本更新如下:
feature
- [#2933] 支持 mysql antlr sqlparser
- [#3228] 支持自定义序列化插件
- [#3172] 支持 AT 模式 undo_log 压缩模式
- [#3372] 支持 saga 模式下用户自定义是否更新最后一次重试日志
- [#3411] 支持 seata-server 线程池参数可配置
- [#3348] 支持 TC 存储模式使用 redis-sentinel
- [#2667] 支持使用 db 和 redis 存储模式时密码的加解密
- [#3427] 支持分布式锁接口
- [#3443] 支持将 seata-server 的日志发送到 logstash 或 kafka 中
- [#3486] 支持 Metrics 增加事务分组属性
- [#3317] 支持当 zookeeper 作为配置中心时从单 node 获取全部配置
- [#3516] 支持 consul 作为注册中心和配置中心时的 acl-token
- [#3116] 支持配置 apollo 配置中心配置 configService 和 cluster
- [#3468] 支持 saga 模式下任务循环执行
- [#3447] 支持日志框架中事务上下文的打印
bugfix
- [#3258] 修复 AsyncWorker 潜在的 OOM 问题
- [#3293] 修复配置缓存获取值类型不匹配的问题
- [#3241] 禁止在多 SQL 的情况下使用 limit 和 order by 语法
- [#3406] 修复当 config.txt 中包含特殊字符时无法推送至 nacos 的问题
- [#3367] 修复最后一个 XA 分支二阶段时偶发无法回滚的异常
- [#3418] 修 复 getGeneratedKeys 可能会取到历史的主键的问题
- [#3448] 修复多个锁竞争失败时,仅删除单个锁,并优化锁竞争逻辑提升处理性能
- [#3408] 修复 jar 运行模式第三方依赖分离打包时的 NPE 问题
- [#3431] 修复在读取配置时 Property Bean 可能未初始化的问题
- [#3413] 修复回滚到 savepoint 以及 releaseSavepoint 的逻辑
- [#3451] 修复 autoCommit=true,全局锁竞争失败时的脏写问题
- [#3481] 修复当 consul client 抛出异常时导致刷新任务中断的问题
- [#3491] 修复 README.md 文件中的拼写错误
- [#3531] 修复 RedisTransactionStoreManager 获取 brachTransaction 可能的 NPE 问题
- [#3500] 修复 oracle 和 postgreSql 无法获取 column info 的问题
- [#3560] 修复 Committing 状态的事务异步任务没有时间阈值和无法进行事务恢复的问题
- [#3555] 通过 setBytes 代替 setBlob,避免高版本 jdbc 驱动工作异常
- [#3540] 修复 server 发布打包时缺失文件的问题
- [#3597] 修复可能的 NPE 问题
- [#3568] 修复自动数据源代理因 ConcurrentHashMap.computeIfAbsent 导致的死锁问题
- [#3402] 修复更新 SQL 中字段名含有库名无法解析更新列的问题
- [#3464] 修复测试用例空指针异常和 StackTraceLogger 中错误的日志格式.
- [#3522] 修复当 DML 影响行数为 0 时注册分支和插入 undo_log 的问题
- [#3635] 修复 zookeeper 配置变更无法推送通知的问题
- [#3133] 修复某些场景下无法重试全局锁的问题
- [#3156] 修复嵌套代理类无法 获取 target 的问题