跳到主要内容

集成东方通TongRDS(SpringBoot3)

Version: 3.7+ 版本(SpringBoot 3.x)

JDK版本:17

本文针对 SpringBoot 3 版本(jakarta.* 命名空间、JDK17)。SpringBoot 2 版本请参考《集成东方通TongRDS》。

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

TongRDS介绍

TongRDS(简称 RDS)是分布式内存数据缓存中间件,用于高性能内存数据共享与应用支持。RDS为各类应用提供高效、稳定、安全的内存数据处理能力;同时它支持共享内存的搭建弹性伸缩管理;使业务应用无需考虑各种内存的复杂管理。

TongRDS采用Java语言纯自研架构,且完成了大量国产环境兼容适配性测试,对国产环境有很好的兼容性。 TongRDS内核完全自研,避免了Redis安全漏洞和接口后门,并且提供了国密加密技术,因此保证了更好的数据安全。 TongRDS完全兼容Redis中间件,应用迁移成本几乎为零。

环境说明

项目要求
操作系统TencentOS Server 3.3 (TK4)
JDK17+
TongRDS版本2.2+

一、TongRDS安装部署(单机)

部署模式

RDS 设计上完全兼容 Redis 的各种部署模式,主要有两种:

模式说明适用场景
单节点单个RDS节点,不提供数据持久化和备份开发测试环境,或数据可靠性要求不高的纯缓存场景
集群最少6节点(3主3从),虚拟槽分区,自动故障转移生产环境

下文采用单节点部署模式演示,生产环境请使用集群部署方式。

1. 上传安装包

单节点部署需要两个部署包:

  • XXXX.Node.tar.gz — RDS服务节点部署包
  • XXXX.MC.tar.gz — RDS中心节点部署包
# 在服务器上创建部署目录
ssh root@<服务器IP> "mkdir -p /opt/TongRDS"

# 上传安装包和license文件
TongRDS-2.2.1.8.MC.tar.gz
TongRDS-2.2.1.8.Node.tar.gz
center.lic

2. 部署中心节点

cd /opt/TongRDS

# 解压中心节点部署包(会创建pcenter目录)
tar -zxvf TongRDS-2.2.1.8.MC.tar.gz

解压后目录结构:

/opt/TongRDS/pcenter/
├── bin/ # 启动脚本
├── etc/ # 配置文件
├── lib/ # 依赖库
└── ...

license文件放入中心节点目录:

cp /opt/TongRDS/center.lic /opt/TongRDS/pcenter/

license文件具体存放路径以TongRDS版本文档为准,部分版本可能存放在etclicense子目录。

修改中心节点配置 pcenter/etc/cluster.properties

vi /opt/TongRDS/pcenter/etc/cluster.properties

配置内容:

WebService.type=default
WebService.nodes=1
# node0改为服务节点的IP和端口
WebService.node0=127.0.0.1:6200

node0的IP和端口需与后续服务节点配置一致。如果中心节点与服务节点在同一台服务器上,使用127.0.0.1即可。

启动中心节点:

cd /opt/TongRDS/pcenter/bin

# 启动中心节点
./StartCenter.sh

看到以下内容时,代表中心节点启动完成:

Service-Port 6300 is listened
JMXServer start at 29054
Center start.
Center stoped.

3. 部署服务节点

cd /opt/TongRDS

# 解压服务节点部署包(会创建pmemdb目录)
tar -zxvf TongRDS-2.2.1.8.Node.tar.gz

解压后目录结构:

/opt/TongRDS/pmemdb/
├── bin/ # 启动脚本、客户端工具
├── etc/ # 配置文件
├── lib/ # 依赖库
└── ...

license文件放入服务节点目录:

cp /opt/TongRDS/center.lic /opt/TongRDS/pmemdb/

修改服务节点配置 pmemdb/etc/cfg.xml

vi /opt/TongRDS/pmemdb/etc/cfg.xml

找到<Listen>节点,确认配置完整(不要删减默认项,否则 Redis 协议无法正常响应):

<Listen>
<Port>6200</Port>
<Threads>8</Threads>
<MaxConnections>${Server.Listen.MaxConnections:1000}</MaxConnections>
<Backlog>1024</Backlog>
<!-- 0: telnet; 1: SSL; 2: password; 3: SSL + password. default is 1 -->
<Secure>${Server.Listen.Secure:2}</Secure>
<Password>${Server.Listen.Password:537cb0e6b7fbad3b75f2245e61b4d2e4}</Password>
<RedisPort>6379</RedisPort>
<RedisPlainPassword>${Server.Listen.RedisPlainPassword:true}</RedisPlainPassword>
<RedisPassword>${Server.Listen.RedisPassword:123456}</RedisPassword>
</Listen>

<Listen> 中的 <Port><Threads><Secure> 等项不可省略,只保留 Redis 相关三项会导致连接返回空数据<Secure> 设为 0 表示不加密(telnet 模式),如需密码认证改为 2,如需 SSL 改为 13

RedisPlainPasswordtrue 表示密码以明文存储。生产环境建议设为 false 并使用加密密码。

启动服务节点:

cd /opt/TongRDS/pmemdb/bin

# 赋予执行权限
chmod +x *.sh

# 启动服务节点
./StartServer.sh

看到以下内容时,代表服务节点启动完成:

Server starting...
Memory cache create ok.
Begin to listen 6200
Waiting for synchronization 10 seconds
Rescuing data..
Rescue data ok.
Begin to listen 6379
JMXServer start at 29094

Server started.

确认端口监听正常:

ss -tlnp | grep -E '6200|6379'

4. 开放防火墙端口

# 开放RDS服务端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload

# 确认端口已开放
firewall-cmd --list-ports

同时在腾讯云控制台的安全组中放行6379端口(入站规则)。

如果JeecgBoot后端与TongRDS部署在同一台服务器上,无需开放防火墙端口,使用127.0.0.1连接即可。

二、JeecgBoot集成配置

TongRDS完全兼容Redis协议,JeecgBoot无需额外引入依赖或改动代码,只需将Redis连接配置指向TongRDS即可。

1. 修改Redis连接配置

打开JeecgBoot项目配置文件application-dev.yml(或application-prod.yml),修改Redis连接配置:

非SSL连接(默认):

spring:
data:
redis:
host: <TongRDS服务器IP>
port: 6379
password: 123456

SSL加密连接(已配置证书时):

spring:
data:
redis:
host: <TongRDS服务器IP>
port: 6380
password: 123456
ssl:
enabled: true

注意:SpringBoot 3 的 Redis 配置前缀为 spring.data.redis.*,不是 SpringBoot 2 的 spring.redis.*。如果从旧版本迁移,务必修改配置前缀,否则连接不上。

2. 启动项目

  • 1、启动JeecgBoot后端项目,确认启动日志中无Redis连接相关报错。
  • 2、启动前端项目,访问登录页面,登录操作正常。

3. 验证缓存数据

使用TongRDS自带的客户端工具查看缓存数据:

cd /opt/TongRDS/pmemdb/bin

# 非SSL连接(-r 表示 Redis 协议模式,必须加)
# 如果未配置密码认证,不加 -a 参数
./Client.sh -r -p 6379 ping

# 如果配置了密码认证
./Client.sh -r -p 6379 -a 123456 ping

# SSL连接
./Client.sh -r -p 6380 -s ping

# 进入交互模式(带密码)
./Client.sh -r -p 6379 -a 123456
> keys *

缓存数据已正常存入RDS中,至此JeecgBoot(SpringBoot3)集成TongRDS完成。