Seata 1.6.0 正式发布,大幅度提升存储性能
作者:Seata 社区
用户登记* *
欢迎已使用用户在此链接登记,便于我们更好的针对业务场景优化:
https://github.com/seata/seata/issues/1246
发布概览* *
主要新增特性:支持 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] 支持 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
官网:
投稿
欢迎大家将 Seata 相关的实践文章投稿至:slievrly@gmail.com
版权声明: 本文为 InfoQ 作者【阿里巴巴云原生】的原创文章。
原文链接:【http://xie.infoq.cn/article/db511f96ec54671cb934e41f1】。文章转载请联系作者。
评论