首页 > 开源 > Jync v1.7.3 — 一键升级与版本检查双通道

Jync v1.7.3 — 一键升级与版本检查双通道

OSChina资讯 2026-10-15 09:22 4 阅读 查看原文

本版主题是 在线升级能力与 CDC 实时性收尾:设置页新增「一键升级」,版本检查改 GitHub → Gitee 双通道兜底;三种轮询类日志 CDC 引擎对齐 Flink CDC 的延迟语义(捞到变更零等待续读);并修复升级待重启徽章在已是最新版本时仍常驻显示的问题。

本次更新

新功能:版本检查双通道兜底

  • 检查更新先请求 GitHub,5 秒内无结果或请求失败自动改查 Gitee 镜像;两个源都不可达才提示「更新检查失败,稍后自动重试」,内网单源故障不再误报

  • 成功结果缓存 10 分钟、失败缓存 1 分钟;新增配置 app.update-check.timeout-ms(默认 5000)

新功能:管理员一键升级

  • 设置页发现新版本后,管理员可直接点「一键升级」在弹窗中选择下载源(Gitee / GitHub,默认 Gitee),访客仍只看到发布页外链

  • 升级流程:获取最新 release 的 jync.jar 地址 → 后台带进度条下载 → 声明大小核对 + zip 完整性双重校验 → 旧 jar 改名 .bak 备份、新 jar 原子改名替换 → 写升级 marker

  • 重启二选一:「立即重启」由程序生成 detached 助手脚本(bash / PowerShell),自动等旧进程退出、起新进程、探端口就绪,新进程起不来自动回滚到 .bak;也可「稍后手动重启」,marker 跨进程保留状态,重启后自动清理备份与脚本

  • 全部接口(含状态轮询)管理员专属;exploded 开发环境启动时直接拒绝,不会误操作 classpath

CDC 延迟对齐 Flink 语义

  • LogMiner / PostgreSQL 逻辑解码 / SQL Server CDC 三个轮询引擎:捞到数据立即开下一轮(0 等待),只有真正空闲才休眠,失败才指数退避——修复了此前繁忙成功轮也固定 sleep 1/2/4 秒的自伤延迟

  • 新增项目级「CDC 空闲轮询间隔」配置(cdcIdlePollMs,默认 Oracle 1000ms / PG 500ms / SQLServer 1000ms,读侧 50ms 下限);MySQL binlog 本就是推送模式,不受影响

  • 实际延迟:binlog 近实时推送,其余三种引擎亚秒~秒级

CDC 聚合变更日志

  • 变更日志页对 CDC 高频回放按表做 10 秒窗口聚合,每个窗口落一条「N upserts, M deletes(through SCN/LSN/binlog 位点)」,日志页不再被逐行变更刷爆;行数仍为准确合计

  • 消费者停止时补刷最后一个窗口;元数据库写入失败仅告警不杀消费线程;sync.cdc.change-window-ms=0 可关闭,四种引擎全覆盖

CDC 配置体验

  • 目标库连接不再做 CDC 就绪探测(目标端本就不挖日志,此前的探测项纯误导)

  • 「挖掘账号」字段仅在源端为 Oracle 时显示;就绪探测的标题与检查项按源库类型走 i18n

其他改进

  • 项目详情页同步选项:源库中不存在的对象类别默认关闭并禁用勾选(零对象类别不可再被勾上后报空)

  • 修复:「新版本已下载,点击重启生效」黄色徽章在已是最新版本时仍常驻——根因是 .badge 等组件的 display 样式覆盖了浏览器对 hidden 属性的默认隐藏,已全局修正(弹窗按钮组、连接测试提示框同症一并修复)

文档

  • README / README_EN 补齐 Docker 部署:docker compose up -d --build 与裸 docker 命令、镜像标签随版本更新;nohup 启动示例统一带上 --spring.config.additional-location=file:./application.yml