有道无术,术尚可求,有于术。
文章目录
-
- 前言
-
- 新特性
- 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登录。
目前控制台的功能还是比较少,只是提供了全局事务和全局锁信息的查询功能。