news 2026/9/12 20:32:17

给 kkFileView 接上人大金仓:备份链路一次跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
给 kkFileView 接上人大金仓:备份链路一次跑通

给 kkFileView 接上人大金仓:备份链路一次跑通

【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView

kkFileView 是 Spring Boot 做的在线预览服务,默认不落任何数据库。本文以人大金仓 KingbaseES 为目标,带你落地四步:把服务元数据指到国产数据库上,再把备份链路跑通一遍。

一、为什么是这套组合

选型就三条理由:

  • KingbaseES V8R6 兼容 PostgreSQL 协议,JDBC 驱动拿来即用,改造成本低;
  • 工具链成熟:ksql 查询、sys_dump 备份,都是现成命令;
  • kkFileView 5.0.0 跑在 Spring Boot 3.5.6 + Java 21 上,落到库里的只是低频元数据写入,KingbaseES 扛得动。

预览效果不受影响,要备份的正是这类文档的元信息:

二、从 0 到 1:落地四步

1. 装 KingbaseES 并建库

这步干啥:把数据库装起来,建一个专用库。

chmod +x KingbaseES_V8R6_*.run ./KingbaseES_V8R6_*.run # 按向导安装,默认端口 54321 ksql -U system -d postgres -c "CREATE DATABASE kkfileview;"

它在干什么:装完库后用 ksql 建一个 kkfileview 专用库。确认跑通:ksql -U system -d kkfileview -c 'select version();'能回出版本号即可。

库起来之后,预览服务这边还不用碰数据库,先把服务跑起来。

2. 编译并启动 kkFileView 预览服务

这步干啥:拿到可运行的预览服务。

git clone https://gitcode.com/GitHub_Trending/kk/kkFileView cd kkFileView && mvn clean package -DskipTests java -jar server/target/kkFileView-5.0.0.jar

它在干什么:产物在 server/target 下,启动后监听 8012 端口。确认跑通:打开http://localhost:8012看到首页文件列表;/actuator/health返回 UP。

服务跑起来之后,预览服务这边只动一个文件。

3. 接上 KingbaseES 数据源与连接池

这步干啥:让应用连上库。⚠️ 先说清楚一件事:默认发行版不带 JDBC 依赖,pom.xml 里没有数据源组件,这一步要自己补。

先把官方 JDBC 驱动装进本地仓库:

mvn install:install-file -Dfile=kingbase8.jar \ -DgroupId=com.kingbase -DartifactId=kingbase8 -Dversion=8.6.0

它在干什么:把驱动 jar 登记到本地 Maven 仓库,pom 里才能声明这条依赖。随后在 pom 中补一个 JDBC starter,并把数据源配置追加到 application.properties 末尾:

# 数据源指向 KingbaseES spring.datasource.url=jdbc:kingbase8://localhost:54321/kkfileview spring.datasource.username=system spring.datasource.password=yourpassword spring.datasource.driver-class-name=com.kingbase8.Driver # Hikari 连接池 spring.datasource.hikari.maximum-pool-size=10 spring.datasource.hikari.minimum-idle=5 spring.datasource.hikari.idle-timeout=300000

改的是哪几行:前 4 行定连接,后 3 行定池子。库侧再建一张元数据表,名叫 document_meta,字段就几个:文件名、格式、大小、上传时间、备份状态。预览服务自身的 trust.host 等安全项另行配置,见 SECURITY_CONFIG.md,与备份链路互不干扰。

确认跑通:重新打包启动,日志无连接池报错,ksql 里能查到 document_meta 表。

4. 跑一次备份并验证结果

这步干啥:全量备份执行一次,调度接上。

sys_dump -U system -p 54321 -F p -f kkfileview_$(date +%F).sql kkfileview

它在干什么:sys_dump 是 KingbaseES 自带的全量备份命令,跑一次产出一个 SQL 文件。定时调度照项目现有风格配:SchedulerCleanConfig.java 里缓存清理用的就是每天凌晨 3 点的 cron,备份任务照抄即可。

✅ 验证两条:

ls -lh kkfileview_$(date +%F).sql # 备份文件已生成 ksql -U system -d kkfileview -c "SELECT count(*) FROM document_meta;"

文件在、行数和服务写入量对得上,链路就跑通了。

三、两个最容易问的点

KingbaseES 连接池参数怎么给

  • 现象:预览高峰连接池耗尽,低谷又大量空闲。
  • 原因:预览转换是长 IO 任务,连接被占住还不上来。
  • 建议值:maximum-pool-size 取并发转换线程数的一半左右,minimum-idle 取 1/4,idle-timeout 给 300000。

定时备份任务粒度怎么选

  • 现象:整点备份撞上预览高峰,互相抢 IO。
  • 原因:全量备份 IO 重,必须避开高峰时段。
  • 建议值:全量放每天凌晨 3 点(与项目现有 0 0 3 * * ? 一致),增量每小时一次。

四、踩坑速查

现象定位修复
连接失败:no suitable driver金仓 JDBC 驱动不在类路径驱动装入本地仓库并在 pom 声明
服务能起但不写库默认发行版无 JDBC starter补依赖后重新编译
备份文件过大、执行慢全量把大字段一并扫了拆分大表或改增量备份

到这里,预览服务的元数据已落在 KingbaseES 上,全量备份也验证通过,链路完整。下一步可以把备份结果接进监控告警,或给 KingbaseES 配一套主从做热备。

【免费下载链接】kkFileViewUniversal File Online Preview Project based on Spring-Boot项目地址: https://gitcode.com/GitHub_Trending/kk/kkFileView

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 20:29:21

从机房到云端,打通 SAP HANA 本地数据库与 SAP HANA Cloud 自助迁移通道

真正开始把一套 SAP HANA Platform 本地数据库迁往 SAP HANA Cloud 时,很多团队最早遇到的障碍往往不是数据量,也不是表结构兼容性,而是一件看起来很基础的事情,SAP 云端的迁移服务究竟怎样安全地访问企业内网里的那套 HANA 数据库。 这件事情如果只看表面,很容易被理解成…

作者头像 李华
网站建设 2026/9/12 20:29:05

从兼容性报告到可部署代码,SAP HANA Cloud 迁移中的 Development Phase

Self-Service Migration 的兼容性检查跑完以后,迁移项目往往会出现一个很有代表性的场景。数据库还没有真正搬到 SAP HANA Cloud,但报告里已经出现了一批需要处理的 Catalog Object、SQL、SQLScript、Calculation View、Repository Content 和应用依赖。有人看到这里会下意识…

作者头像 李华
网站建设 2026/9/12 20:26:49

从「脑内人设」到「一眼入魂」:51mazi 小说人物图 AI 生成实战

🎭 从「脑内人设」到「一眼入魂」:51mazi 小说人物图 AI 生成实战 💡 角色写了几万字,却总找不到一张「对味」的立绘?外包约稿贵、自己不会画、网图又怕撞款……51mazi——这款专为小说创作者打造的一站式写作软件——…

作者头像 李华
网站建设 2026/9/12 20:24:12

一文看懂 PHP 连接 MySQL 的几种方式

很多 PHP 开发者写数据库连接,靠的是“熟能生巧”:别人怎么用,我就怎么用。结果一查资料发现,光是连 MySQL 就有好几种方式,名字还容易搞混。更关键的是,很多人其实没搞清楚——它们根本不是平级的关系。这…

作者头像 李华
网站建设 2026/9/12 20:21:24

displaywidth:Go 终端显示宽度测量库的架构设计与工程实践

displaywidth:Go 终端显示宽度测量库的架构设计与工程实践 【免费下载链接】loki Like Prometheus, but for logs. 项目地址: https://gitcode.com/GitHub_Trending/lok/loki displaywidth 是一个高性能的 Go 库,用于测量字符串、UTF-8 字节切片和…

作者头像 李华
网站建设 2026/9/12 20:21:07

2026年AI就业爆发元年,小白也能入局的大模型学习路线!

本文深入分析了大模型方向的就业前景,指出2025-2026年是“大模型就业爆发元年”,围绕大模型催生了应用开发、RAG系统、Agent开发、模型微调及基础设施等岗位。文章强调大模型方向人才缺口巨大、薪资水平领先、国产大模型生态爆发及应用场景广泛&#xff…

作者头像 李华