有道无术,术尚可求,有术无道,止于术。
文章目录
-
- 前言
-
- 新特性
- BUG 修复
- 优化
- 控制台功能
前言
Seata
终于发布了1.5.0版本,虽然是预发布,但是还是赶紧看看更新了哪些新特性。
新特性
新特性中的重点:
- 管理控制台
- TCC 模式支持幂等和反挂
[ #4115 ] 支持控制台管理
[ #3472 ] 添加 redisLocker 的 lua 模式
[ #3575 ] 支持混合使用不同存储的锁和会话
[ #3374 ] 为重复键更新插入添加执行程序
[ #3642 ] 提供一个 api 来将 tcc 阶段 1 的参数共享给阶段 2
[ #3064 ] 支持配置 TM 和 TCC 拦截器的顺序
[ #2852 ] 支持为 GlobalTransactionScanner 配置扫描目标
[ #3683 ] 支持 redis 分布式锁,防止多 TC 竞争
[ #3545 ]TCC 模式支持幂等和反挂
[ #3009 ] 支持使用 springboot 启动服务器并使用 application.yaml 进行配置
[ #3652 ] 支持 SkyWalking 的 APM
[ #3823 ] TCC 模式支持第二阶段方法的自定义参数列表
[ #3642 ] TCC 模式的 try 方法支持BusinessActionContext隐式传递
[ #3856 ] 支持 edas-hsf RPC 框架
[ #3880 ] 贡献 md 支持中文。
[ #2568 ] 支持 GlobalTransactionInterceptor 表达式
[ #3886 ] 支持注册中心网络首选项
[ #3869 ] 支持从环境获取配置
[ #3906 ] 支持 SPI 卸载
[ #3668 ] 支持 kotlin 协程
[ #3968 ] 支持 brpc-java RPC 框架
[ #4134 ] 初始化控制台基本代码
[ #4268 ] 文件模式下查询全局会话
[ #4281 ]redis模式下查询全局会话和全局锁
[ #4293 ] 在文件模式下获取全局锁
[ #4335 ]实现配置中心上传配置交互脚本(nacos,etcd3)
[ #4360 ]实现配置中心上传配置交互脚本(apollo,consul,zk)
[ #4320 ]实现console接口:db模式下获取全局会话和全局锁
[ #4435 ] 控制台前端页面实现
[ #4480 ] DefaultAuthSigner 的实现
[ #3870 ] 使 seata-bom 成为真正的物料清单
[ #3487 ] 为分布式锁添加 db 实现
[ #3889 ] 注册表添加心跳
[ #3951 ] 支持 zstd 压缩器
[ #2838 ] Saga 在 Spring Boot 项目中支持自动配置
BUG 修复
修复了很多BUG,笔者遇到过的有:
- 修复密码有特殊字符时 nacos 找不到用户的问题
- 修复 FastjsonUndoLogParser 中 LocalDataTime 类型无法回滚的问题
[ #3497 ] 修复 tcc 第二阶段响应超时异常
[ #3686 ] 修复 Apollo 的 NPE 和错误的集群名称
[ #3702 ] 修复一些评论
[ #3716 ] 修复 findTargetClass 方法中的问题
[ #3717 ] 修复区间错字
[ #3773 ] 修复 consul 找不到 tc 集群
[ #3695 ] 修复 mariadb 无法创建 XA 连接
[ #3783 ] 修复 store 模式不生效的问题
[ #3740 ] 修复事务结束LocalThread时未清除的问题Saga
[ #3792 ] 修复 Server 找不到 redis-host 属性
[ #3828 ] 修复 StringUtils StackOverflowError
[ #3817 ] 修复 TC SkyWalking 拓扑调用节点不聚集的问题
[ #3803 ] 修复 ReflectionUtil 抛出意外异常
[ #3879 ] 修复 postgresql 多模式抛出未找到通道异常
[ #3881 ] 修复 getConfig 使用不同的默认值返回第一个
[ #3897 ] 修复 FastjsonUndoLogParser 中 LocalDataTime 类型无法回滚的问题
[ #3901 ] 修复 seataio/seata-server servlet-api 冲突
[ #3931 ] 修复转储 jvm 内存进行分析时错误的路径和文件名
[ #3978 ] 修复未来超时导致的 NPE
[ #4266 ] 修复 oracle 中修改的行数大于 1000 时 register 分支和释放锁失败
[ #3949 ] 修复nacos-config.py不跳过空白选项的问题。修复拆分选项可能导致内容丢失的问题
[ #3988 ] 修复密码有特殊字符时 nacos 找不到用户的问题
[ #3998 ] 修复 jedis multi.exec 的 NPE
[ #4011 ] 修复 springboot 中无法获取分布式锁表属性的问题
[ #4025 ] 修复潜在的数据库资源泄漏
[ #4023 ]修复dubbo部分场景xid未清除的问题
[ #4039 ] 修复本地事务抛出异常后 RM 没有清除 XID
[ #4032 ] 修复 Seata 服务器使用 ShutdownHook 销毁 ApplicationContext 已经关闭的问题
[ #4074 ] 修复防止 XA 模式资源暂停
[ #4107 ] 修复项目构建过程中的死锁问题
[ #4158 ] 修复 logback 无法加载RPC_PORT
[ #4162 ] 修复 redis 注册表的正确内置属性
[ #4165 ] 修复obj 为原始数据数组时的StringUtils.toString(obj)抛出问题ClassCastException
[ #4169 ] 修复 xa 模式 originalConnection 已关闭,导致 PhaseTwo 无法执行的问题
[ #4177 ] 修复意外释放全局锁的问题
[ #4174 ] 修复删除 undo 日志连接已关闭
[ #4189 ] 修复kafka-appender.xml和logstash-appender.xml
[ #4213 ] 修复“sessionMode”代码不执行问题
[ #4220zstd ] 修复压缩器的一些问题并添加kotlin-maven-plugin
[ #4222 ] 修复插入字段列表为空时无法回滚的问题
[ #4253 ] 更新执行器存储实际修改的列,但不仅是设置条件下的列
[ #4276 ] 修复 seata-test 模块 UT 不工作
[ #4278 ] 修复 mysql 的 Blob/Clob/NClob 数据类型无法反序列化的问题
[ #4302 ] 修复其他 ORM 可能无法获取自增主键值的问题
[ #4233 ] 修复特定情况下锁和分支的数据残留问题。
[ #4308 ] 修复多个 Postgresql 模式下同一张表的 TableMetaCache 解析问题
[ #4326 ] 修复使用 mariadb 驱动时无法构建 Executor
[ #4355 ] 修复 mysql-loadbalance 资源 id 错误
[ #4310 ] 修复通过“select last_insert_id”获取 MySQL 数据库自增 ID 失败的问题
[ #4331 ] 修复使用 ONLY_CARE_UPDATE_COLUMNS 配置时可能出现的脏写检查异常
[ #4228 ] 修复 xa 模式下由于选择其他 ip 作为通道替代导致的资源暂停
[ #4408 ] 修复容器 env 中无效的环境变量
[ #4441 ] 修复 redis 模式下流水线资源不关闭的问题,添加 branchSession 判断 branchSessions 不为空
[ #4438 ] 修复develop分支文件模式下延迟删除GlobalSession无法正常删除的问题
[ #4432 ] 修复无法获取某些远程配置的问题
[ #4452 ] 修复 'service.disableGlobalTransaction' 配置的更改日志
[ #4449 ] 修复 redis 模式页面 npe 并优化 get globalSession 平均
[ #4459 ] 修复开发分支的 oracle 和 pgsql 获取前后图失败的问题
[ #4471 ] 在分支 'develop' 中,修复 service.vgroupMapping 更改时的错误
[ #4474 ] 修复 Mysql 多位 Bit 类型字段回滚错误
[ #4492 ] 修复使用开发分支的 eureka 时无法动态更新集群列表的问题
[ #4535 ] 修复 FileSessionManagerTest 失败
[ #4561 ] 修复 allSessions/findGlobalSessions 可能返回 null 并导致 npe
[ #4505 ] 修复时间数据类型的 fastjson 序列化
[ #4579 ] 修复 MySQLInsertOrUpdateExecutor 的 prepareUndoLogAll
[ #4005 ] 修复 PK 约束名称与 PK 唯一索引名称不同的问题
[ #4062 ] 修复 saga 复杂参数反序列化问题
[ #4199 ] 修复 rpc tm 请求超时
[ #4352 ] 修复 sql 解析器的一些问题
[ #4487 ] 修复移除分页 hideOnlyOnePage 属性
[ #4449 ] 修复优化 redis 限制并修复 redis 页面错误
[ #4608 ] 修复测试用例
[ #3110 ] 修复单元测试的问题
优化
优化项也有不少
[ #4163 ] 改进贡献文档
[ #3678 ] 补充缺少的配置和新版本文档
[ #3654 ] 修复错字,applicationContext -> applicationContext
[ #3615 ]事务提交后异步删除
[ #3687 ] 修复无法重试获取全局锁的情况
[ #3689 ] 修改文件 file.properties 中的属性前缀
[ #3528 ]优化redis模式的内存占用
[ #3700 ] 优化 buildLockKey 的速度
[ #3588 ]优化数据源自动代理逻辑
[ #3626 ] 删除重复更改状态
[ #3722 ] 添加分布式锁的基本代码
[ #3713 ] 统一 enableClientBatchSendRequest 的默认值
[ #3120 ] 优化Configuration和添加单元测试
[ #3735LoadBalance ]如果没有必要,不要加载
[ #3770 ] 关闭Closeable并优化部分代码
[ #3627 ] 使用 TreeMap 代替 TableMeta 中的 LinkedHashMap 以兼容高级 MySQL
[ #3760 ] 选择 logback 的配置seata-server
[ #3765 ] 将添加配置类的操作从“AutoConfiguration”转移到“EnvironmentPostProcessor”
[ #3730 ] 重构 TCC 模式的代码
[ #3820 ] 将列添加action_name到tcc_fence_log
[ #3738 ]JacksonUndoLogParser支持解析LocalDateTime
[ #3794 ] 优化包装seata-server
[ #3795 ] 优化 zk 注册表查找性能
[ #3840 ] 优化apm-skwalking生成规则的操作方法
[ #3834 ] 优化seata-distribution添加apm-seata-skywalking
[ #3847 ] 优化 ConcurrentHashMap.newKeySet 替换 ConcurrentSet
[ #3311 ] 支持从单个 Consul 密钥读取所有配置
[ #3849 ] 优化字符串连接
[ #3890 ] 优化只检查插入的字段
[ #3895 ]优化解码异常
[ #3898 ] 添加 jib-maven-plugin
[ #3904 ] 提高指标并修复 seata-server UT 不起作用
[ #3212 ] 优化识别 sql 的 limit 和 order by
[ #3905 ] 优化 nacos-config.sh 以支持 ash
[ #3935 ] 优化使用管道一次性发送 redis 命令
[ #3916 ]优化判断寄存器中的服务器是否存活
[ #3918 ] 缓存字段和方法的反射结果
[ #3898 ] 添加 jib-maven-plugin
[ #3907 ] 优化设置服务器端口
[ #3912 ] 支持在 env 中配置 JVM 参数
[ #3939 ] 使用 map 而不是 if else 判断未来更多变化
[ #3955 ] 为 seata 添加开始横幅
[ #3954 ] 替换@deprecated德鲁伊中的getOwnernName到getOwnerName
[ #3981 ]优化服务端口优先级
[ #4013 ]优化通道存活检查
[ #3982 ] 优化自述文件并升级一些依赖项
[ #3949 ]nacos-config.py支持默认参数和可选输入参数
[ #3991 ] 在 Springboot 的 FileConfiguration 中心禁用监听
[ #3994 ] 优化定时删除tcc_fence_log表中任务的机制
[ #3327 ] 支持从单个 Etcd3 键读取所有配置
[ #4001 ] 支持从 Nacos、Zookeeper、Consul、Etcd3 读取 YML 配置
[ #4017 ] 优化文件配置
[ #4018 ] 优化 Apollo 配置
[ #4021 ] 优化 Nacos、Consul、Zookeeper、Etcd3 配置
[ #4034 ] 优化 Nacos、Consul、Zookeeper 和 Etcd3 配置 Junit 测试类
[ #4055 ] 优化 NetUtil#getLocalAddress0
[ #4086 ] 优化延迟加载分支事务和任务调度
[ #4056 ] 优化 DurationUtil
[ #4103 ] 优化 AbstractLockManager#collectRowLocks 逻辑
[ #3733 ] 优化获取锁逻辑
[ #4144 ] 支持 tx-service-group 的默认配置
[ #4157 ] 优化客户端批量发送。
[ #4191 ] 支持 rpc 超时可以自定义。
[ #4216 ] 不再尝试为 none AT 模式清理 undolog
[ #4176 ] 使用 redis 作为注册中心时,使用 expire key 而不是 hash。
[ #4196 ] tc 批量响应客户端。
[ #4212 ] 优化控制台界面
[ #4237 ]当所有前图像为空时跳过检查锁
[ #4251 ] 优化部分代码处理
[ #4262 ] 优化 tcc 模块代码处理
[ #4235 ] 优化保存在 eureka 中的实例
[ #4277 ] 优化 redis-pipeline 模式下的获取锁返回失败快速代码。
[ #4284 ] 支持使用 ak/sk 对 MSE-Nacos 进行身份验证
[ #4299 ] 优化异常以使其友好
[ #4300 ]优化让DefaultCoordinator调用NettyRemotingServer的close方法,不再被ServerRunner关闭
[ #4270 ] 提升全局提交和全局回滚的性能,异步分支事务清理
[ #4307 ] 在 TCC 模式下不需要删除全局锁
[ #4303 ]tcc_fence_log表挂日志记录被异步删除
[ #4328 ] 上传配置脚本支持评论
[ #4305 ] 优化在 tc 上获取全局锁失败错误日志打印
[ #4336 ] 添加 AT 模式不支持的 SQL 异常提示
[ #4359 ] 支持从环境变量读取配置元数据
[ #4247 ]为java17和添加测试springbootgithub/actions
[ #4353 ] 瘦身seata-all.jar
[ #4393 ] 跳过 redis 和 db 模式的重新加载
[ #4400 ] 异步任务并行处理全局事务
[ #4391 ] 提交/回滚重试超时事件
[ #4409 ] 为测试类添加版权标头
[ #4282 ] 优化构建 UndoItem 逻辑
[ #4407 ] 文件模式不需要会话的惰性处理
[ #4436 ] 优化文件模式下的全局会话查询
[ #4431 ] 限制 Redis 存储模式下的查询数
[ #4465 ] 优化 tc 批量响应客户端模式下的客户端版本传输。
[ #4469 ] 优化控制台 DB 模式下获取配置的方式
[ #4478 ] 优化 Nacos 配置和命名属性
[ #4522 ] 优化 JVM 中的 GC 参数
[ #4517 ] 增强失败/超时状态指标和日志级别
[ #4451 ]filesessionmanager 改为单例并优化任务线程池处理
[ #4551 ] 优化指标 rt 统计
[ #4574 ] 支持 accessKey/secretKey 自动配置
[ #4583 ] 使用 HmacSHA256 代替 HmacSHA1 进行 ram 签名
[ #4591 ]优化开关的默认值
[ #3780 ]优化升级Druid版本
[ #3797BusinessActionContext ] 优化TCC try 方法外的支持实例
[ #3909 ] 优化collectRowLocks方法
[ #3763 ] 优化 github 操作
[ #4345 ]优化修复包的路径
[ #4346 ] 优化服务器日志并移除 lombok
[ #4348 ] 优化统一管理 maven-plugin 的版本
[ #4354 ] 优化测试SAGA
[ #4227 ] 优化依赖版本
[ #4403 ] 优化禁用SAGA测试
[ #4453 ] 优化升级 eureka-clients 和 xstream 依赖
[ #4481 ] 优化 nacos 配置和命名属性
[ #4477 ] 优化调试日志并修复错字
[ #4484 ]优化 TM/RM 寄存器的日志
[ #3874 ]优化添加注册企业logo,并将图片来源改为Alicdn
[ #4458 ] 优化修复 metrices 模块的 README.md
[ #4482 ] 优化去除重复词
控制台功能
首先下载1.5版本,启动,可以看到打印了控制台访问端口和路径。
输入地址http://localhost:7091/ ,使用seata/seata登录。
目前控制台的功能还是比较少,只是提供了全局事务和全局锁信息的查询功能。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: