下载中心
Seata
GitHub: https://github.com/seata/seata 发布说明: https://github.com/seata/seata/releases
1.6.1 (2022-12-21)
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和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.6.0 (2022-12-17)
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 的代码贡献。若有无意遗漏,请报告。
- 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和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.5.2 (2022-07-12)
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 的代码贡献。若有无意遗漏,请报告。
- slievrly
- pengten
- YSF-A
- tuwenlin
- 2129zxl
- Ifdevil
- wingchi-leung
- liurong
- opelok-z
- a364176773
- Smery-lxm
- lvekee
- doubleDimple
- wangliang181230
- Bughue
- AYue-94
- lingxiao-wu
- caohdgege
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.5.1 (2022-05-17)
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 的代码贡献。若有无意遗漏,请报告。
- 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和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.4.2 (2021-04-26)
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] 使
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异常
非常感谢以下 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和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.4.1 (2021-02-08)
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 的代码贡献。若有无意遗漏,请报告。
- slievrly
- dongzl
- wangliang181230
- ls9527
- long187
- 81519434
- anselleeyy
- a364176773
- selfishlover
- suichen
- h-zhi
- jxlgzwh
- LiWenGu
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.4.0 (2020-10-30)
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 的代码贡献。若有无意遗漏,请报告。
- slievrly
- wangliang181230
- a364176773
- jsbxyyx
- l81893521
- lightClouds917
- caohdgege
- yujianfei1986
- ph3636
- PeineLiang
- heyaping388
- guang384
- zdrjson
- ITAlexSun
- dongzl
- 81519434
- wangwei-yin
- jujinghao
- JRial95
- mxszs1
- RayneHwang
- everyhook1
- li469791221
- luorenjin
- yangxb2010000
- selfishlover
- yyjgit66
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.3.0 (2020-07-14)
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 的代码贡献。若有无意遗漏,请报告。
- slievrly
- a364176773
- wangliang181230
- jsbxyyx
- l81893521
- objcoding
- long187
- CharmingRabbit
- diguage
- helloworlde
- chenxi-null
- ph3636
- xianlaioy
- qq925716471
- horoc
- XavierChengZW
- anic
- fxtahe
- wangwengeek
- yangfuhai
- PeineLiang
- f654c32
- dagmom
- caohdgege
- zjinlei
- yyjgit66
- lj2018110133
- wxbty
- hsoftxl
- q294881866
- 81519434
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
1.2.0 (2020-04-20)
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:
- [#2409] 当 undolog 和 lockKey 为空时减少不必要的db 和 server 交互
- [#2329] 按照不同的存储模式重构抽象相关逻辑
- [#2354] 优化 spring cloud config 不支持 listener 的逻辑
- [#2320] 优化 protostuff 和 kryo 序列化 timestamp 类型的逻辑,提升序列化性能
- [#2307] 优化事务模式切换时的事务上下文逻辑
- [#2364] 优化启动时不必要的类初始化加载
- [#2368] 增加zk 作为注册中心和配置中心缺少的配置属性
- [#2351] 增加获取本地全局事务状态的接口
- [#2529] 优化 druid 连接池参数
- [#2288] 忽略 mock 测试部分的单元测试覆盖度
- [#2297] 移除重复 pom 依赖
- [#2336] 添加使用用户的 logo
- [#2348] 去除重复的配置项
- [#2362] 优化按频率打印堆栈 stackTraceLogger 的方法
- [#2382] 优化 RegistryFactory 为单例模式 和 RegistryType 的判断逻辑
- [#2400] 优化 UUIDGenerator 的魔数逻辑
- [#2397] 修复 typo
- [#2407] 修复可能导致 NPE 的逻辑
- [#2402] 优化 RM 和 TM 的注册日志
- [#2422] 增加文档的 script 链接
- [#2440] 优化联系我们和启动日志
- [#2445] 优化 kryo 和 fst 的注册方法
- [#2372] 将 lock store sql 重构为 SPI 实现
- [#2453] 优化不必要的 server 配置项
- [#2369] 将 log store sql 重构为 SPI 实现
- [#2526] 优化 seata-spring-boot-starter 的启动日志
- [#2530] 移除 netty 的 connPool
- [#2489] 优化 exceptionHandler 的方法签名
- [#2494] 移除不必要的代码
- [#2523] server 按照频率输出不正常事务的异常详细堆栈信息
- [#2549] 优化 ZookeeperConfiguration 日志级别和异常信息不打印的问题
- [#2558] 规范统一 config 和 server 模块的日志
- [#2464] 增强 Saga 状态流程设计器
- [#2553] 增加使用同步脚本的一些说明
Thanks to these contributors for their code commits. Please report an unintended omission.
- slievrly
- a364176773
- ph3636
- lightClouds917
- l81893521
- jsbxyyx
- objcoding
- CharmingRabbit
- xingfudeshi
- lovepoem
- SevenSecondsOfMemory
- zjinlei
- ggndnn
- tauntongo
- threefish
- helloworlde
- long187
- jaspercloud
- dk-lockdown
- wxbty
- sharajava
- ppj19891020
- YuKongEr
- Zh1Cheung
- wangwei-ying
- mxszs
- q294881866
- HankDevelop
Also, we receive many valuable issues, questions and advices from our community. Thanks for you all.
Link
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
- WebSite: https://seata.io
Seata 1.1.0 (2020-02-19)
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 的代码贡献。若有无意遗漏,请报告。
- slievrly
- xingfudeshi
- objcoding
- long187
- zjinlei
- ggndnn
- lzf971107
- CvShrimp
- l81893521
- ph3636
- koonchen
- leizhiyuan
- a364176773
- caioguedes
- helloworlde
- wxbty
- bao-hp
- guojingyinan219
- CharmingRabbit
- jaspercloud
- jsbxyyx
同时,我们收到了社区反馈的很多有价值的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)
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
- a364176773
- 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)
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:
- [#1701] 移除无用的 imports
- [#1705] 优化了一些基于 java5 的语法结构
- [#1706] 将内部类声明为 static
- [#1707] 使用 StandardCharsets.UTF_8 代替 utf-8 编码
- [#1712] 抽象 undologManager 的通用方法
- [#1722] 简化代码提高代码的可读性
- [#1726] 格式化日志输出
- [#1738] 增加 seata-server jvm 参数
- [#1743] 提高批量打印日志的性能
- [#1747] 使用基本类型避免数据装箱
- [#1750] 抽象 tableMetaCache 方法
- [#1755] 提高 seata-common 模块的单测覆盖率
- [#1756] 升级 jackson 版本防止潜在的安全漏洞
- [#1657] 优化文件存储模式下文件 rolling 时占用较大 direct buffer的问题
非常感谢以下 contributors 的代码贡献。若有无意遗漏,请报告。
- slievrly
- long187
- ggndnn
- xingfudeshi
- BeiKeJieDeLiuLangMao
- zjinlei
- cmonkey
- jsbxyyx
- zaqweb
- tjnettech
- l81893521
- abel533
- suhli
- github-ygy
- worstenemy
- caioguedes
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
常用链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
0.8.1 (2019-09-18)
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和建议,非常感谢大家。
常用链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
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 的代码贡献。若有无意遗漏,请报告.
- slievrly
- Justice-love
- l81893521
- ggndnn
- zjinlei
- andyqian
- cmonkey
- wangjin
- Arlmls
- lukairui
- kongwang
- lightClouds917
- xingfudeshi
- alicexiaoshi
- itxingqing
- wanghuizuo
- 15168326318
- github-ygy
- ujjboy
- leizhiyuan
- vikenlove
同时,我们收到了社区反馈的很多有价值的issue和建议,非常感谢大家。
常用链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release: https://github.com/seata/seata/releases
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插件过低导致的版本号无替换,无法从中央仓库拉取依赖的问题。
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
0.7.0 (2019-07-12)
Release notes
Seata 0.7.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新主要内容如下:
功能特性
- [#1276] 新的 RPC 通信协议
- [#1266] metrics 可配置 (97)
- [#1236] tc server 支持metrics
- [#1214] 添加
shutdown.wait
(1212) - [#1206] 可以设置默认值
- [#1174] 添加nacos 初始化脚本 (1172)
- [#1145] 修复lock模式和存储模式的关联
- [#1125] 支持 protostuff 作为 UndoLogParser 的序列化
- [#1007] 支持 Protobuf 作为序列化 (97)
Bug 修复及优化
- [#1286] 排除 log 依赖 (97)
- [#1278] 传递 txId 到 TCC 拦截器
- [#1274] 优化 SQL join
- [#1271] @GlobalLock 修复报错 (97, 1224)
- [#1270] 打印异常信息
- [#1269] 修复 TMClinet 重连异常
- [#1265] 非全局事物,添加 addBatch
- [#1264] 更新ci配置 (97)
- [#1263] 添加贡献文档 (97)
- [#1262] 修复target class的寻找问题 (97)
- [#1261] 添加异常信息,当获取自增长的key时 (#1259) (97, 1259)
- [#1258] 优化 metrics 模块配置
- [#1250] 修复 protobuf 的配置 (97)
- [#1245] 重构 metrics
- [#1242] sql 优化
- [#1239] 修复 CME 在 ZK 服务发现的问题. (97)
- [#1237] 修复分支session 可能的 NPE (97)
- [#1232] 添加单测 io.seata.common.util CompressUtil, DurationUtil, ReflectionUtil
- [#1230] 优化全局🍜扫描器 #1227 (97, 1227)
- [#1229] 修复拼写错误 (97)
- [#1225] 优化 seata 配置环境信息. (97, 1209)
- [#1222] 修复 refresh cluster的bug (1160)
- [#1221] 修复sql的字段和数据库不一致的问题 (1217)
- [#1218] containsPK 忽略大小写 (1217)
- [#1210] 优化 arrayList 的并发问题
- [#1207] @Override 注解强制
- [#1205] 移除无用代码
- [#1202] 输出 branchRollback 失败日志 (97)
- [#1200] 修复 DefaultCoreTest.branchRegisterTest 测试 (1199)
- [#1198] 检查三方依赖的 license (1197)
- [#1195] TCC prepare 阶段晴空 上下文
- [#1193] 通过 storemode 关联 lockmode
- [#1190] 代码优化 (97, 540)
- [#1179] jackson 内容存储
- [#1177] 修复 TransactionException 异常未能释放锁的问题. (97, 1154)
- [#1169] 禁止重复的listener (1126)
- [#1165] 修复 INSERT_UNDO_LOG_SQL 缺失的占位符 (1164)
- [#1162] destroy() 时 重置 initialized flag 和 instance [##1105 (983, 97)
- [#1159] 修复 AT 模式 resourceId(row_key) 过长的问题 (97, 1158)
- [#1150] README.md 中更新seata 的版本 (97)
- [#1148] buffer 溢出bug 修复
- [#1146] 修改包名称 (97)
- [#1105] 重构 TmRpcClient & RmClient. (97)
- [#1075] 多环境隔离
- [#768] #751 添加事件机制
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
0.6.1 (2019-05-31)
Release notes
Seata 0.6.1 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新主要内容如下:
功能特性
Bug 修复及优化
- [#1099] 将UndoLogParser修改成SPI形式
- [#1113] 优化代码格式
- [#1087] 去掉无用的字节复制
- [#1090] 修改UndoLogParser的方法的返回格式,便于后续扩展
- [#1120] 修复分支事务提交和回滚时 xid使用错误的问题
- [#1135] 升级zookeeper以修复安全漏洞
- [#1138] 修复windows下seata-server.bat classpath过长的问题
- [#1117] 修复脏写校验时时间类型数据校验失败问题
- [#1115] 配置 seata-all 和 seata-bom 打包发布环境
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
0.6.0 (2019-05-24)
Release notes
Seata 0.6.0 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新主要内容如下:
功能特性
Bug 修复及优化
- [#1064] 修复 xid 和 branchId 长度错误
- [#1074] 修复一些拼写错误,并用lambda替换匿名类
- [#824] 添加事务恢复重试超时时间限制
- [#1082] 添加配置中心单实例缓存
- [#1084] 重构字符集和blob工具类
- [#1080] 升级fastjson和nacos-client版本
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
0.5.2 (2019-05-17)
Release notes
Seata 0.5.2 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新主要内容如下:
功能特性
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冲突失败问题
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
0.5.1 (2019-04-30)
Release notes
Seata 0.5.1 发布
Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新主要内容如下:
功能特性
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异常不抛出问题
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/seata/seata-samples
- Release:https://github.com/seata/seata/releases
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 修复
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/seata/seata/releases
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 异常导致的连接创建失败问题
相关链接
- Seata: https://github.com/seata/seata
- Seata-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/seata/seata/releases
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依赖优化
相关链接
- Fescar: https://github.com/alibaba/fescar
- Fescar-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/alibaba/fescar/releases
0.3.1 (2019-03-15)
Release notes
Alibaba Fescar 0.3.1 发布
Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新内容如下:
特性
Bug 修复
- [#569] 修复 Eureka renew 问题
- [#551] 修复 ConfigType NPE 问题
- [#489] 修复 GlobalRollback 请求时未收到分支 branchReport 问题
- [#598] 修复 p3c 扫描出不符合规范的若干问题;
相关链接
- Fescar: https://github.com/alibaba/fescar
- Fescar-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/alibaba/fescar/releases
0.3.0 (2019-03-08)
Release notes
Alibaba Fescar 0.3.0 发布
Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新内容如下:
特性
Bug 修复
- [#459] 修复了 mysql 关键字作为表名和列名生成 sql 问题
- [#312] 修复了原始业务 sql 无 where 条件生成 sql 出错问题
- [#522] 修复文件路径安全漏洞问题
- 对所有模块代码进行了 remove useless、 format 、optimize import、javadoc、copyright 整理
相关链接
- Fescar: https://github.com/alibaba/fescar
- Fescar-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/alibaba/fescar/releases
0.2.3 (2019-03-02)
Release notes
Alibaba Fescar 0.2.3 发布
Fescar 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
本次更新内容如下:
特性
Bug 修复
相关链接
- Fescar: https://github.com/alibaba/fescar
- Fescar-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/alibaba/fescar/releases
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 引用错误问题
相关链接
- Fescar: https://github.com/alibaba/fescar
- Fescar-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/alibaba/fescar/releases
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
- 优化相关依赖引用
相关链接
- Fescar: https://github.com/alibaba/fescar
- Fescar-Samples: https://github.com/fescar-group/fescar-samples
- Release:https://github.com/alibaba/fescar/releases