跳到主要内容

集成宝兰德CacheDB

SpringBoot版本:4.x(本文实测 JeecgBoot 3.9.3 + SpringBoot 4.1.0)

JDK版本:17

本文为认证测试专用新文档,实际安装介质为 D:\宝兰德\BCS3.5-install.zip(BES-CacheServer 3.2-BN3.5.0,简称 BCS3.5,一键安装包)。

本文针对 SpringBoot 4 版本(jakarta.* 命名空间、JDK17+)。SpringBoot 3 版本请参考《集成宝兰德CacheDB(SpringBoot3)》。CacheDB 兼容 Redis 协议,JeecgBoot 侧无需改代码、无需换依赖,仅修改 Redis 连接配置。

SpringBoot 4 的 Redis 配置仍位于 spring.data.redis.*(与 SpringBoot 3 相同),从 SpringBoot 2 工程迁移时务必修改前缀。

BES CacheDB介绍​

BES CacheDB(又称 BES CacheServer,简称 BCS)是一款宝兰德自研的分布式高性能 KV 存储数据库,完全兼容 Redis 协议标准,支持基于内存和文件的持久化存储,保证数据安全可靠。主要解决高并发、大数据量场景下的数据访问性能问题,具有高性价比、高可靠、弹性伸缩、高可用等特点。

环境说明​

项目版本
操作系统TencentOS Server 3.3(x86_64)
JDKOpenJDK 17.0.20(服务器已安装)
BCSBES-CacheServer 3.2-BN3.5.0,补丁 BCS3.5.0.2619.005
JeecgBoot3.9.3(SpringBoot 4.1.0)

一、BCS部署(单机)​

1、上传安装包​

将 BCS3.5-install.zip(约 2.4G)上传至服务器用户目录(本文为 /root)。安装包内含 X86、AARCH64、MIPS64EL、LOONGARCH64 四种 CPU 架构的产品包、5 个补丁和内置 JDK17,安装脚本会按服务器 CPU 架构自动选择。

# 在本地执行(Windows 可用 PowerShell 或 Git Bash),上传到服务器 /root 目录
scp BCS3.5-install.zip root@<服务器IP>:/root/

2、解压安装包​

cd /root
unzip -q BCS3.5-install.zip
cd BCS3.5-install

解压后目录结构:

BCS3.5-install/
├── install_bcs3.5_v1.sh # 一键安装脚本
├── config_install.cfg # 安装配置文件
├── README.md # 安装说明
├── package/ # 产品介质包(4 种 CPU 架构)
├── patch/ # 补丁 BCS3.5.0.2619.001 ~ 005
└── JDK/ # 内置 OpenJDK 17.0.14(x64 / aarch64)

3、修改安装配置​

编辑安装目录下的 config_install.cfg,重点关注以下参数:

参数默认值说明
DMSPATH/opt/bcs控制台安装目录
ADMIN_PORT4901控制台端口(HTTPS)
ADMIN_PASSWORDB#2008_2108#es控制台 admin 密码,同时作为 iastool 工具密码,务必修改
JDK_FORCE_INSTALLtruetrue:使用安装包内置的 JDK17(装到 DMSPATH 同级的 JDK17 目录,并写入当前用户的 ~/.bash_profile);false:使用系统 JDK(要求 17 ~ 21)
SERVICE_AUTO_STARTtrue控制台注册 systemd 开机自启
NODE_AUTO_STARTtrue节点注册 systemd 开机自启
HOSTNAME_SET空留空则保持当前主机名

本文服务器已安装 JDK 17,所以把 JDK_FORCE_INSTALL 改为 false、ADMIN_PASSWORD 改成自定义强密码,其余保持默认。可以用 vi config_install.cfg 手动编辑,也可以用下面的命令修改:

cd /root/BCS3.5-install
# 先备份原配置
cp config_install.cfg config_install.cfg.orig

# 1) 使用系统已装的 JDK17,不安装内置 JDK
sed -i 's/^JDK_FORCE_INSTALL=.*/JDK_FORCE_INSTALL="false"/' config_install.cfg

# 2) 修改控制台密码(把 PUT_YOUR_PASSWORD 换成你的强密码)
sed -i 's|^ADMIN_PASSWORD=.*|ADMIN_PASSWORD="PUT_YOUR_PASSWORD"|' config_install.cfg

第 2 条用 | 作 sed 分隔符,若你的密码里含 |、&、\ 这类字符,sed 会出错或替换错误,此时请改用 vi config_install.cfg 手动修改该行。

修改后核对关键配置:

grep -nE "^(HOSTNAME_SET|SERVICE_AUTO_START|NODE_AUTO_START|DMSPATH|ADMIN_PASSWORD|ADMIN_PORT|JDK_FORCE_INSTALL)=" config_install.cfg

ADMIN_PASSWORD 的默认值 B#2008_2108#es 是宝兰德产品通用的默认密码,不修改就等于控制台使用公开密码。脚本会把该密码明文写入安装摘要和 bcsinstall.log,安装后请妥善保管。密码中不要使用空格、引号、$ 等 Shell 特殊字符。

ADMIN_PASSWORD 必须满足 BCS 的密码复杂度策略:至少 10 位,且同时包含大写字母、小写字母、数字、特殊字符(还需避免 3 位以上连续/重复字符和键盘序列,且不能包含用户名 admin)。本文用的 Jeecg@Bcs2026# 即为合规示例。

若填了弱密码(如 123456),脚本「修改 admin 密码」这一步会被策略拒绝,报错:

Illegal option --newpassword : The password must be at least 10 characters and must include numbers, uppercase letters, lowercase letters, special characters!

此时改密并未生效(admin 仍是默认密码),脚本却继续用你填的弱密码去创建节点,于是节点创建认证失败、节点建不出来,安装末尾会看到 Command create --node failed. Authentication failed 和 [ERROR] 节点 node_13 自启配置失败。遇到这种情况需按「附录:节点未创建成功」卸载后用合规密码重装。

4、执行安装​

sh install_bcs3.5_v1.sh

安装过程中有 3 处交互:

提示本文输入说明
是否配置 /etc/hosts 域名解析?[y/n]y推荐配置
请选择要配置解析的网卡 [输入编号]1选择服务器内网网卡(本文为 eth0)
请输入选项 [1/2/3]11:root 用户;2:已存在的用户;3:创建新用户

之后脚本自动完成:环境检查 → 解压产品包 → 依次打补丁 001 ~ 005 → 启动控制台 → 修改 admin、secadmin、auditadmin 密码 → 创建并启动本机节点 → 重启控制台 → 注册开机自启,整个过程约 3 分钟。

安装完成后会输出安装摘要(控制台地址、密码、试用授权有效期、授权注册码、节点信息等),请保存:

安装包自带 183 天试用授权(摘要中「有效期至」),正式环境请向宝兰德申请授权。

确认控制台(4901)和节点(3100)端口已监听,开机自启已注册:

ss -tlnp | grep -E ':4901|:3100'
systemctl is-enabled bcs-admin-server

腾讯云等云主机镜像默认在 /etc/hosts 中把主机名映射到 127.0.0.1,安装脚本检测到已有映射会跳过添加。此时节点管理地址为 127.0.0.1:3100,后续创建的缓存实例也只监听 127.0.0.1(实例配置文件 bcs.conf 中为 bind 127.0.0.1)。JeecgBoot 与 BCS 部署在同一台服务器时不受影响;如需从其他服务器访问,需要让实例监听网卡 IP。

5、访问管理控制台​

https://<服务器IP>:4901/console
用户名:admin
密码:config_install.cfg 中设置的 ADMIN_PASSWORD

控制台是 https,自签名证书需在浏览器中点「高级 → 继续前往」。需要在安全组/防火墙中放行 4901 端口;不想把控制台开放到公网时,可以使用 SSH 端口转发,执行 ssh -L 4901:127.0.0.1:4901 root@服务器公网IP 后,在本机浏览器访问 https://127.0.0.1:4901/console。

登录后进入「总览」,可以看到安装脚本已创建 1 个节点、1 台主机:

6、确认节点​

「节点管理」中可以看到安装脚本自动创建的节点(名称为 node_ 加本机 IP 最后一段,本文为 node_13),状态为「已启动」。

BCS3.5 一键安装脚本会自动创建并启动本机节点,无需像 SpringBoot3 文档中那样手动新建、启动节点。

7、新建实例组​

  1. 「实例管理」→ 点击右上角「新建实例组」

  2. 填写实例组信息:实例组名称填 jeecg-boot,模式选「主从模式」(只创建一个主实例即单机使用),配置模板保持 defaultBCSMasterConf,点击「下一步」

模式可选「主从模式」「哨兵模式」「集群模式」,生产环境请按高可用要求选择。

  1. 创建实例:点击「新增」,节点名称选择 node_13,端口默认为 6080(JeecgBoot 连接用,可修改,注意不要与本机已有的 Redis 等服务端口冲突),填写密码(JeecgBoot 连接密码),点击「完成」

  2. 实例组创建后主实例为红色(未启动),点击实例组右上角「启动」,在弹窗中点「确定」

  3. 主实例变为绿色,启动成功

8、命令行验证​

BCS 兼容 Redis 协议,可以直接用 redis-cli 验证(服务器没有客户端时可执行 dnf install -y redis 安装):

ss -tlnp | grep :6080
redis-cli -h 127.0.0.1 -p 6080 -a '实例密码' --no-auth-warning ping
redis-cli -h 127.0.0.1 -p 6080 -a '实例密码' --no-auth-warning info server | head -8

返回 PONG;info server 中可以看到 bcs_version:3.2、bcs_build:3.5.0.xxx、bcs_mode:standalone。不带密码执行命令会返回 NOAUTH Authentication required.。

二、JeecgBoot 侧配置(SpringBoot 4)​

因为 BCS 兼容 Redis 协议,所以只改连接配置,不改代码、不换依赖。jeecg-boot-base-core 已通过 jeecg-boot-common 引入 spring-boot-starter-data-redis(SpringBoot 4.1.0 对应 Lettuce 7.5.2),无需额外添加。

修改 application-prod.yml(或当前使用的 profile 配置文件)中的 Redis 连接:

spring:
data:
redis:
database: 0
host: 127.0.0.1 # JeecgBoot 与 BCS 同机部署;异机部署填 BCS 服务器 IP
port: 6080 # 与控制台中的实例端口一致
password: <实例密码> # 与控制台中的实例密码一致

主机、端口、密码三项必须与控制台中实例的配置完全一致。

三、验证测试​

启动 JeecgBoot 后端,用 http://<前端IP>/ 登录系统(JeecgBoot 登录会把用户 token 写入缓存)。登录成功后,用 redis-cli 连接 BCS 实例(6080),可以看到 JeecgBoot 写入的键:prefix_user_token:*(登录令牌)以及大量 sys:cache:*(字典、在线表单、部门路径等业务缓存),说明 JeecgBoot 已正常把 BCS 当作 Redis 使用:

redis-cli -h 127.0.0.1 -p 6080 -a '实例密码' --no-auth-warning keys 'prefix_user_token:*'
redis-cli -h 127.0.0.1 -p 6080 -a '实例密码' --no-auth-warning keys 'sys:cache:*'
redis-cli -h 127.0.0.1 -p 6080 -a '实例密码' --no-auth-warning dbsize

附录:常见问题​

节点未创建成功(create --node failed: Authentication failed)​

现象:安装脚本末尾报 install_bcs3.5_v1.sh: 第 408 行:cd: /opt/bcs/node_13/bin: 没有那个文件或目录、[ERROR] 节点 node_13 自启配置失败,且 /opt/bcs/node_13 目录不存在、节点端口 3100 未监听。

原因:config_install.cfg 里的 ADMIN_PASSWORD 不满足 BCS 密码复杂度策略(见「一、3」),脚本「修改 admin 密码」被拒绝、改密未生效,后续用该密码创建节点时认证失败。查 /opt/bcs/logs/iastool.log 可看到 update --user-password failed(密码策略报错)和 create --node failed: Authentication failed。

解决:卸载当前这个半成品,用合规强密码重装。

# 1) 卸载 BCS 控制台
systemctl stop bcs-admin-server 2>/dev/null
systemctl disable bcs-admin-server 2>/dev/null
rm -f /etc/systemd/system/bcs-admin-server.service
systemctl daemon-reload
pkill -9 -f AdminServerMain 2>/dev/null
pkill -9 -f NodeAgentMain 2>/dev/null
pkill -9 -f bes-cache-server 2>/dev/null
rm -rf /opt/bcs
rm -f /tmp/bcs_node_name.txt

# 2) 改用合规强密码(≥10位,含大小写+数字+特殊字符),重装
cd /root/BCS3.5-install
sed -i 's|^ADMIN_PASSWORD=.*|ADMIN_PASSWORD="Jeecg@Bcs2026#"|' config_install.cfg
sed -i 's/^JDK_FORCE_INSTALL=.*/JDK_FORCE_INSTALL="false"/' config_install.cfg
sh install_bcs3.5_v1.sh

重装后确认节点真正建成:

ls -ld /opt/bcs/node_*          # 应能看到 node_<IP末段> 目录
ss -tlnp | grep -E ':4901|:3100' # 控制台 4901 + 节点 3100 都应监听