Seata 1.5.1 正式发布。Seata 社区向一切开发者问候,祝咱们有一个愉快的假日。

用户挂号

欢迎已运用用户在此链接挂号,便于咱们更好的针对业务场景优化:github.com/seata/seata…

发布概览

主要新增特性:支撑用户操控台,支撑 Skywalking tracing 集成,支撑 bRPC、EDAS Hsf,支撑 kotlin 协程,支撑 TCC 幂等/空回滚/防悬挂,支撑分布式使命调度,支撑 Redis 存储 lua 形式,支撑 ON DUPLICATE KEY UPDATE 等语法解析。

此次 release 批改文件数:872,最终代码变化:+60830,-9435 ,参加代码 commit 人数:60+,兼并pr数:230,其间:feature:30+,bugfix:60+,优化重构测验及其他:100+。

github.com/seata/seata…

此版别是现在参加代码提交人数最多和兼并pr最多的版别,感谢咱们的奉献。

操控台预览:

Seata 1.5.1 重磅发布,支持用户控制台,企业版正式免费公测

SkyWalking:

Seata 1.5.1 重磅发布,支持用户控制台,企业版正式免费公测

非常感谢 @SkyWalking 社区的大力支撑。

版别的主要更新

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] 优化潜在的数据库资源走漏

英文版: github.com/seata/seata…

称谢

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

  • slievrly
  • wangliang181230
  • a364176773
  • 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和主张,非常感谢咱们。

Seata 企业版

Seata 企业版提供免运维,高功用的企业级分布式业务解决方案,100%兼容开源,相比开源自建优势巨大。现在已在阿里云北京区域上线公测。欢迎咱们在微服务引擎 MSE 操控台-分布式业务,免费注册。

Seata 1.5.1 重磅发布,支持用户控制台,企业版正式免费公测

过程一:创立 Seata 实例

Seata 1.5.1 重磅发布,支持用户控制台,企业版正式免费公测

过程二:创立业务分组

Seata 1.5.1 重磅发布,支持用户控制台,企业版正式免费公测

现在 Seata 企业版不能在非阿里云环境下直连,如遇本地开发调试可装置 CloudToolkit 插件,启用 “端云互联” 功用进行网络连通,详细介绍参照分布式业务服务注册文档。

社区评论群

Seata 1.5.1 重磅发布,支持用户控制台,企业版正式免费公测

常用链接

  • Seata: github.com/seata/seata
  • Samples: github.com/seata/seata…
  • Release: github.com/seata/seata…
  • 官网: seata.io

投稿

欢迎咱们将 Seata 相关的实践文章投稿至:slievrly@gmail.com