Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务。
欢迎已使用用户在此链接登记便于我们更好的针对业务场景优化:https://github.com/seata/seata/issues/1246
此版本梳理了大部分用户反馈的 bug,对沉积的大部分问题进行了修复,XA部分修复尤其多。同时增加了鉴权、负载均衡、yml配置文件支持、注册配置中心属性、db字段类型、序列化、事务默认超时、事务重试和 GlobalLock等特性支持。
此次 release 修改文件数:348,最终代码变动:+8,844 −3,219 ,参与代码 commit 人数:27,合并pr数:84,其中:feature:13,bugfix:39,代码优化重构:32。
此版本的详细更新如下:
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
wangliang1986
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和建议,非常感谢大家。
常用链接:
Seata: https://github.com/seata/seata
Samples: https://github.com/seata/seata-samples
Release: https://github.com/seata/seata/releases
官网: https://seata.io