发布概览
主要新增特性:支持oracle和pgsql多主键;支持seata-server服务注册多注册中心;支持dubbo3;支持jdk17;扩展update join语法支持;扩展多种oracle timestamp类型;支持ARM64镜像。大幅度提升基于DB的存储性能。
此次 release 修改文件数:398,累计合并PR 87个,共34人参与代码 commit 人数。
1.6.0 milestone:https://github.com/seata/seata/milestone/23
seata-server:https://github.com/seata/seata/releases/download/v1.6.0/seata-server-1.6.0.tar.gz
docker: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:
- [#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()
Relase Notes英文版参考:https://github.com/seata/seata/releases/tag/v1.6.0
致谢
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- renliangyu857
- wangliang181230
- a364176773
- 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和建议,非常感谢大家。
社区讨论群
常用链接
- Seata:https://github.com/seata/seata
- Samples:https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
- 官网:https://seata.io
投稿
欢迎大家将 Seata 相关的实践文章投稿至:slievrly@gmail.com