Seata 1.4.2 正式发布,向打工人致敬

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: Seata 1.4.2 正式发布,向打工人致敬

1.png

Seata 1.4.2 正式发布。Seata 社区向所有打工人致敬,祝大家有一个愉快的假期。

用户登记
欢迎已使用用户在此链接登记,便于我们更好的针对业务场景优化:

https://github.com/seata/seata/issues/1246

发布概览
此版本梳理了大部分用户反馈的 bug,对沉积的大部分问题进行了修复。同时增加了mysql antlr sqlparser、undo log压缩、redis-sentinel存储模式、自定义序列化插件、db/redis 密码加解密等特性支持。

此次 release 修改文件数:361,最终代码变动:+116584,-1862 ,参与代码 commit 人数:40+,合并pr数:93,其中:feature:15,bugfix:29,优化重构测试及其他:49。

此版本是目前参与代码提交人数最多和贡献代码最多的版本,感谢大家的贡献。

此版本的详细更新如下
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的问题

optimize:

  • [#3341] 优化获取指定配置文件的路径格式问题
  • [#3385] 优化 GitHub Actions 配置,修复单测失败问题
  • [#3175] 支持雪花算法时钟回拨
  • [#3291] 优化mysql连接参数
  • [#3336] 支持使用System.getProperty获取Netty配置参数
  • [#3369] 添加github action的dockerHub秘钥
  • [#3343] 将CI程序从Travis CI迁移到Github Actions
  • [#3397] 增加代码变更记录
  • [#3303] 支持从nacos单一dataId中读取所有配置
  • [#3380] 优化 globalTransactionScanner 中的 DISABLE_GLOBAL_TRANSACTION listener
  • [#3123] 优化 seata-server 打包策略
  • [#3415] 优化 maven 打包时清除 distribution 目录
  • [#3316] 优化读取配置值时属性bean未初始化的问题
  • [#3420] 优化枚举类的使用并添加单元测试
  • [#3533] 支持获取当前事务角色
  • [#3436] 优化SQLType类中的错别字
  • [#3439] 调整springApplicationContextProvider order以使其可以在xml bean之前被调用
  • [#3248] 优化负载均衡配置迁移到client节点下
  • [#3441] 优化starter的自动配置处理
  • [#3466] 优化使用equalsIgnoreCase() 进行字符串比较
  • [#3476] 支持 server 参数传入hostname时自动将其转换为 ip
  • [#3236] 优化执行解锁操作的条件,减少不必要的 unlock 操作
  • [#3485] 删除 ConfigurationFactory 中无用的代码
  • [#3505] 删除 GlobalTransactionScanner 中无用的 if 判断
  • [#3544] 优化无法通过Statement#getGeneratedKeys时,只能获取到批量插入的第一个主键的问题
  • [#3549] 统一DB存储模式下不同表中的xid字段的长度
  • [#3551] 调大RETRY_DEAD_THRESHOLD的值以及设置成可配置
  • [#3589] 使用JUnit API做异常检查
  • [#3601] 使LoadBalanceProperties与spring-boot:2.x及以上版本兼容
  • [#3513] Saga SpringBeanService调用器支持切换 json 解析器
  • [#3318] 支持 CLIENT_TABLE_META_CHECKER_INTERVAL 可配置化
  • [#3371] 支持 metric 按 applicationId 分组
  • [#3459] 删除重复的ValidadAddress代码
  • [#3215] 优化seata-server 在file模式下启动时的reload逻辑
  • [#3631] 优化 nacos-config.py 脚本的入参问题
  • [#3638] 优化 update 和 delete 的 SQL 不支持 join 的错误提示
  • [#3523] 优化当使用oracle时调用releaseSavepoint()方法报异常的问题
  • [#3458] 还原已删除的md
  • [#3574] 修复EventBus.java文件中注释拼写错误
  • [#3573] 修复 README.md 文件中设计器路径错误
  • [#3662] 更新gpg密钥对
  • [#3664] 优化 javadoc
  • [#3637] 登记使用seata的公司和1.4.2版本包含的新增pr信息

test

  • [#3381] 添加 TmClient 的测试用例
  • [#3607] 修复 EventBus 的单元测试问题
  • [#3579] 添加 StringFormatUtils 测试用例
  • [#3365] 修复ParameterParserTest测试用例
  • [#3359] 删除未使用的测试用例
  • [#3383] 优化StatementProxyTest单元测试
  • [#3578] 修复单元测试case里的UnfinishedStubbing异常

英文版:https://github.com/seata/seata/releases/tag/v1.4.2

致谢
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。

  • slievrly
  • caohdgege
  • a364176773
  • wangliang181230
  • xingfudeshi
  • jsbxyyx
  • selfishlover
  • l8189352
  • Rubbernecker
  • lj2018110133
  • github-ganyu
  • dmego
  • spilledyear
  • hoverruan
  • anselleeyy
  • Ifdevil
  • lvxianzheng
  • MentosL
  • lian88jian
  • litianyu1992
  • xyz327
  • 13414850431
  • xuande
  • tanggen
  • eas5
  • nature80
  • ls9527
  • drgnchan
  • imyangyong
  • sunlggggg
  • long187
  • h-zhi
  • StellaiYang
  • slinpq
  • sustly
  • cznc
  • squallliu
  • 81519434
  • luoxn28

同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。

社区讨论群

2.png

常用链接
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

阿里云-云原生应用平台-中间件招聘:https://github.com/slievrly

相关文章
|
Nacos 数据库 开发者
Seata回滚问题之异常如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
818 98
|
12月前
|
SQL 监控 关系型数据库
MySQL怎么全局把一张表的数据回滚
MySQL怎么全局把一张表的数据回滚
1032 2
|
机器学习/深度学习
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
1529 0
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
|
Apache PHP 数据安全/隐私保护
(MAC)PHP Apache 安装与配置
(MAC)PHP Apache 安装与配置
520 0
|
Kubernetes 关系型数据库 MySQL
seata启动问题之指针异常如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
608 110
|
11月前
|
缓存 编译器 Go
构建理想容器镜像——以CSI为例
本文围绕阿里云CSI(Container Storage Interface)镜像构建的实际案例,探讨了一系列优化容器镜像的最佳实践。
569 106
|
12月前
|
机器学习/深度学习 人工智能 算法
【算法】最长公共子序列(C/C++)
【算法】最长公共子序列(C/C++)
|
机器学习/深度学习 人工智能 供应链
智能进化:AI技术如何重塑智能手机体验
【7月更文第31天】随着人工智能(AI)技术的飞速发展,智能手机已经成为AI应用的重要平台之一。本文将探讨AI如何改善智能手机的用户体验,分析AI技术在手机硬件中的具体应用案例,并讨论AI技术如何帮助智能手机制造商应对市场挑战。
451 2
|
机器学习/深度学习 算法
配电网重构知识及matlab实现(2)
配电网重构知识及matlab实现(2)
|
存储 SQL 缓存
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
【软件设计师备考 专题 】数据库模型(概念模式、外模式、内模式)
618 1