跳到主要内容
版本:预览版

下载中心

Seata

GitHub: https://github.com/seata/seata

发布说明: https://github.com/seata/seata/releases

2.0.0 (2023-11-24,推荐版本)

source | binary

Release notes

Seata 2.0.0

Seata 2.0.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#5165] TCC结构拆分,支持API方式接入。增加集成层模块(seata-integration-tx-api),对事务流程定义以及代理部分增强。
  • [#5352] 在TCC Business Action Context中集成jackson和gson序列化功能
  • [#5377] 使AbstractHttpExecutor类支持PUT方式的请求
  • [#5396] TC 异常日志指标采集
  • [#5118] 支持二阶段并行下发执行
  • [#5529] docker镜像支持注入JVM参数到容器
  • [#3887] 增加AT模式的SQLServer数据库支持
  • [#4033] 增加ServerDB存储模式的SQLServer支持
  • [#5600] skywalking插件支持根据XID追踪事务
  • [#5357] seata console集成saga设计器
  • [#5717] 兼容1.4.2及以下版本的file.conf/registry.conf配置
  • [#5842] 构建docker 镜像时添加相关git信息,方便定位代码关系
  • [#5902] 支持IPv6网络环境
  • [#5907] 增加AT模式的PolarDB-X 2.0数据库支持
  • [#5932] AT模式支持达梦数据库
  • [#5946] 增加sqlserver对控制台分页接口的适配
  • [#5226] 支持Raft集群部署和事务存储模式

bugfix:

  • [#5677] 修复saga模式下serviceTask入参autoType转化失败问题
  • [#5277] 修复控制台全局锁查询接口查到了已释放的锁
  • [#5282] 修复并行rm请求处理时数组索引越界问题
  • [#5294] 修复AT模式下pgsql/oracle的主键列自增的问题
  • [#5298] 事务提交或回滚超时不移除global session
  • [#5304] 移除基于文件存储恢复时的RollbackRetryTimeout事务
  • [#5310] 修复生成update前后镜像sql不对关键字转义的bug
  • [#5318] 修复jdk8 中 G1 参数
  • [#5330] 修复单元测试中发现的bug
  • [#5337] 修复feature#5165中关于spring使用环境下,多interceptor排序问题,同时修复order一致时无法使用BeforeTransaction(AfterTransaction)事务排序问题
  • [#5347] 修复控制台打印 unauthorized error 问题
  • [#5355] 修复自定义context-path时的问题
  • [#5362] 修复当TC端回滚返回RollbackFailed时,自定义FailureHandler的方法未执行
  • [#5373] 修复客户侧事务提交前超时未执行hook和failureHandler的问题
  • [#5395] 修复AT模式下新增字段产生的字段找不到
  • [#5426] 修复不能获取GlobalTransactional注解问题
  • [#5464] 修复saga模式全局事务状态始终为Begin的问题
  • [#5478] 修复提交事务时事务已完成不抛出异常问题
  • [#5490] 修复日志中不打印方法名的问题
  • [#5449] 修复Oracle XA模式 start 重入问题
  • [#5462] 在RM中使用@GlobalTransactional时,如果RM执行失败会抛出ShouldNeverHappenException
  • [#5498] 修复 Oracle 10g 中“setDate”条件的全表扫描问题
  • [#5531] 修复读取logback文件路径错误的问题
  • [#5523] 修复 GlobalStatus=9 在DB存储模式无法清除的问题
  • [#5558] 修复mariadb回滚失败的问题
  • [#5556] 修复 oracle 插入 undolog 失败问题
  • [#5579] 修复 resourceId 为空时,获取 RM_CHANNELS 空指针问题
  • [#5577] 修复 grpc拦截器解绑xid失败问题
  • [#5594] 修复participant情况下的重复日志
  • [#5604] 修复在DB模式下 asyncCommitqueueToRetryCommit 两个方法总是失败的问题
  • [#5658] 修复大写和小写列名称的转义字符
  • [#5661] 修复connectionProxyXA连接复用时timeout为null
  • [#5679] 修复 xxx.grouplist 和 grouplist.xxx 配置项兼容问题
  • [#5715] 修复取中划线配置项错误问题
  • [#5748] 修复在某些情况下,业务sql中主键字段名大小写与表元数据中的不一致,导致回滚失败
  • [#5745] 修复不满足 sofa-rpc 中 setAttachment 方法的参数前缀要求问题
  • [#5772] 修复TableMetaCache的一些字段类型,避免溢出
  • [#5787] 解决redis作为注册中心时cluster无法自定义的BUG
  • [#5810] 修复druid依赖冲突导致的XA事务开始异常与回滚失败
  • [#5821] 修复insert executor对关键字未转义的问题
  • [#5835] bugfix: 修复当 XA 事务失败回滚后,TC 还会继续重试回滚的问题
  • [#5881] 修复事务回滚时锁未删除的问题
  • [#5930] 修复存储为redis哨兵模式下哨兵密码缺失的问题
  • [#5958] 在二阶段提交状态下发生重选时需要进行解除全局锁
  • [#5971] 修复某些未弃用的配置显示"已弃用"
  • [#5977] 修复当raft server关闭时,rpc server未关闭的问题
  • [#5954] 修复保存的分支会话状态与实际的分支会话状态不一致的问题
  • [#5990] 修复redis sentinel master node 宕机时,lua脚本未同步的问题
  • [#5997] 修复全局事务钩子重复执行
  • [#6018] 修复错误的 metric 上报
  • [#6024] 修复控制台点击事务信息页面中的"查看全局锁"按钮之后白屏的问题
  • [#6015] 修复在spring环境下无法集成dubbo
  • [#6049] 修复客户端在raft注册中心类型下,网络中断时,watch线程未暂停一秒等待重试的问题
  • [#6050] 修改 RaftServer#destroy 为等待所有关闭流程结束
  • [#6033] 修复HSFRemotingParser中isReference判断逻辑,去掉关于FactoryBean的无用判断

optimize:

  • [#5966] Saga 表达式解耦并统一格式
  • [#5928] 增加Saga模式状态机语义验证阶段
  • [#4858] 重构优化 SessionManager 用法
  • [#4881] 重新划分 SessionManager和SessionLifecycleListener 用法
  • [#5273] 优化protobuf-maven-plugin插件的编译配置,解决高版本的命令行过长问题
  • [#5278] 清理sessionmanager多例模式遗留代码
  • [#5302] 移除启动脚本的-Xmn参数
  • [#4880] 优化提交和回滚遇到异常时的日志输出
  • [#5322] 优化SPI加载日志
  • [#5326] 为全局事务超时日志添加时间信息
  • [#5328] 为全局事务和事务存储的Redis模式,增加对应的lua实现
  • [#5341] 优化 gRPC TCC模式
  • [#5342] 优化 TCC fence log 清理定时任务的 delay 参数值检查
  • [#5344] 添加配置中心、注册中心类型以及存储模式日志信息
  • [#5351] 优化 TCC 模式下的 RPC filter
  • [#5354] 重构 RPC 集成模块
  • [#5370] 优化事务失败处理 handler
  • [#5431] 优化github工作流
  • [#5461] 优化 license workflow
  • [#5456] 重构 ColumnUtils 和 EscapeHandler
  • [#5438] 优化code style检测属性
  • [#5471] 优化客户侧事务日志
  • [#5485] 优化Server日志输出
  • [#4907] 调整二阶段result线程池大小及优化代码
  • [#5487] 将branchsession中的lockholder增加final修饰
  • [#5519] 优化 Oracle FenceHandler
  • [#5501] 支持乐观锁方式更新事务状态
  • [#5419] 优化镜像发布流水线支持jdk8/17和支持maven 3.9.0
  • [#5549] 优化 gpg key 和 发布流水线
  • [#5576] 仅当 useTCCFence 设置为 true 时,才开启 Fence 表清理任务
  • [#5623] 优化异步提交线程和重试线程之间可能存在的冲突
  • [#5563] 优化channel通道可用性日志输出
  • [#5553] 支持表和列元数据大小写敏感设置
  • [#5644] 优化Server日志输出
  • [#5680] 优化大小写转义符
  • [#5686] 优化license check actions
  • [#5714] 优化分布式锁竞争日志
  • [#5723] 优化docker镜像的默认时区
  • [#5779] 删除无用的输出日志并统一日志输出路径
  • [#5802] 优化server端事务隔离级别为读已提交
  • [#5783] 支持nacos上application name配置
  • [#5524] 支持 seata-server.sh 中的更多操作命令
  • [#5836] 分离mariadb和mysql的AT实现
  • [#5869] 优化一些小的语法
  • [#5885] 优化ConnectionProxyXA中的日志
  • [#5894] 移除无license组件
  • [#5895] 移除7z压缩支持
  • [#5896] 移除 mariadb.jdbc 依赖
  • [#5384] 统一版本号管理,只需维护 build/pom.xml 中的版本号即可。
  • [#5419] 发布基于多个java版本的docker镜像
  • [#5829] 修正 codecov chart 不展示的问题
  • [#5878] 优化 httpcorehttpclient 的依赖定义
  • [#5917] 升级 native-lib-loader 版本
  • [#5926] 优化一些与 Apollo 相关的脚本
  • [#5938] 支持 jmx 监控配置
  • [#5944] 修复构建操作警告
  • [#5951] 删除在 jdk17 中不支持的配置项
  • [#5959] 修正代码风格问题及去除无用的类引用
  • [#6002] 移除fst序列化模块
  • [#6045] 优化MySQL衍生数据库判断逻辑

security:

  • [#5642] 增加Hessian 序列化黑白名单
  • [#5694] 修复若干Node.js依赖安全漏洞
  • [#5801] 修复Java依赖安全漏洞
  • [#5805] 修复序列化漏洞
  • [#5868] 修复npm package漏洞
  • [#5916] 修复npm package漏洞
  • [#5942] 升级依赖版本
  • [#5987] 升级依赖版本
  • [#6013] 升级seata-server依赖的spring版本

test:

  • [#5308] 添加单元测试用例 [FileLoader, ObjectHolder, StringUtils]
  • [#5309] 添加单元测试用例 [ArrayUtils, ConfigTools, MapUtil]
  • [#5335] 添加单元测试用例 [EnhancedServiceLoader,ExtensionDefinition,SizeUtilTest,ReflectionUtil,LowerCaseLinkHashMap,FileLoader,ObjectHolder]
  • [#5367] 修复 UpdateExecutorTest 单测失败问题
  • [#5383] 修复多Spring版本测试失败
  • [#5391] 添加 config 模块的单元测试用例
  • [#5428] 修复 FileTransactionStoreManagerTest 单测失败问题
  • [#5622] 添加单元测试用例 [ExporterType, RegistryType]
  • [#5637] 添加单元测试用例 [BatchResultMessage, HeartbeatMessage, RegisterRMResponse, ResultCode, RegisterTMResponse, MergeResultMessage, MergedWarpMessage, Version]
  • [#5893] 移除 sofa 测试用例
  • [#5845] 升级 druid 版本,并添加 test-druid.yml 用于测试seata与druid各版本的兼容性。
  • [#5863] 修复单元测试在Java21下无法正常运行的问题。
  • [#5986] 修复 zookeeper 单测失败问题
  • [#5995] 添加 RaftClusterMetadataMsg 模块的单元测试用例
  • [#6001] 添加 RaftMsgExecute 模块 branch 包下的单元测试用例
  • [#5996] 添加 RaftMsgExecute 模块 global 包下的单元测试用例
  • [#6003] 添加 RaftMsgExecute 模块 lock 包下的单元测试用例
  • [#6005] 修复 saga 异步测试未定义的行为
  • [#6009] 添加RaftServerFactory的单元测试用例
  • [#6052] 给ut升级 springboot 和服务器的 spring 版本

Contributors:

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

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

常用链接

1.8.0 (2023-11-05)

source | binary

Release notes

Seata 1.8.0

Seata 1.8.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#3672] AT模式支持Dameng数据库
  • [#5892] AT模式支持PolarDB-X 2.0数据库

bugfix:

  • [#5833] 修复 XA 事务失败回滚后,TC 继续重试回滚的问题
  • [#5884] 修复达梦前后镜像查询列名都加了引号导致sql异常的问题
  • [#5931] 修复存储redis哨兵模式下哨兵密码缺失的问题
  • [#5970] 修复某些未弃用的配置显示"已弃用"

optimize:

  • [#5866] 一些小的语法优化
  • [#5889] 移除无license组件
  • [#5890] 移除7z压缩支持
  • [#5891] 移除 mariadb.jdbc 依赖
  • [#5828] 修正 codecov chart 不展示的问题
  • [#5927] 优化一些与 Apollo 相关的脚本
  • [#5918] 修正codecov.yml不标准属性
  • [#5939] 支持 jmx 监控配置

security:

  • [#5867] 修复npm package漏洞
  • [#5898] 修复npm package漏洞

test:

  • [#5888] 移除 sofa 测试用例
  • [#5831] 升级 druid 版本,并添加 test-druid.yml 用于测试seata与druid各版本的兼容性。
  • [#5862] 修复单元测试在Java21下无法正常运行的问题。
  • [#5914] 升级 native-lib-loader 版本
  • [#5960] 修复 zookeeper 单测失败问题
  • [#5981] 固定 seata-server 所使用有 jedis 版本

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

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

常用链接

1.7.1 (2023-09-05,推荐版本)

source | binary

Release notes

Seata 1.7.1

Seata 1.7.1 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#5803] docker镜像支持注入JVM参数到容器

bugfix:

  • [#5749] 修复在某些情况下,业务sql中主键字段名大小写与表元数据中的不一致,导致回滚失败
  • [#5762] 修复TableMetaCache的一些字段类型,避免溢出
  • [#5769] 修复不满足 sofa-rpc 中 setAttachment 方法的参数前缀要求问题
  • [#5814] 修复druid依赖冲突导致的XA事务开始异常与回滚失败
  • [#5771] 修复insert executor对关键字未转义的问题
  • [#5819] 修复oracle alias 解析异常

optimize:

  • [#5804] 优化docker镜像的默认时区
  • [#5815] 支持 Nacos applicationName 属性
  • [#5820] 统一日志输出目录
  • [#5822] 升级过时的github actions

security:

  • [#5728] 修复Java依赖漏洞
  • [#5766] 修复序列化漏洞

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

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

常用链接

1.7.0 (2023-07-11,推荐版本)

source | binary

Release notes

Seata 1.7.0

Seata 1.7.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#5476] seata客户端,首次支持 native-image
  • [#5495] 控制台集成Saga状态机设计器
  • [#5668] 兼容1.4.2及以下版本的file.conf/registry.conf配置

bugfix:

  • [#5682] 修复saga模式下replay context丢失startParams问题
  • [#5671] 修复saga模式下serviceTask入参autoType转化失败问题
  • [#5194] 修复使用Oracle作为服务端DB存储时的建表失败问题
  • [#5021] 修复 JDK17 下获取 Spring 原始代理对象失败的问题
  • [#5023] 修复 seata-core 模块传递依赖冲突
  • [#5224] 修复 oracle初始化脚本索引名重复的问题
  • [#5233] 修复LoadBalance相关配置不一致的问题
  • [#5266] 修复控制台全局锁查询接口查到了已释放的锁
  • [#5245] 修复不完整的distribution模块依赖
  • [#5239] 修复当使用JDK代理时,getConfig 方法获取部分配置时抛出 ClassCastException 异常的问题
  • [#5281] 修复并行rm请求处理时数组索引越界问题
  • [#5288] 修复AT模式下oracle的主键列自增的问题
  • [#5287] 修复AT模式下pgsql的主键列自增的问题
  • [#5299] 修复TC端重试回滚或重试提交超时GlobalSession的删除问题
  • [#5307] 修复生成update前后镜像sql不对关键字转义的bug
  • [#5311] 移除基于文件存储恢复时的RollbackRetryTimeout事务
  • [#4734] 修复AT模式下新增字段产生的字段找不到
  • [#5316] 修复jdk8 中 G1 参数
  • [#5321] 修复当TC端回滚返回RollbackFailed时,自定义FailureHandler的方法未执行
  • [#5332] 修复单元测试中发现的bug
  • [#5145] 修复saga模式全局事务状态始终为Begin的问题
  • [#5413] 修复 arm64平台下的JDK和Spring兼容问题
  • [#5415] 修复客户侧事务提交前超时未执行hook和failureHandler的问题
  • [#5447] fix oracle xa mode cannnot be used By same database
  • [#5472] 在RM中使用@GlobalTransactional时,如果RM执行失败会抛出ShouldNeverHappenException
  • [#5535] 修复读取logback文件路径错误的问题
  • [#5538] 修复提交事务时事务已完成不抛出异常问题
  • [#5539] 修复Oracle 10g where条件包含setDate全表扫描问题
  • [#5540] 修复 GlobalStatus=9 在DB存储模式无法清除的问题
  • [#5552] 修复mariadb回滚失败的问题
  • [#5583] 修复grpc xid 解绑问题
  • [#5602] 修复participant情况下的重复日志
  • [#5645] 修复 oracle 插入 undolog 失败问题
  • [#5659] 修复后镜像查询时增加关键字转义符导致数据库强制开启大小写校验引起的sql异常
  • [#5663] 修复connectionProxyXA连接复用时timeout为null
  • [#5675] 修复 xxx.grouplist 和 grouplist.xxx 配置项兼容问题
  • [#5690] 修复控制台打印 unauthorized error 问题
  • [#5711] 修复取中划线配置项错误问题

optimize:

  • [#5208] 优化多次重复获取Throwable#getCause问题
  • [#5212] 优化不合理的日志信息级别
  • [#5237] 优化异常日志打印(EnhancedServiceLoader.loadFile#cahtch)
  • [#5089] 优化 TCC fence log 清理定时任务的 delay 参数值检查
  • [#5243] 升级 kryo 5.4.0 优化对jdk17的兼容性
  • [#5153] 只允许AT去尝试跨RM获取channel
  • [#5177] 如果 server.session.enable-branch-async-remove 为真,异步删除分支,同步解锁。
  • [#5273] 优化protobuf-maven-plugin插件的编译配置,解决高版本的命令行过长问题
  • [#5303] 移除启动脚本的-Xmn参数
  • [#5325] 添加配置中心、注册中心类型以及存储模式日志信息
  • [#5315] 优化SPI加载日志
  • [#5323] 为全局事务超时日志添加时间信息
  • [#5414] 优化事务失败处理 handler
  • [#5537] 优化客户侧事务日志
  • [#5541] 优化Server日志输出
  • [#5548] 优化 gpg key 和 发布流水线
  • [#5638] 优化server端事务隔离级别为读已提交
  • [#5646] 重构 ColumnUtils 和 EscapeHandler
  • [#5648] 优化Server日志输出
  • [#5647] 支持表和列元数据大小写敏感设置
  • [#5678] 优化大小写转义符
  • [#5684] 优化 CodeQL, skywalking-eyes 和 checkout 等 actions
  • [#5700] 优化分布式锁竞争日志

security:

  • [#5172] 修复一些安全漏洞的版本
  • [#5683] 增加Hessian 序列化黑白名单
  • [#5696] 修复若干Node.js依赖安全漏洞

test:

  • [#5380] 修复 UpdateExecutorTest 单测失败问题
  • [#5382] 修复多Spring版本测试失败

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

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

常用链接

1.6.1 (2022-12-21)

source | binary

Release notes

Seata 1.6.1

Seata 1.6.1 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#5115] 支持 spring-boot:3.x

bugfix:

  • [#5179] 修复使用Eureka作为注册中心ClassNotFoundException问题

optimize:

  • [#5120] 统一yml文件中的配置项格式
  • [#5180] GlobalTransactionScanner,SeataAutoDataSourceProxyCreator 创建bean用static修饰
  • [#5182] 修复 Saga 可视化设计器 GGEditor 安全漏洞
  • [#5183] 优化配置开关的默认值

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

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

1.6.0 (2022-12-17)

source | binary

Release notes

Seata 1.6.0

Seata 1.6.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

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()

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

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

1.5.2 (2022-07-12)

source | binary

Release notes

Seata 1.5.2

Seata 1.5.2 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#4661] 支持根据xid负载均衡算法
  • [#4676] 支持Nacos作为注册中心时,server通过挂载SLB暴露服务
  • [#4642] 支持client批量请求并行处理
  • [#4567] 支持where条件中find_in_set函数

bugfix:

  • [#4515] 修复develop分支SeataTCCFenceAutoConfiguration在客户端未使用DB时,启动抛出ClassNotFoundException的问题。
  • [#4661] 修复控制台中使用PostgreSQL出现的SQL异常
  • [#4667] 修复develop分支RedisTransactionStoreManager迭代时更新map的异常
  • [#4678] 修复属性transport.enableRmClientBatchSendRequest没有配置的情况下缓存穿透的问题
  • [#4701] 修复命令行参数丢失问题
  • [#4607] 修复跳过全局锁校验的缺陷
  • [#4696] 修复 oracle 存储模式时的插入问题
  • [#4726] 修复批量发送消息时可能的NPE问题
  • [#4729] 修复AspectTransactional.rollbackForClassName设置错误
  • [#4653] 修复 INSERT_ON_DUPLICATE 主键为非数值异常

optimize:

  • [#4650] 修复安全漏洞
  • [#4670] 优化branchResultMessageExecutor线程池的线程数
  • [#4662] 优化回滚事务监控指标
  • [#4693] 优化控制台导航栏
  • [#4700] 修复 maven-compiler-plugin 和 maven-resources-plugin 执行失败
  • [#4711] 分离部署时 lib 依赖
  • [#4720] 优化pom描述
  • [#4728] 将logback版本依赖升级至1.2.9
  • [#4745] 发行包中支持 mysql8 driver
  • [#4626] 使用 easyj-maven-plugin 插件代替 flatten-maven-plugin插件,以修复shade 插件与 flatten 插件不兼容的问题
  • [#4629] 更新globalSession状态时检查更改前后的约束关系
  • [#4662] 优化 EnhancedServiceLoader 可读性

test:

  • [#4544] 优化TransactionContextFilterTest中jackson包依赖问题
  • [#4731] 修复 AsyncWorkerTest 和 LockManagerTest 的单测问题。

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

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

1.5.1 (2022-05-17)

source | binary

Release notes

Seata 1.5.1

Seata 1.5.1 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

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 优化潜在的数据库资源泄露

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

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

1.4.2 (2021-04-26)

source | binary

Release notes

Seata 1.4.2

Seata 1.4.2 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

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] 使LoadBalancePropertiesspring-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异常

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

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

1.4.1 (2021-02-08)

source | binary

Release notes

Seata 1.4.1

Seata 1.4.1 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#3238] 添加deflater压缩算法支持

bugfix:

  • [#2879] 修复springboot项目启动过程中可能产生死锁的问题
  • [#3296] 修复当AT模式和TCC模式混用的时候,AT的分支无法被删除
  • [#3254] 在调用恢复在恢复之前清除监听器映射
  • [#3309] 修复Saga状态机无法使用Jackson parser以及当没有选择正确的状态会抛出NPE的问题
  • [#3287] 修复当更新主键时抛出异常
  • [#3323] Saga模式下创建状态机实例并存入数据库时出现异常,移除xid和branchType,避免影响其他事务执行
  • [#3281] 修复Saga模式下,分支事务启动异常,上报TC状态不正确
  • [#2949] 修复当获取state列表时的NPE
  • [#3351] 修复使用hystrix和SCA 2.2.3.RELEASE及以下版本时抛出IllegalArgumentException异常的问题
  • [#3349] 修复测试用例中的问题
  • [#3325] 修复找不到上一次子状态机实例,导致重试一直失败问题
  • [#3357] 修复发布规则检测失败的问题

optimize:

  • [#3188] 优化检查队列offer的返回值
  • [#3247] 把client.log.exceptionRate配置移动到log.exceptionRate
  • [#3260] 通过PriorityQueue来简化ShutdownHook的代码
  • [#3319] 删除无用的@Sharable
  • [#3313] 把StringBuffer替换成StringBuilder
  • [#3335] 把TransactionPropagationIntercepter重命名为TransactionPropagationInterceptor
  • [#3310] 支持NamedThreadFactory从SecurityManager或当前线程中获取ThreadGroup
  • [#3320] 使用常量去优化负载均衡配置策略的可读性
  • [#3345] 调整GlobalLockTemplateTest的测试用例

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

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

1.4.0 (2020-10-30)

source | binary

Release notes

Seata 1.4.0

Seata 1.4.0 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#2380] 支持yml配置文件

  • [#3191] 支持oracle nclob类型

  • [#2676] 支持客户端最少的活动负载均衡

  • [#2080] 支持客户端一致性哈希的负载均衡

  • [#3198] 支持Spring Boot 使用自定义配置中心和注册中心

  • [#2806] 支持配置默认全局事务超时时间

  • [#2941] 支持apollo密钥key配置

  • [#2950] 支持redis存储模式可重入锁

  • [#2913] 支持配置AT或XA事务模式的数据源代理

  • [#2856] 支持undo_log 使用 fst 序列化

  • [#3076] 支持 GlobalLock 锁重试

  • [#2825] 支持客户端发送鉴权信息

  • [#2962] 支持在 @GlobalTransactional和@GlobalLock 注解上锁的重试配置

    bugfix:

  • [#3214] 修复在某些情况下'RootContext.DEFAULT_BRANCH_TYPE' 的取值错误的问题

  • [#3129] 修复禁止执行更新主键值的SQL

  • [#3205] 修复在配置中获取boolean类型配置异常

  • [#3170] 修复Disposable 同优先级的无法执行的问题

  • [#3180] 修复fst序列化包名错误

  • [#3178] 修复sqlparser 换行替换为空格问题

  • [#2929] 修复将应用配置为在启动时降级但在运行中无法升级问题

  • [#3050] 修复update和delete不支持order,limit语法问题

  • [#2935] 修复了Saga Designer在切换节点时属性框不会切换的问题

  • [#3140] 修复Propagation.REQUIRES_NEW无效的问题

  • [#3130] 修复数据源多重代理和使用非代理类方法的问题

  • [#3148] 修复 Redis 存储模式下lock和session存储时key冲突问题

  • [#3136] 修复Redis pipeline执行报错问题

  • [#2551] 修复当使用AT数据源代理时Saga事务模式无法使用的问题

  • [#3073] 修复在没有xid的情况下使用XA模式的问题

  • [#3074] 修复若XA模式找不到 xid 重试问题

  • [#3097] 修复HttpAutoConfiguration只在springboot web项目中启动

  • [#3071] 修复XA 模式中无法获取真实连接的问题

  • [#3056] 修复了删除分支后仍然存在分支锁的错误

  • [#3025] 修复错误的包装路径问题

  • [#3031] 修复 redis 存储模式锁删除锁不完整问题

  • [#2973] 修复oracle数据库 where in 超过1000的问题

  • [#2986] 修复 checkstyle插件无法排除单个文件的问题

  • [#2910] 修复错误的注释

  • [#2914] 修复TCC模式下,调用方未清除branchType的问题

  • [#2926] 修复 fastjson 序列化不记录类名的问题

  • [#2897] 修复Jedis删除锁失败的问题

  • [#2918] 修复 AT 模式下回滚时的未加锁的问题

  • [#2972] 修复UUIDGenerator高并发下生成重复的id问题

  • [#2932] 修复nacos-config.py 不支持namespace 问题

  • [#2900] 修复数据库转义符问题

  • [#2904] 修复getConfig配置不存在获取到null的问题

  • [#2890] 修复statelang示例中的拼写错误

  • [#3040] 修复 autocommit=false时的重复提交问题

  • [#3230] 修复使用@EnableAutoDataSourceProxy启动失败问题

  • [#2979] 修复与sharedjdbc集成postgresql 无法获取元数据问题

  • [#3233] 修复Collections空指针异常

  • [#3242] 修复批处理SQL获取TableMeta错误问题

    optimize:

  • [#3201] 修复异常时报错堆栈显示不全的问题

  • [#3062] 重构Redis存储模式下session的存储结构

  • [#3117] 优化日志输出以及清除无用代码

  • [#3134] 优化Map 和 List 相关写法

  • [#3195] 优化 XID 相关的代码写法

  • [#3200] 优化 rpc 日志提示

  • [#3186] 移除 StringUtils 的重复代码

  • [#3162] 删除重复的代码

  • [#2969] 升级druid的依赖到1.1.23

  • [#3141] 升级Nacos和FastJSON的依赖版本

  • [#3118] 添加additional-spring-configuration-metadata.json 配置提示信息

  • [#2597] 优化web拦截器中的xid状态避免重复处理

  • [#3102] 优化ContextCore 接口可设置非 String 类型的值

  • [#3016] 重构 Redis 存储模式下 的lock的存储结构

  • [#3046] 删除SerializerFactory类

  • [#3053] 支持 TC端jedis连接池最大数量配置

  • [#3012] 移除重复设置端口的代码

  • [#2978] 优化AT和TCC 事务模式混用时,AT模式可异步提交

  • [#2967] 优化代码为lambda风格

  • [#2968] 优化在RM客户端初始化后发送注册消息

  • [#2945] 优化DB存储模式异步提交,减少更新操作

  • [#2952] 支持 additional-spring-configuration-metadata.json配置提示信息

  • [#2920] 修正 README.md 中的单词和语法错误

  • [#3222] 优化fileListener的CPU利用率

  • [#2843] 移除 redis和db 存储模式的中移除接口Reloadable 和 重构 reload`方法

  • [#3209] 新增使用用户 logo 信息

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

1.3.0 (2020-07-14)

source | binary

Release notes

Seata 1.3.0

Seata 1.3.0 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#2398] 支持 MySQL 多主键

  • [#2484] 支持 Redis 存储模式

  • [#2817] Saga 流程设计器 Groovy Script Task

  • [#2646] Server 支持 HikariCP 数据源

  • [#2253] 支持根据连续错误数动态升降级

  • [#2565] 支持事务注解类标注

  • [#2510] 协议新增 LZ4 压缩支持

  • [#2622] Server 支持版本检查

  • [#2658] 支持 Oracle 同一实例下不同用户的事务

  • [#2620] 支持使用 Nacos 注册中心配置 group 属性

  • [#2699] 支持 ACM 配置中心

  • [#2509] 支持 update 操作回滚所有数据列和更新列

  • [#2584] StateHandlerInterceptor 和 StateRouterInterceptor 支持 SPI

  • [#2808] Server 鉴权支持 SPI

  • [#2616] TCC 模式支持 Dubbo 和 Sofa-RPC 注解调用

  • [#2831] Saga 模式支持 jackson parser

  • [#2554] 增加 zookeeper 序列化支持

  • [#2708] 支持 array, datalink 等 JDBC 类型

  • [#2412] xid 生成支持雪花算法

  • [#2611] 支持配置缓存,去除配置中心强依赖

    bugfix:

  • [#2893] 修复 postgresql 表名中含 schema 取 tableMeta 错误的问题

  • [#2887] 修复 RM 接收 response 的逻辑

  • [#2610] Nacos 配置同步脚本加入Nacos权限属性控制

  • [#2588] 修复check style不通过时,无详细信息报出的问题

  • [#2543] 修复 ShutdownHook signal 无效问题

  • [#2598] 修复无法注册到 Nacos 的问题

  • [#2618] 修复 zookeeper 无法创建目录的问题

  • [#2628] 修复 delete 操作时表名加别名找不到表名问题

  • [#2639] 修复 Apollo 配置中心由于属性大小写导致的无法加载问题

  • [#2629] 修复 PostgreSQL 相同实例不同 currentSchema 导致的 resourceId 重复问题

  • [#2659] 修复 MySQL 使用 last_insert_id 获取到 undo_log id 问题

  • [#2670] 修复 Server dataSource 初始化多次的问题

  • [#2617] 修复类和方法上注解获取不正确的问题

  • [#2603] 修复无法获取 generated keys value 的问题

  • [#2725] 修复 insert 操作时主键前含有其他表达式导致的索引位置不正确的问题

  • [#2698] 修复嵌套 GlobalLock 被提前解绑的问题

  • [#2755] 修复 TCC 模式 branchCommit 和 branchRollback 抛出异常无返回值的问题

  • [#2777] 修复 rollback 重试次数设置为 0 无法回滚的问题

  • [#2812] 修复使用 shardingSphere & Seata 获取 PostgreSQL tableMeta错误的问题

  • [#2760] 修复回滚失败 failureHandler 无法抛出失败异常的问题

  • [#2837] 修复 SubStateMachineHandler 中错误的常量引用

  • [#2839] 修复 Saga 模式补偿成功业务异常丢失的问题

  • [#2650] 修复 TCC 和 Saga 模式在 AbstractConnectionProxy解析SQL的问题

  • [#2850] 修复 Saga 流程设计器导致浏览器崩溃的问题

  • [#2868] 修复找不到 AsyncEventBus 依赖的问题

  • [#2871] 修复获取 'schame'.'table' 类型 tableMeta 错误的问题

  • [#2685] 修复 Oracle insert 操作使用 sysdate 报错的问题.

  • [#2872] 修复 undo sql 中主键缺失转义符的问题

  • [#2875] 修复 ColumnUtils delEscape删除表名带 schema 转义符错误的问题.

optimize:

  • [#2573] 在随机负载均衡中使用 ThreadLocalRandom 代替 Random
  • [#2540] 重构 RPC 处理方法名和接口
  • [#2642] 优化 SofaRegistryServiceImpl 线程不安全的 double check
  • [#2561] 获取 tableMeta 逻辑统一
  • [#2591] 支持 zookeeper sessionTimeout和 connectTimeout 默认值
  • [#2601] 优化 spring-boot-starter 包结构
  • [#2415] 按照分支事务类型决定数据库操作行为
  • [#2647] 移除无用的变量
  • [#2649] 优化获取 tableMeta 的逻辑
  • [#2652] 支持 consul 自定义服务端口
  • [#2660] 优化 IdWorker 包路径
  • [#2625] Mockito.verify 代替 Mockito.doAnswer
  • [#2666] 补充使用用户 logo
  • [#2680] 优化 GlobalTransactionalInterceptor 为单例
  • [#2683] 优化 TccActionInterceptor 的日志打印
  • [#2477] 重构 RPC 客户端请求处理
  • [#2280] 重构 InsertExecutor
  • [#2044] 优化 ColumnUtils.addEscape
  • [#2730] 优化 配置中心类型校验
  • [#2723] 优化 postgreSql 获取 tableMeta 的处理逻辑
  • [#2734] 优化 postgreSql 依赖的 scope
  • [#2749] 优化 logger class 错误问题
  • [#2751] 拷贝 jdbc driver 到 docker 镜像
  • [#2759] 优化线程池线程命名风格
  • [#2607] insert 操作检查 pk 表达式支持
  • [#2765] 优化 XA 对不支持的 resource 的逻辑处理
  • [#2771] 禁用不稳定的单元测试
  • [#2779] 方法变量 ConcurrentHashMap 替换为 HashMap
  • [#2486] 重构 RPC server 端的处理逻辑
  • [#2770] TCC confirm 和 cancel 支持 void 返回值
  • [#2788] 优化 server 日志格式和样式
  • [#2816] 优化实例的创建逻辑
  • [#2787] 优化雪花算法中的 workId
  • [#2776] 优化字符串拼接
  • [#2799] 优化操作符
  • [#2829] 升降级检查去除加锁和异步化
  • [#2842] 优化 sql 格式
  • [#2242] 优化 PreparedStatementProxy 初始化逻辑
  • [#2613] 优化 DTO 和 typo

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

1.2.0 (2020-04-20)

source | binary

Release notes

Seata 1.2.0

Seata 1.2.0 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#2381] 支持 XA 事务模式
  • [#2206] 支持 REQUIRED、REQUIRES_NEW、SUPPORTS 和 NOT_SUPPORTED 事务传播模式
  • [#2112] 支持 SQL 的批量更新和批量删除
  • [#2275] TCC 模式支持 HSF 调用
  • [#2108] 支持 zip、bzip2、7z 压缩
  • [#2328] server 支持 mysql5.x 和 mysql8.x 类隔离加载
  • [#2367] 支持 Nacos 1.2 权限配置
  • [#2359] 支持 NEVER、MANDATORY 事务传播模式 和 事务挂起恢复 API
  • [#2418] 支持 fst 序列化
  • [#2135] 支持 SPI 定义 scope
  • [#2370] 支持 failureHandler 从 Spring 容器注入
  • [#2481] 支持数据库连接池的 max-wait 配置
  • [#2379] 支持使用 Nacos 注册服务时自定义服务名
  • [#2308] 增加 Saga 模式是否注册分支的开关
  • [#2301] 支持 postgresql 的 default 和 nextval 语法支持

bugfix:

  • [#2575] 修复 executeBatch 无法获取 targetSql 问题
  • [#2283] 修复 oracle 获取 tableMeta 失败问题
  • [#2312] 修复 SeataDataSourceBeanPostProcessor 启动判断条件
  • [#2309] 修复数据库 timestamp 类型反序列化丢失 nano 精度问题
  • [#2292] 修复一些未转驼峰风格的配置项
  • [#2306] 修复 maven-enforcer-plugin 打包版本的限制
  • [#2287] 修复全局锁重试时 connection context 未移除问题
  • [#2361] 修复错误的配置项名称
  • [#2333] 修复由于脏写导致回滚失败错误的日志输出
  • [#2390] 修复同步脚本中配置项对于含有空格的处理
  • [#2408] 修复 postgresql undo_log 建表脚本缺少 sequence
  • [#2391] 修复获取配置异常导致的 CPU 飙升问题
  • [#2427] 修复 debug时 调用StringUtils.toString(o) 栈溢出问题
  • [#2384] 修复 Saga模式 StateMachineRepository#getStateMachineById 方法会覆盖内存中缓存的最新版本的状态机定义问题
  • [#2323] 修复数据源自动代理问题
  • [#2466] 修复文件存储模式多线程变量可见性问题
  • [#2349] 修复批量 insert 不同主键类型检查
  • [#2479] 修复postgresql schema 非小写问题
  • [#2449] 修复 server 启动时无法获取表结构问题
  • [#2505] 修复 session store 路径判断条件
  • [#2456] 修复 server 极端异常情况下编码错误问题
  • [#2495] 修复 NPE 和减少lockKey 为 null 时的分支注册请求
  • [#2490] 修复 RpcContext.addResource 参数为 null 的处理判断
  • [#2419] 修复 http 部分的集成测试失败问题
  • [#2535] 修复 config.txt 中错误的配置名称
  • [#2524] 修复客户端注册服务名配置冗余导致的配置不一致问题
  • [#2473] 修复文件存储模式刷盘条件的判断逻辑
  • [#2455] 修复子模块下无法执行copyright 和 checkstyle maven 插件问题

optimize:

Seata 1.1.0 (2020-02-19)

source | binary

Release notes

Seata 1.1.0 发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#2200] 支持 postgresql (业务侧和 TC server)
  • [#1746] 支持 httpClient 自动集成
  • [#2240] 支持自定义 Saga 恢复策略超时时间
  • [#1693] 支持 druid 类隔离加载,隔离中间件和业务侧的 druid 使用
  • [#2245] 支持 zookeeper 鉴权
  • [#2239] 支持 dubbo 2.7.4+
  • [#2203] 支持 nacos 配置中心设置 group 属性
  • [#2086] 支持 apollo 配置中心设置 namespace 属性
  • [#2106] 支持 FastThreadLocalContextCore 存储事务上下文
  • [#1703] 支持 sql parser SPI,提供 druid sql parser
  • [#2151] 支持 Saga 模式跳过成功分支事务的 report

bugfix:

  • [#2270] 修复 worker size 不支持枚举配置和其他配置问题
  • [#2258] 修复 channelHandler 重连时 not sharable 问题
  • [#2261] 修复定时任务启动但 ApplicationContext 未刷新问题
  • [#2262] 修复 nacos 初始化脚本设置 group 错误问题
  • [#2249] 修复 Saga 模式注册分支失败状态机状态错误问题
  • [#2126] 修复表名和列名转义符错误问题
  • [#2234] 修复使用 fastjson 反序列化 bigint 错误问题
  • [#2237] 修复 DefaultCoordinatorTest 在 wins 测试错误问题
  • [#2233] 修复使用 fastjson 忽略 tableMeta 失效问题
  • [#2172] 修复使用 SpringCloudConfig 配置中心无法读取配置问题
  • [#2217] 修复 seata-spring-boot-starter 错误配置名称
  • [#2219] 修复 seata-spring-boot-starter 读取disableGlobalTransaction 配置错误问题
  • [#2187] 修复有相同数据依赖的不同事务分支路由到不同server时回滚顺序错误问题
  • [#2175] 修复 server direct buffer OOM 问题
  • [#2210] 修复二阶段 commit 和 rollback 重试超时 globalSession 无法删除问题
  • [#2179] 修复 redis 注册中心 db 属性转型错误问题
  • [#2192] 修复 eureka getHostName() 返回 ipAddress 问题
  • [#2198] 修复 rollback 超时无法自动删除全局锁问题
  • [#2167] 修复 Saga 异步执行返回相同 id 问题
  • [#2185] 修复 server 启动时 kubernetes 的判断条件
  • [#2145] 修复 Saga 模式重试成功上报状态错误问题
  • [#2113] 修复分支 rollback 失败触发多个 TC 重试导致的并发异常

optimize:

  • [#2255] 优化配置项的默认配置值
  • [#2230] 统一配置项命名风格和保持 seata-all 和 spring boot starter相同默认值
  • [#1935] 重构 client 和 server RPC
  • [#2215] 优化 Saga 模式的超时处理
  • [#2227] 分离 TC In/Outbound 接口
  • [#2033] DefaultRemotingParser 逻辑优化
  • [#1688] 减少客户端无用依赖
  • [#2134] 按照事务模式区分 TC 逻辑重构
  • [#2224] 优化 ContextCoreLoader 代码风格
  • [#2171] 优化配置初始化同步脚本和添加使用说明
  • [#2208] 使用 SPI LoadLevel name 代替 getDbType 接口方法
  • [#2182] 优化 seata-spring-boot-starter 前缀判断逻辑
  • [#2211] 优化 RootContext 代码风格
  • [#2140] 优化 GzipUtil 代码风格
  • [#2209] 重构 seata-discovery 模块,增加可读性
  • [#2055] 使用 SPI 重构 tableMetaCache 和 undoLogManager
  • [#2184] 重构 seata-config 模块,增加可读性
  • [#2095] 重构数据源自动代理,区分 jdk 和 cglib 代理属性设置
  • [#2178] Saga 状态机设计器添加默认 catch 节点
  • [#2103] 优化 tcc 模块代码,增加可读性
  • [#2125] 修改 MySQL recognizer package 路径
  • [#2176] 修复 typos
  • [#2156] 重构 sqlparser druid 名称为常量
  • [#2170] 增加 seata common 模块的单测覆盖率
  • [#2139] 优雅关闭 resources
  • [#2097] 将 codec 模块重命名为 serializer 模块
  • [#2159] 优化 spring 模块代码风格,增加可读性
  • [#2036] 优化 Dubbo parser 逻辑
  • [#2062] 优化 seata-rm-datasource 模块代码风格,增加可读性
  • [#2146] 优化日志输出字符拼接
  • [#2038] 优化 common 模块代码风格,增加可读性
  • [#2120] 修复 typos
  • [#2078] 增加 oracle table meta cache 单测覆盖度
  • [#2115] 修复 typos
  • [#2099] 优化 tm 模块代码风格,增加可读性

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

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

常用链接

Seata: https://github.com/seata/seata
Seata-Samples: https://github.com/seata/seata-samples
Release: https://github.com/seata/seata/releases
Seata 官网: https://seata.io/zh-cn/

1.0.0 (2019-12-21)

source | binary

Release notes

Seata 1.0.0 GA版本重磅发布

Seata 1.0.0 GA版本重磅发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#1966] 增加client端单条消息发送方式

  • [#2004] 增加配置中心配置同步脚本

  • [#1997] 提供图像生成工具便于查看Saga状态机执行路径

  • [#1992] 支持动态降级

  • [#1898] 支持动态配置

  • [#1983] 支持hessian序列化

  • [#1960] 提供基于GGEditor的可视化图形Saga状态机设计器

  • [#1900] Saga状态语言支持重试服务

  • [#1885] 增加Docker image构建配置

  • [#1914] 支持Oracle exists表达式

  • [#1878] 支持Mysql exists表达式

  • [#1871] 适配springcloud-alibaba-seata自动配置

  • [#1844] Saga状态机支持异步调用服务

  • [#1742] 增加seata-spring-boot-starter

  • [#1460] 支持gzip压缩

  • [#1492] 支持grpc事务自动传递和绑定

    bugfix:

  • [#2066] 修复初始化eureka client线程安全问题

  • [#2059] 修复异步回滚线程导致重复回滚问题

  • [#2050] 修复监听不存在的配置导致空指针

  • [#2053] 修复Insert的表名为关键字,无法构建前置镜像

  • [#2054] 修复状态为Rollbacking的事务无法被检测出

  • [#2043] 修复使用druid-spring-boot-starter动态代理失败

  • [#1668] 修复sql语句转义符号问题

  • [#2029] 修复seata-spring-boot-starter无效

  • [#2037] 修复mysql连接无法自动释放

  • [#2032] 修复Etcd3配置错误

  • [#1929] 修复元数据有可能出现重复缓存

  • [#1996] 修复小部分情况下无法代理数据源

  • [#2001] 移除无效jvm参数

  • [#1984] 修复预设容器环境变量问题,替换基础镜像

  • [#1978] 修复在windows下FileTransactionStoreManager单元测试无法通过

  • [#1953] 修复在小部分情况下获取表元数据失败

  • [#1973] 修复容器下无法获取server端口

  • [#1905] 解决lock_key长度问题

  • [#1927] 修复SPI有可能加载私有类

  • [#1961] 修复CI日志过长问题

  • [#1893] 修复Saga模式不会删除分支信息问题

  • [#1932] 修复构建Docker镜像时环境不匹配

  • [#1912] 修复部分异常日志打印不完整

  • [#1917] 修复CI部分测试用例出现空指针异常

  • [#1909] 修复xid类型为空导致空指针

  • [#1902] 修复回滚时如遇不支持的数据库出现空指针

  • [#1789] 修复xid header大小写问题

  • [#1889] 修复TCC下分支注册导致线程挂起

  • [#1813] 修复部分情况TCC不支持跨服务

  • [#1825] 修复并发情况下事务状态不一致

  • [#1850] 修复Server重启时sessionId未重置

  • [#1879] 修复jdbc传入空参数导致异常

  • [#1874] 修复部分情况下Channel关闭的问题

  • [#1863] 修复Other类型无法序列化

  • [#1837] 修复saga ExpressionEvaluator不支持空值

  • [#1810] 修复saga状态机无法保存并提供状态日志查询

  • [#1834] 修复StateInstance无法记录输出参数

  • [#1856] 修复protostuff undo log获取默认content

  • [#1845] 修复分支提交失败, 导致空指针异常

  • [#1858] 修复分布式事务不生效

  • [#1846] 修复并发下增加监听器异常

  • [#1839] 修复重复加锁

  • [#1768] 修复设置数据库连接参数useInformationSchema为true无法获取元数据

  • [#1796] 修复回滚时异常判断不完整

  • [#1805] 修复连接代理和prepareStatement未在全局事务管理下

  • [#1780] 修复Oracle无法执行select for update语句

  • [#1802] 部分方法修改HashMap为LinkedHashMap

  • [#1793] 修复多数据源下无法自动代理

  • [#1788] 修复Mysql无法获取主键值

  • [#1764] 修复Jdk11下远程地址为空

  • [#1778] 修复单元测试未清空测试资源

  • [#1777] 修复DeleteExecutor未根据数据库类型来构建前置镜像

    optimize:

  • [#2068] 优化数据库连接获取

  • [#2056] 移除代码中非java doc注释

  • [#1775] 优化分支事务回滚日志输出频率

  • [#2000] 统一归类初始化脚本

  • [#2007] 提高common模块单元测试覆盖率

  • [#1969] 增加Docker-Compose, Kubernetes, Helm脚本

  • [#1967] 增加Docker file

  • [#2018] 优化ConfigFuture

  • [#2020] 优化saga日志输出

  • [#1975] 扁平化saga嵌套事务

  • [#1980] 分支注册时显示applicationId

  • [#1994] 修改zookeeper根路径配置名称

  • [#1990] 增加netty配置常量

  • [#1979] 优化select for update识别器

  • [#1957] 获取关键字检查对象改为SPI的方法

  • [#1956] 找不到有效服务时,提示更加友好

  • [#1958] 支持将设计器的JSON转换成状态机标准JSON

  • [#1951] 增加使用企业logo

  • [#1950] 优化异步提交时日志的缺失

  • [#1931] nacos-config.py支持namespace

  • [#1938] 优化批量插入和批量更新

  • [#1930] 减少HashMap初始化大小

  • [#1919] 强制代码风格检查

  • [#1918] 优化单元测试抛出的异常

  • [#1911] 优化部分注释

  • [#1920] 使用迭代器来移除过期Future

  • [#1907] 优化UndoExecutorFactory获取实例的方式

  • [#1903] 增加批量查询分支事务

  • [#1910] 优化部分方法缺少@override

  • [#1906] 初始化时增加非正常退出日志

  • [#1897] 移除clientTest单元测试

  • [#1883] 优化SQLRecognizer, UndoExecutor代码结构

  • [#1890] 格式化部分saga代码

  • [#1798] 提高部分方法format效率

  • [#1884] 封装关闭资源的方法

  • [#1869] 增加当成功时,可以关闭分支汇报参数

  • [#1842] 增加部分初始化脚本

  • [#1838] 简化配置

  • [#1866] 优化TC日志输出

  • [#1867] 优化seata-spring-boot-starter

  • [#1817] 增加tm单元测试

  • [#1823] 减少db的访问次数

  • [#1835] Saga事务模版增加重新加载事务方法

  • [#1861] 优化当主键不存在时日志输出

  • [#1836] 修改IsPersist属性类型为Boolean

  • [#1824] 移除部分过期的Jvm11参数

  • [#1820] 修改部分代码风格

  • [#1806] 格式化错误日志

  • [#1815] 更新codecov.yml

  • [#1811] 适配codecov配置

  • [#1799] 移除没用的同步锁

  • [#1674] 增加Rm单元测试覆盖率

  • [#1710] NamedThreadFactory增加计数器

  • [#1790] 格式化Eureka实例id

  • [#1760] put message to logQueue

  • [#1787] 优化rpc通信日志可读性

  • [#1786] 简化Eureka注册实现类代码

  • [#1766] 移除无用方法

  • [#1770] 优化String拼接方式和无用的释放锁方法

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

  • slievrly

  • long187

  • jsbxyyx

  • l81893521

  • helloworlde

  • xingfudeshi

  • zjinlei

  • CharmingRabbit

  • objcoding

  • cmonkey

  • lzf971107

  • ggndnn

  • lightClouds917

  • ruqinhu

  • yuhuangbin

  • anrror

  • funky-eyes

  • caohdgege

  • contextshuffling

  • echooymxq

  • github-ygy

  • iapplejohn

  • jKill

  • Justice-love

  • lovepoem

  • niaoshuai

  • ph3636

  • wangwei-ying

  • whjjay

  • yangfuhai

  • zhongfuhua

  • lizwmaster

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

    常用链接

  • Seata: https://github.com/seata/seata

  • Seata-Samples: https://github.com/seata/seata-samples

  • Release: https://github.com/seata/seata/releases

0.9.0 (2019-10-16)

source | binary

Release notes

Seata 0.9.0

Seata 0.9.0 正式发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#1608] 长事务解决方案: Saga 模式(基于状态机实现)
  • [#1625] 支持自定义配置和注册中心类型
  • [#1656] 支持 spring cloud config 配置中心
  • [#1689] 支持 -e 启动参数,用于指定环境名称
  • [#1739] 支持 TM commit 或rollback 失败时的重试

bugfix:

  • [#1605] 修复对象锁和全局锁可能造成的死锁和优化锁的粒度
  • [#1685] 修复db存储类异常被忽略的问题
  • [#1691] 修复 DruidDataSourceWrapper 反射问题
  • [#1699] 修复 mysql 和 oracle 中 'in' 和 'between' 在 where 条件的支持
  • [#1713] 修复 LockManagerTest.concurrentUseAbilityTest 中的测试条件
  • [#1720] 修复了不能获取 oracle tableMeta 问题
  • [#1729] 修复 oracle 的批量获取问题
  • [#1735] 修复当 TM commit 或 rollback 出现网络异常无法清除 xid 的问题
  • [#1749] 修复无法获取 oracle tableMeta cache 问题
  • [#1751] 修复文件存储模式下由于hash冲突导致的锁无法释放问题
  • [#1761] 修复 oracle 在回滚时 Blob 或 Clob null 值回滚失败问题
  • [#1759] 修复 saga 模式下 service method 不支持接口类型参数问题
  • [#1401] 修复 RM 启动时第一次注册 resource 为 null 的问题

optimize:

常用链接

0.8.1 (2019-09-18)

source | binary

Release notes

Seata 0.8.1

Seata 0.8.1 正式发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

此版本更新如下:

feature:

  • [#1598] 支持配置文件使用绝对路径
  • [#1617] 支持配置文件名称(registry.conf) 可配置
  • [#1418] 支持 undo_log 数据的 kryo 序列化
  • [#1489] 支持 protobuf 生成插件
  • [#1437] 支持通信协议的 kryo 编解码
  • [#1478] 支持 db mock
  • [#1512] 扩展支持 mysql 和 oracle 的多种批量插入语法
  • [#1496] 支持 DataSource 的自动代理

bugfix:

  • [#1646] 修复 file 存储模式的 selectForUpdate lockQuery exception
  • [#1572] 修复在oracle 小写表名时获取 tablemeta 失败问题
  • [#1663] 修复表名为关键字获取 tablemeta 失败问题
  • [#1666] 修复数据库连接使用后的 autocommit 问题
  • [#1643] 修复 java.sql.Blob, java.sql.Clob 类型的序列化
  • [#1628] 修复 oracle 支持 ROWNUM 查询
  • [#1552] 修复当分支太大时的 BufferOverflow 问题
  • [#1609] 修复 oracle 关键字的线程安全问题
  • [#1599] 修复 mysql 关键字的线程安全问题
  • [#1607] 修复当druid版本小于1.1.3时 NoSuchMethodError
  • [#1581] 修复文件存储模式下 GlobalSession 长度计算不准确问题
  • [#1594] 修复 nacos 配置中心的默认 namespace
  • [#1550] 修复计算 BranchSession 丢失 xidBytes 长度问题
  • [#1558] 修复 rpcMessage 的 body 字段 NPE问题
  • [#1505] 修复绑定公网注册地址server监听失败问题
  • [#1539] 修复 nacos namespace 配置项不生效
  • [#1537] 修复 nacos-config.txt 缺失 store.db.driver-class-name 配置项
  • [#1522] 修复 ProtocolV1CodecTest 中 testAll 运行中可能出现测试失败问题
  • [#1525] 修复当 getAfterImage 获取失败时,事务自动被提交问题
  • [#1518] 修复 EnhancedServiceLoader SPI 顺序加载第三方依赖失败问题
  • [#1514] 修复当缺少序列化依赖无法生成undolog并report true问题
  • [#1445] 修复 DefaultCoordinatorMetricsTest 单测失败问题
  • [#1481] 修复 TableMetaCache 在多数据源刷新失败问题

optimize:

  • [#1629] 优化etcd3中watcher订阅的效率

  • [#1661] 优化 global_table 中 transaction_name 长度问题

  • [#1633] 优化分支事务获取全局锁失败重复report(false)问题

  • [#1654] 优化 slf4j 的错误使用

  • [#1593] 优化和规范化 server 的日志

  • [#1648] 优化 transaction_name 在建表时的长度

  • [#1576] 消除重排序对 session 异步提交的影响

  • [#1618] 优化 undolog manager 和 修复oracle undolog 的删除

  • [#1469] 提供不释放数据库锁情况下等待全局锁的释放以减少锁冲突

  • [#1619] 使用 StringBuffer 代替 StringBuilder

  • [#1580] 优化 LockKeyConflictException 和更改 register 方法

  • [#1574] 优化db存储模式下globalCommit 一次性删除全局锁

  • [#1601] 优化 typo

  • [#1602] 升级 fastjson 版本至 1.2.60 应对安全漏洞

  • [#1583] 优化 oracle 主键的获取

  • [#1575] 增加 RegisterTMRequest 的单元测试

  • [#1559] 启动时延迟删除过期 undo_log

  • [#1547] 删除 TableRecords 的 jackson 注解

  • [#1542] 优化 AbstractSessionManager 日志

  • [#1535] 去除 H2 和 pgsql 获取主键代码,修复 resultset 关闭问题

  • [#1541] 代码清理

  • [#1544] 去除中文注释

  • [#1533] 重构多环境配置的代码逻辑

  • [#1493] 增加 tableMeta 检测任务开关

  • [#1530] 优化当数据表无索引时抛出显式异常

  • [#1444] 简化map操作

  • [#1497] 增加 seata-all 依赖

  • [#1490] 移除不必要代码

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

  • slievrly

  • BeiKeJieDeLiuLangMao

  • jsbxyyx

  • ldcsaa

  • zjinlei

  • l81893521

  • ggndnn

  • github-ygy

  • chenxi-null

  • tq02ksu

  • AjaxXu

  • finalcola

  • lovepoem

  • cmonkey

  • xingfudeshi

  • andyqian

  • tswstarplanet

  • zhengyangyong

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

常用链接

0.8.0 (2019-08-16)

Release notes

Seata 0.8.0

Seata 0.8.0 正式发布。

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

feature:

  • [#902] 支持 oracle 数据库的 AT 模式
  • [#1447] 支持 oracle 数据库的批量操作
  • [#1392] 支持 undo_log 表名可配置
  • [#1353] 支持 mysql 数据库的批量更新和删除操作
  • [#1379] 配置中心所有配置项支持-D参数传入
  • [#1365] 支持定时更新mysql的表结构,可不停机更改表结构
  • [#1371] 支持 mysql preparedStatement 自增批量插入
  • [#1337] 支持 mysql preparedStatement 非自增批量插入
  • [#1235] 支持兜底定时删除 undolog 使用protobuf codec
  • [#1235] 支持兜底定时删除 undolog 使用 seata codec
  • [#1323] 支持db driver class 可配置

bugfix:

  • [#1456] 修复 xid 在 db 模式可重复的问题
  • [#1454] 修复 DateCompareUtils 不能比对 byte array 的问题
  • [#1452] 修复 select for update 重试获取到脏数据的问题
  • [#1443] 修复 timestamp 反序列化丢失纳秒精度的问题
  • [#1374] 修复 store.mode 启动参数与获取锁配置不一致的问题
  • [#1409] 修复 map.toString() 错误
  • [#1344] 修复 ByteBuffer 分配固定长度, 导致 BufferOverflowException 的问题
  • [#1419] 修复数据库连接默认autocommit=false 无法删除undolog的问题
  • [#1370] 修复begin事务失败释放channel和继续进行事务的问题
  • [#1396] 修复 Nacos config SPI 加载 class not found 的问题
  • [#1395] 修复获取 channel 检测逻辑
  • [#1385] 在rollback重试时修复获取 SessionManager 错误的问题
  • [#1378] 修复 eureka注册中心clusterAddressMap 在实例下线列表不清除的问题
  • [#1332] 修复 nacos 配置初始化脚本初始化含 ’=‘ 配置值错误的问题
  • [#1341] 修复同一个本地事务中对同一数据反复修改回滚错误的问题
  • [#1339] 修复数据镜像是 EmptyTableRecords, 回滚失败的问题
  • [#1314] 修复不指定db模式启动参数,配置文件不生效的问题
  • [#1342] 修复 ByteBuffer 长度分配错误
  • [#1333] 修复 netty 内存泄露问题
  • [#1338] 修复db模式下可重入锁后不再获取其他所的问题
  • [#1334] 修复使用 protobuf 时 tcc 模式下lock key NPE 的问题
  • [#1313] 修复 DefaultFailureHandler 检查 status NPE 的问题

optimize:

  • [#1474] 优化数据镜像比对日志
  • [#1446] 优化了 server 的 schedule tasks
  • [#1448] 重构了 executor 类删除了多余的重复代码
  • [#1408] 更改 TmRpcClientTest 类中的 ChannelFactory package路径
  • [#1432] 实现了作为 hash key类型对象的equals 和 hashcode 方法
  • [#1429] 删除了无用的 imports
  • [#1426] 修复语法错误
  • [#1425] 修复 typo
  • [#1356] 优化 sql 拼接语法
  • [#1416] 优化 javadoc 和注释
  • [#1417] 梳理优化了 oracle 的关键字
  • [#1404] 优化了 BranchStatus 的注释
  • [#1414] 梳理优化了 mysql 的关键字
  • [#1407] 禁用了不稳定的单元测试
  • [#1398] 优化了 eureka 注册中心 serviceUrl 默认值使用默认端口
  • [#1364] 优化 table 列字段名称定义为常量
  • [#1389] 增加 oracle 支持提示信息
  • [#1375] 增加 compareRows 比对失败日志
  • [#1358] 运行完成单测用例时清理临时文件
  • [#1355] 增加 rpc protocol 的单测
  • [#1357] 优化 Consul&Etcd 配置中心代码
  • [#1345] 代码清理和调整日志级别
  • [#1329] 增加 STORE_FILE_DIR 配置项的默认值

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

常用链接

0.7.1 (2019-07-15)

Release notes

Seata 0.7.1 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

0.7.1 版本是针对0.7.0 版本问题的紧急修复,本次更新主要内容如下:

Bug 修复及优化

  • [#1297] 兼容seata-spring独立依赖用法,对seata-spring添加了seata-codec-all依赖
  • [#1305] 修复GlobalTransactionScanner 切面优先级导致的Spring Cloud 的AutoConfiguration无法初始化问题
  • 修复了0.7.0 因mvn插件过低导致的版本号无替换,无法从中央仓库拉取依赖的问题。

相关链接

0.7.0 (2019-07-12)

Release notes

Seata 0.7.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

功能特性

0.6.1 (2019-05-31)

Release notes

Seata 0.6.1 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

功能特性

  • [#1119] 支持 weibo/motan 上下文透传

  • [#1075] 支持多环境配置隔离

    Bug 修复及优化

  • [#1099] 将UndoLogParser修改成SPI形式

  • [#1113] 优化代码格式

  • [#1087] 去掉无用的字节复制

  • [#1090] 修改UndoLogParser的方法的返回格式,便于后续扩展

  • [#1120] 修复分支事务提交和回滚时 xid使用错误的问题

  • [#1135] 升级zookeeper以修复安全漏洞

  • [#1138] 修复windows下seata-server.bat classpath过长的问题

  • [#1117] 修复脏写校验时时间类型数据校验失败问题

  • [#1115] 配置 seata-all 和 seata-bom 打包发布环境

相关链接

0.6.0 (2019-05-24)

Release notes

Seata 0.6.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

功能特性

  • [#942] 服务端使用数据库存储事务日志,支持服务端集群部署

  • [#1014] 支持 etcd3 作为配置中心

  • [#1060] 添加事务回滚时脏写校验

    Bug 修复及优化

  • [#1064] 修复 xid 和 branchId 长度错误

  • [#1074] 修复一些拼写错误,并用lambda替换匿名类

  • [#824] 添加事务恢复重试超时时间限制

  • [#1082] 添加配置中心单实例缓存

  • [#1084] 重构字符集和blob工具类

  • [#1080] 升级fastjson和nacos-client版本

相关链接

0.5.2 (2019-05-17)

Release notes

Seata 0.5.2 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

功能特性

  • [#988] 增加配置中心Consul支持
  • [#1043] 增加sofa-rpc支持

Bug 修复及优化

  • [#987] 优化同事务内并发使用 reentrantLock 代替 spinlock
  • [#943] 修复无相应文件配置项时取配置等待超时问题
  • [#965] 修复PreparedStatement 时where语句中 in、between 报错问题
  • [#929] 优化GlobalSession第一次取锁等待问题
  • [#967] 优化部分日志描述
  • [#970] 修复无法读取flush-disk-mode配置项问题
  • [#916] 优化解码时readable index
  • [#979] 优化copyright
  • [#981] 优化pom依赖,使用 caffine 代替 guava cache,junit升级至junit5,使用junit5改造原有testng单元测试
  • [#991] 优化core模块的文件头import
  • [#996] 修复maven-surefire-plugin在mac环境下编译错误问题
  • [#994] 修复ByteBuffer多次flip问题
  • [#999] 更改社区邮件订阅地址
  • [#861] 优化FailureHandler定时获取重试的事务结果,并将成功结果打印
  • [#802] 优化GlobalTransactionalInterceptor中lambda代码风格
  • [#1026] 修复错误排除data*代码文件问题,增加本地事务文件排除路径
  • [#1024] 修复Consul模块SPI配置文件路径错误问题
  • [#1023] 增加seata-all客户端依赖jar包
  • [#1029] 修复回滚中客户端宕机重启回滚时无channel导致的延迟回滚问题
  • [#1027] 修复release-seata无法生成压缩包问题
  • [#1033] 修复createDependencyReducedPom生成多余xml问题
  • [#1035] 修复TCC模式中branchCommit/branchRollback,branchId为null问题
  • [#1040] 重构exceptionHandleTemplate,修复GlobalRollback 分支异常时无法返回状态问题
  • [#1036] 替换中文注释为相应英文注释
  • [#1051] 优化回滚时校验数据变化,若无变化停止回滚
  • [#1017] 优化mysql undo executor构造undo sql逻辑处理
  • [#1063] 修复server重启后事务恢复后,可能造成新事务id冲突失败问题

相关链接

0.5.1 (2019-04-30)

Release notes

Seata 0.5.1 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

功能特性

  • [#774] 增加注册中心Etcd3支持
  • [#793] 增加注册中心sofa-registry支持
  • [#856] 增加批量删除undolog处理
  • [#786] 增加全局事务内分支事务并发支持

Bug 修复及优化

  • [#879] 修复批量删除undolog PreparedStatement不关闭问题
  • [#945] 增加LockManager中releaseLock接口,优化调用逻辑
  • [#938] 优化TransactionManager服务加载逻辑
  • [#913] 优化与RPC集成框架的模块结构
  • [#795] 优化server节点写文件的性能
  • [#921] 修复select for update时的NPE异常
  • [#925] 优化server启动时复用同一DefaultCoordinator实例
  • [#930] 优化字段访问修饰符
  • [#907] 修复hostname can't be null异常
  • [#923] 修复nettyClientKeyPool连接销毁时Key未format问题
  • [#891] 修复select union all时NPE异常
  • [#888] 修复copyright checkstyle验证问题
  • [#901] 修复Zookeeper 注册时父节点路径不存在问题
  • [#904] 优化UpdateExecutort后镜像数据查询
  • [#802] 优化checkstyle,增加插件校验
  • [#882] 更改copyright,增加copyright自动插件
  • [#874] 增加通讯传输层默认配置值
  • [#866] 修复无法生成dubbo:reference代理类问题
  • [#877] 修复批量删除undolog时concurrentModifyException异常
  • [#855] 优化AT模式时globalCommit时始终返回committed给用户
  • [#875] 修复select for update,Boolean转型ResultSet失败问题
  • [#830] 修复RM延迟注册问题
  • [#872] 修复RegisterRMRequest解码消息长度校验不准确问题
  • [#831] 优化MessageFuture中CountDownLatch,使用CompletableFuture替代
  • [#834] 修复ExecuteTemplate中非SQLException异常不抛出问题

相关链接

0.5.0 (2019-04-19)

Release notes

Seata 0.5.0 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

兼容性变更

  • [#809] 更改 groupid、artifactid和包路径

  • [#815] 添加maven 插件,以支持使用 groupId “io.seata” 发包

  • [#790] 修改服务器的启动参数以支持数据库存储模式

  • [#769] 重构RPC协议,在客户端中去掉XID的解析,使得服务端变成无状态

    功能特性

  • [#774] 优化配置中心和注册中心的结构

  • [#783] 允许用户自定义分支事务记录报告重试次数

  • [#791] 用状态枚举替换超时状态的模糊判断

  • [#836] 添加maven插件,管理工程版本号

  • [#820] 添加按异常回滚事务的特性

Bug 修复

  • [#772] 修复文件配置中心监听器问题
  • [#807] 优化服务端文件存储器的文件路径
  • [#804] 修复分支提交不断重试问题

相关链接

0.4.2 (2019-04-12)

Release notes

Seata 0.4.2 发布

Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新主要内容如下:

特性

  • [#704] 增加 本地文件写入时 ByteBuffer 池

  • [#679] 增加 现有注册中心增加了 close 接口实现,优化了 server 优雅下线

  • [#713] 增加 本地文件写入对超过配置大小的消息启用压缩功能

  • [#587] 增加 MySQL DDL 语句支持

  • [#717] 增加 Nacos 初始化配置脚本配置和补全程序配置文件

  • [#726] 增加 DBCP, C3P0, BoneCP, HikariCP 和 Tomcat-JDBC 连接池的支持

  • [#744] 增加 ZooKeeper 断线重连时重新注册和订阅

  • [#728] 增加 Consul 注册中心支持

    Bug 修复

  • [#569] 修复 已是jdk代理且无 target 只遍历第一个实现接口的问题

  • [#721] 修复 ConfigFuture 构造方法超时参数不起作用的问题

  • [#725] 修复 MergedSendRunnable channel被意外关闭问题,增加 fail-fast 机制

  • [#723] 修复 defaultServerMessageListener 未初始化的问题

  • [#746] 修复 DataSourceManager SPI 导致的test module 集测用例全部失效问题

  • [#754] 优化 Eureka 注册中心实现

  • [#750] 修复 DataSourceManager SPI 导致的 undolog 无法删除问题

  • [#747] 删除 MT 模式,之后将被 TCC 模式代替

  • [#757] 修复 BranchRollback 异常后回滚重试被终止问题

  • [#776] 修复 连接池创建 channel 时 toString 异常导致的连接创建失败问题

相关链接

0.4.1 (2019-03-29)

Release notes

0.4.0 (2019-03-19)

Release notes

Alibaba Fescar 0.4.0 发布

Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新内容如下:

特性

  • [#583] 新增蚂蚁金服的TCC模式,自动代理Dubbo服务和SOFARPC服务,使fescar支持除数据库以外的其他资源(RPC服务、restful服务、消息以及NoSQL等)作为分布式事务资源
  • [#594] 新增 p3c pmd Maven插件,自动进行代码扫描并找出不规范的代码格式
  • [#627] Maven依赖优化

相关链接

0.3.1 (2019-03-15)

Release notes

Alibaba Fescar 0.3.1 发布

Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新内容如下:

特性

  • [#557] 增加事务处理各阶段用户自定义 hook 接入点支持

  • [#594] 增加 ZooKeeper 注册中心支持

    Bug 修复

  • [#569] 修复 Eureka renew 问题

  • [#551] 修复 ConfigType NPE 问题

  • [#489] 修复 GlobalRollback 请求时未收到分支 branchReport 问题

  • [#598] 修复 p3c 扫描出不符合规范的若干问题;

相关链接

0.3.0 (2019-03-08)

Release notes

Alibaba Fescar 0.3.0 发布

Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新内容如下:

特性

  • [#510] 新增 eureka 注册中心支持

  • [#498] 实现带全局锁的本地事务模式并解决本地事务隔离性问题

    Bug 修复

  • [#459] 修复了 mysql 关键字作为表名和列名生成 sql 问题

  • [#312] 修复了原始业务 sql 无 where 条件生成 sql 出错问题

  • [#522] 修复文件路径安全漏洞问题

  • 对所有模块代码进行了 remove useless、 format 、optimize import、javadoc、copyright 整理

相关链接

0.2.3 (2019-03-02)

Release notes

Alibaba Fescar 0.2.3 发布

Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新内容如下:

特性

  • [#478] 支持 Redis 注册中心

  • [#478] 支持 Apollo 配置中心

    Bug 修复

  • [#462] 分离注册中心和配置中心入口

  • [#466] 修正RM线程池的拒绝策略

相关链接

0.2.2 (2019-02-22)

Release notes

0.2.1 (2019-02-18)

Release notes

Alibaba Fescar 0.2.1 发布

Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新内容如下:

特性

  • 支持 update 语句中的 between 语法

  • 支持 Random 和 RoundRobin 负载策略

  • 增加 dubbo-alibaba 模块以支持 Alibaba Dubbo

    Bug 修复

  • 修复 NettyClientConfig 方法及变量名 fifo-> lifo

  • 修复 fescar-dubbo 模块中 filter SPI 引用错误问题

相关链接

0.2.0 (2019-02-14)

Release notes

Alibaba Fescar 0.2.0 发布

Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。

本次更新内容如下:

特性

  • 支持 MySQL 分布式事务自动模式(AT)

  • 支持 Dubbo 无缝集成

  • 支持 分布式事务 API

  • 支持 Spring 事务注解

  • 支持 Mybatis、JPA

  • 支持 Nacos 服务注册和配置中心

  • 增加 server 重启时从文件自动恢复未完成事务操作至内存

  • 支持 多 IP 环境下,启动 server 指定 IP 参数

    Bug 修复

  • 修复 server 重启可能导致 XID 重复问题

  • 修复 Windows 启动脚本 $EXTRA_JVM_ARGUMENTS 参数报错

  • 修复分布式事务本地嵌套内层事务提交/回滚导致外层事务异常问题

  • 修复本地事务提交时异常,本地事务不回滚问题

  • 修复 MySQL 表别名解析问题

    其他

  • 升级依赖 JDK 版本至 1.8

  • 将依赖 Alibaba Dubbo 升级至 Apache Dubbo 2.7.0

  • 优化相关依赖引用

相关链接

0.1.4 (2019-02-11)

0.1.3 (2019-01-29)

0.1.2 (2019-01-25)

0.1.1 (2019-01-18)

0.1.0 (2019-01-09)