Apache Seata(incubating) 首个版本重磅发布!


2.1.0 是 Seata 进入 Apache 基金会的第一个 Release Version。此次发布将 io.seata 包名更改为 org.apache.seata。除了按原有的 Roadmap 技术演进外,2.1.0 进行了大量兼容性工作,实现了 API、数据和协议的兼容。用户无需修改原有的 API 和配置,即可实现到 Apache 版本的平滑升级。

用户登记

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

https://github.com/apache/incubator-seata/issues/1246

发布概览

功能特性方面,2.1.0 中对大家期待已久的 RocketMQ 消息事务集成做了支持;Raft 集群支持了 TC 多节点之间的元数据同步功能;Saga 事务模式与 Spring 框架解耦。

兼容性方面,针对原 io.seata 的 package 中的 API 做了全面的兼容处理,以保证从低版本升级至 Apache 版本上无需要修改任何代码。

另外,本次发布共通过了 110 多组 JDK(8/11/17/21) + Spring 版本+ OS(x86/arm64) + Druid 主要版本的严格交叉兼容测试,可放心平滑升级。

本次发布共修改文件数:4211,累计提交代码  +181157 −152729,合并 PR 数183 个,共 35 人参与代码 commit。

2.1.0 milestone:

https://github.com/apache/incubator-seata/milestone/34

seata-server: 

https://dist.apache.org/repos/dist/release/incubator/seata/2.1.0/apache-seata-2.1.0-incubating-bin.tar.gz

docker image:

https://hub.docker.com/repository/docker/apache/seata-server

部署指南:

https://seata.apache.org/zh-cn/docs/ops/deploy-guide-beginner

升级指南:

https://seata.apache.org/zh-cn/docs/ops/upgrade

版本的主要更新如下

feature:

  • [#6370] Saga 模式与 Spring 框架解耦和重构。

  • [#6205] 提供 Mock Server 支持

  • [#6169] Saga 状态机在线设计器前端框架重构

  • [#6230] 支持 RocketMQ 消息事务

  • [#6326] 支持 Raft 集群节点间的元数据同步

  • [#6415] 支持 Saga 设计器的自动布局

bugfix:

  • [#6090] 修复 TCC 切面异常处理过程,不对内部调用异常做包装处理,直接向外抛出

  • [#6075] 修复镜像 SQL 对于 on update 列没有添加表别名的问题

  • [#6086] 修复 Oracle alias 解析异常

  • [#6085] 修复 JDK 9+ 版本编译后,引入后 ByteBuffer#flip NoSuchMethodError 的问题

  • [#6101] 修复 Apache 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 事务事务模式支持 PostgreSQL 集群模式 URI

  • [#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] 修复 SQLServer 检查UNDO_LOG表是否存在时的SQL异常

  • [#6385] 修复 Role.Participant不执行 hook 但会清理的问题

  • [#6465] 修复 Saga 事务模式的context replay丢失start问题

  • [#6469] 修复在 SQLServer 数据库下[lock_table]数据表的插入操作sql中存在的错误

  • [#6496] 修复 XA 事务模式执行长时间SQL未完成回滚释放连接问题

  • [#6493] 修复 SQLServer SQL报错问题

  • [#6497] 修复自动装配时的 TCC 配置类

  • [#6554] 修复序列化器不固定使用对应配置序列化器的问题

  • [#6555] 修复 businessActionContext 对 io seata 包的不兼容问题

  • [#6553] 修复执行完 'ServiceTask' 后无法应用任何评估器的问题

  • [#6575] 修复io.seata ActionInterceptorHandler 兼容问题

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

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

  • [#6565] 修复 testCompensationStateMachine 与mockServer单测冲突

refactor:

  • [#6280] 使用diagram-js重构Saga设计器

  • [#6269] 统一Seata异常规范

  • [#6420] 优化配置缓存

非常感谢以下 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和建议,非常感谢大家。

社区任务

社区发布了大量的新手任务,欢迎认领。

https://github.com/apache/incubator-seata/issues?q=is%3Aissue+is%3Aopen+label%3A%22task%3A+help-wanted%22


相關推薦

2023-03-30

的监控指标等,具体的使用方式可以参考 https://seatunnel.apache.org/docs/seatunnel-engine/rest-api/ 02 AI Compatible SeaTunnel 2.3.1 当中重构了Http接口和相关API,根据现有xGPT水平能力简化了SaaS Connector相关API和Connector构建流程,让ChatGPT 4.0

2022-05-24

日,开源研发数据平台 DevLake 通过投票决议,正式成为 Apache 软件基金会 (ASF) 的孵化项目。 进入孵化器后,Apache DevLake 将遵循 The Apache Way[1],在导师们的引导下,坚持以人为本、社区高于代码的理念,持续建设包容、多元、

2022-10-10

项目名称 数据集成 airbytehq/airbyte alibaba/DataX apache/camel apache/flume apache/incubator-seatunnel apache/inlong apache/sqoop dbt-labs/dbt-core debezium/debezium ververica/flink-cdc-connectors 流处理 apache/beam apache/flink apache/incubator-heron apache/i

2023-11-16

Apache 基金会邮件列表显示,2023 年 10 月 29 日,分布式事务开源项目 Seata 正式通过 Apache 基金会的投票决议,正式成为 Apache 孵化器项目。 Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的

2023-05-05

友们大家好: 关于近日 "赤兔" 实时计算平台违规使用 Apache  StreamPark (Incubating) 代码一事[1], 赤兔开发团队已经重新按照 Apache 的合规要求, 更新了相关代码, 并且公开在官网[2] 做出了道歉声明: 在 Github[3]

2022-09-10

p;月 1 号顺利通过投票,正式成为全球最大的开源基金会 Apache 软件基金会 (ASF) 的孵化项目。这是 StreamPark 项目的新起点,意味着开源社区化协作将会变得更加规范以及国际化。   什么是 StreamPark StreamPark 原名 Strea

2024-05-31

大家好,非常高兴向大家发布 Apache Fury 0.5.1 版本。该版本包含了来自七个 contributor的37个PR的贡献,可以参考安装文档获取最新版本。 Release Notes:https://github.com/apache/incubator-fury/releases/tag/v0.5.1 Apache Fury简介 Apache Fury 是一个

2023-03-28

Apache 软件基金会(ASF)孵化器于2023年2月15日,通过了 Apache EventMesh 项目的孵化毕业投票。2023年03月22日,Apache 软件基金会董事会通过了Apache EventMesh 毕业,成为 Apache 顶级项目(TLP)。  一、关于 Apache EventMesh Apache EventMesh

2023-09-15

ps://github.com/devlive-community/openai-java-sdk 该版本着重支持 Apache Seatunnel 作为流水线支持框架 DataCap 已发布 发布版本 发布时间 1.14.0 2023-09-14 General 修复数据源检查任务返回空的问题 添加验证码 支

2022-12-20

sql 多主键 [#4649] seata-server支持多注册中心 [#4779] 支持 Apache Dubbo3 [#4479] TCC注解支持添加在接口和实现类上 [#4877] 支持 jdk17 [#4914] 支持 mysql 的update join联表更新语法 [#4542] 支持 oracle timestamp 类型 [#5111] 支持Nacos contextPath

2023-09-09

ben-admin 开发 (vue3.x) 如果你非要说 lamp 是 Linux+Apache+MySQL+PHP,那就算是吧,毕竟 PHP 是世界上最好的语言,我也希望此项目成为世界上最好的后台框架!😈😈😈 lamp-cloud 简介 lamp-cloud 的前身是 zuihou-admin-cloud

2024-03-09

服务、极速弹性、极具成本效益的下一代 Kafka。100%兼容Apache Kafka,无分区数据复制。在无副作用的前提下解决了 Kafka 弹性、运维上的诸多痛点并且带来了数量级的成本降低。   AutoMQ 1.0.0 GA 版本现已在 Github 仓库 (https://g

2023-05-08

也是 OSCHINA 开源PHP 推荐的国产开源产品、Typora 的首个增强插件。 VLOOK™ 的所有特性清单,详见快速入坑 → 一键了解 (备用链接) 间隔近 12 个月后,在实践反馈中继续持续应用和改进,VLOOK™ 作为最受

2023-04-28

Apache StreamPark(incubating) 是一个流处理应用程序开发管理框架。初衷是让流处理更简单,旨在轻松构建和管理流处理应用程序,提供使用 Apache Flink 和 Apache Spark 等编写流处理应用程序的开发框架。同时,StreamPark 提供了一个流