← 返回文章列表
信创 4 分钟阅读 炬鲸团队

炬鲸在麒麟/统信 + 达梦/人大金仓环境下的部署与调优

记录炬鲸在国产 OS(麒麟/统信)与国产数据库(达梦/人大金仓)上的完整部署流程:兼容性清单、依赖、初始化、数据库适配、启动验证与常见兼容问题处理。

兼容性清单

先说结论:炬鲸 OBSERVE 已完成主流信创软硬件的适配,生产环境在以下组合上长期稳定运行:

| 层级 | 支持的国产化产品 |
| --- | --- |
| CPU | 鲲鹏 920、飞腾 2000/2500、海光 3 号 |
| OS | 麒麟 V10(SP1/SP2/SP3)、统信 UOS 20/1050 |
| 数据库 | 达梦 DM8、人大金仓 KingbaseES V8、openGauss 3.x |
| 中间件 | 东方通 TongWeb、宝兰德 BES |

部署形态分两种:一体机(出厂预装,开箱即用)和软件包(在已有信创环境里部署)。本文讲软件包部署,因为这是大多数客户的实际场景。

环境准备与依赖

在麒麟 V10(ARM64)上,先装运行依赖。注意国产 OS 的软件源里部分包版本较旧,优先用系统自带的,避免从外部源拉入不兼容的 glibc:

# 以麒麟 V10 SP3 为例
yum install -y java-11-openjdk-devel libaio nss-softokn-freebl

炬鲸需要 JDK 11 及以上;国产 CPU 上务必确认装的是 ARM64 版 JDK,uname -m 返回 aarch64。数据库驱动放在安装目录 lib/ 下,从达梦/人大金仓官网下载对应版本的 JDBC 驱动包,不要用 Maven 中央仓库里的老版本,容易踩方言兼容的坑。

数据库初始化

以达梦 DM8 为例,先初始化实例并建库。关键参数:页大小建议 32K、字符集 UTF-8、大小写敏感按业务约定(炬鲸默认小写不敏感)。然后在库里创建业务账号:

CREATE USER jjhub IDENTIFIED BY "JjHub@2024";
GRANT DBA TO jjhub;

人大金仓 KingbaseES 对应操作是 CREATE USERGRANT,同时要确认 compatibility 模式。炬鲸在 KingbaseES 下推荐 ORACLE 兼容模式,能复用较多 SQL 语法。

配置文件与启动

解压安装包后,改 conf/application.yml 里的数据源:

datasource:
  driver: dm.jdbc.driver.DmDriver
  url: jdbc:dm://127.0.0.1:5236/JJHUB
  username: jjhub
  password: JjHub@2024

首次启动用 init 模式,让程序自动建表和写入初始数据:

./bin/start.sh --init

初始化完成后重启为正常模式。国产数据库下,建表 DDL 有方言差异,炬鲸内置了对应方言适配层,理论上无需手工改 SQL;如果遇到建表报错,先检查驱动版本是否与数据库大版本匹配。

验证与常见问题

启动后按顺序验证:进程存活 → 端口监听(默认 8080/4317/4318)→ 控制台登录 → 写入一条测试日志并检索。

实战中遇到频率最高的三个问题:

  1. 驱动加载失败ClassNotFoundException: dm.jdbc.driver.DmDriver。九成是驱动包没放对目录,或 lib/ 下同时存在多个版本的驱动冲突,删掉旧的只留一个。
  2. 建表字符集报错:达梦默认页大小 8K 时,某些宽字段建表会报「记录超长」。把实例页大小改成 32K 重建即可。
  3. arm 环境下 JDK 错装 x86 版file $(which java) 看是 64-bit 还是 ARM aarch64,装错会导致启动即崩,日志里出现 SIGSEGV

中间件与性能

如果部署在东方通 TongWeb 或宝兰德 BES 上而不是用内置服务,部署打包好的 war,JVM 堆至少给 4G,并加 -Dfile.encoding=UTF-8。鲲鹏/飞腾主机上建议开启厂商的 NUMA 调优,数据库和炬鲸进程尽量绑在同一 socket,跨 socket 的访问会明显拖慢批量日志写入。

存储层面,热索引放本地 NVMe,冷数据转对象存储。国产硬件往往快盘不多,冷热分离比在 x86 环境更关键。另外,信创环境经常内外网隔离,安装和升级都靠离线包。炬鲸提供全量离线安装包(含依赖和驱动),升级也建议离线操作,避免升级中途拉取外部源失败导致回滚。