第1章 产品介绍
1.1 概述
TongRDS 是分布式内存数据缓存中间件,用于高性能内存数据共享与应用支持。TongRDS 为各类应用提供高效、稳定、安全的内存数据处理能力;同时它支持共享内存的搭建弹性伸缩管理;使业务应用无需考虑各种内存的复杂管理。
TongRDS 具有如下特点:
- 纯 java 架构,可移植性强;
- 10 亿级数据缓冲,内存优化管理,避免 GC 性能劣化;
- 高并发系统设计,可充分利用主机多 CPU 资源实现多请求并行处理;
- 数据采用 key-value + 多索引方式存储,字段类型和长度可配,索引数量、类型可配置;
- 支持多台服务并行运行,各服务可互为主备以负载分担方式运行;
- 数据采用独立队列完成多服务器间同步,同步异常不影响主业务;
- 支持数据有效期设置,过期数据自动回收;
- 服务重启时可从其他正常的服务获取在线数据,单台服务故障重启不影响整个系统正常提供业务,系统用此方式结合数据同步技术解决内存数据无法持久保持的单点问题;
- 采用异步网络 IO 技术,具有高负载、大并发的网络数据处理能力。
1.2 关键概念
- 服务节点:用于提供基础的 TongRDS 数据管理服务、哨兵监控服务,通过 TongRDS 服务节点的组合(即集群模式:单节点、哨兵集群、集群模式)可以提供完整的数据缓存服务。
- 中心节点:是缓存中间件企业版提供的集中管理模块,负责各服务节点以及接入的客户端的集中监控管理,配置同步,license 控制等集中管理操作。
1.3 逻辑架构
产品在设计时,充分考虑了大容量数据的特点,采用了分层的功能结构设计,总体架构如下图所示:
访问接口层 |
数据同步处理层 |
内存数据管理层 |
数据持久层 |
- 访问接口层:主要负责接收来自客户端的访问处理请求,如增删改等写操作,也包括查询等读取操作,本层主要提供数据访问接口;
- 数据同步处理层:主要负责和其他集群节点之间的处理操作,从而实现多个集群节点之间的数据同步;
- 内存数据管理层:负责实现对于内存数据的统一管理;
- 数据持久层:提供对于数据的持久化功能,保证数据安全可靠。
1.4 系统集群
本产品在设计时,充分考虑了行业业务的高可靠性要求,采用了多节点的集群机制,实现数据和业务的高可靠性。
集群设计原则:
- 每个节点都是全量数据。所有节点都是保存的全部数据,这样在集群中只要有一台服务器在工作,就可以保证数据的不丢失,和业务的可用性。
- 按 HASH 规则进行数据分配。所有数据通过 HASH 算法均匀分布到不同的节点,不同节点之间实现数据的同步,从而实现了负载分担。
1.5 部署模式
为了应对各应用系统从 Redis 迁移到 RDS 的需求,最大可能减少迁移带来的技术改造和运维调整工作。RDS 设计上采用:从外部接口角度完全 100%模拟 Redis 各种部署模式。常见部署模式有单节点模式、集群模式、哨兵模式和可伸缩集群模式四种,本文章主要介绍单节点模式的部署。
RDS 单节点模式,采用单个 RDS 节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略。这种模式部署简单,适用于开发测试环境中,或数据可靠性要求不高的纯缓存业务场景。
本文章主要介绍单节点模式的企业版部署过程,企业版的单节点模式是由两个部署单元组成:1 个RDS 服务节点,1 个 RDS 中心节点。
第2章: 安装前准备
1.1 运行环境
- RDS 为纯 java 应用,可支持国产软、硬件环境。
- RDS 运行需 java1.8 版本环境支持,OracleJDK 1.8、OpenJDK 1.8 或国产 JDK1.8 环境均可,目前测试 OpenJDK 11 可正常运行。
1.2 获取安装包
企业版 rds 分为中心节点和服务节点两部分。用户需要在主机上部署以下安装包:
安装包名称 | 说明 | 解压后目录名 |
---|---|---|
TongRDS-2.2.x.x.MC.tar.gz | 中心节点的安装包。 | pcenter |
TongRDS-2.2.x.x.Node.tar.gz | 服务节点的安装包。 | pmemdb |
第3章 :安装
3.1 安装中心节点
3.1.1 安装步骤
- 获取中心节点安装包,将安装包上传到 Linux 服务器的新建用户或已存在的用户目录下,例如:/home/xxx
- 执行解压命令:tar zxvf TongRDS-2.2.x.x.MC.tar.gz
- 将 License 文件 center.lic 复制到中心节点的 pcenter 目录下。
3.1.2 目录说明
TongRDS 中心节点的安装包解压后,/home/xxx/pcenter 目录下的子目录及文件如下。
目录名称 | 说明 |
---|---|
bin | 服务启停脚本,包括启动、停止、重启、版本信息显示等。 |
etc | 服务配置文件所在目录。 |
lib | 服务程序和第三方依赖包所在目录。 |
center.lic | License 授权文件。 注意:安装时需要用户手动复制 center.lic 文件到该目录下。 |
logs | 程序运行日志所在目录,中心节点启动后自动生成。 |
3.1.3 修改配置文件
- 进入配置文件目录 pcenter/etc:
cd pcenter/etc
- 在配置文件 cluster.properties 中检查并修改为如下配置:
vi cluster.properties
WebSession.type=register |
参数说明:
WebSession.type:WebSession 服务对应的类型。
3.1.4 启停中心节点
- 启动中心节点
在中心节点所在服务器的 pcenter/bin 目录下运行以下命令:
./StartCenter.sh
[xxx@master bin]# ./StartCenter.sh CenterService start at 6300 SentinelService start at 26379 Center start. RestServer start at 8086 |
查看日志:
中心节点在 pcenter/logs 目录下生成 server.log.xxxxxxxx 日志文件。
- 停止中心节点
在中心节点所在服务器的 pcenter/bin 目录下运行以下命令:
./StopCenter.sh
[xxx@master bin]# ./StopCenter.sh stop server: home=/home/xxx/pcenter The PID of the stopped process is 655 waited 1 seconds waited 2 seconds waited 3 seconds waited 4 seconds waited 5 seconds waited 6 seconds process 655 stoped |
3.2 安装服务节点
3.2.1 安装步骤
- 获取服务节点器安装包,将安装包上传到 Linux 服务器的新建用户或已存在的用户目录下,例如:/home/xxx
- 执行解压命令:tar zxvf TongRDS-2.2.x.x.Node.tar.gz
3.2.2 目录说明
TongRDS 服务节点的安装包解压后,/home/xxx/pmemdb 目录下的子目录及文件如下。
目录名称 | 说明 |
---|---|
bin | 服务启停脚本所在目录。 |
etc | 服务配置文件所在目录。 |
lib | 服务程序和第三方依赖程序包所在目录。 |
logs | 程序运行日志所在目录,服务节点启动后自动生成。 |
3.2.3 修改配置文件
- 进入配置文件目录 pmemdb/etc
cd pmemdb/etc
- 修改配置文件。
vi dynamic.xml,修改如下:
<Server> <Center> <Password>454d51192b1704c60e19734ce6b38203</Password> <EndPoint> <Host>localhost</Host> <Port>6300</Port> </EndPoint> </Server> |
参数说明:
- Server.Center.Password:连接中心服务使用的密码(缺省配置可不修改)。
- Server.Center.EndPoint.Host:中心节点的主机地址。
- Server.Center.EndPoint.Port:中心节点的服务端口。
3.2.4 启停服务节点
- 启动服务节点
在服务节点的 pmemdb/bin 目录下,运行以下命令:
./StartServer.sh
[xxx@master bin]# ./StartServer.sh load config-file '/home/xxx/pmemdb/etc/cfg.xml' ok. Server belonging to 'WebSession' is starting... Memory cache create ok. Start listening to port 6200 Start listening to port 6379 Server started |
查看日志:
服务节点在 pmemdb/logs 目录下生成 server.log.xxxxxxxx 日志文件。
- 停止服务节点
在服务节点的 pmemdb/bin 目录下,运行以下命令:
./StopServer.sh
[xxx@master bin]# ./StopServer.sh stop server: home=/home/xxx/pmemdb The PID of the stopped process is 594 waited 1 seconds waited 2 seconds waited 3 seconds waited 4 seconds process 594 stoped |
第4章 安装后验证
可以使用自带的 Client.sh –p 6379 进行连接,然后输入 set key value;get key 等命令操作数据,看是否正常操作。验证操作如下:
- 进入服务节点 pmemdb/bin 目录
cd pmemdb/bin
- 运行如下命令:
./Client.sh
[xxx@master bin]# ./Client.sh Command line protocol enabled. Node connection. Client is connected to localhost : 6379 Failed to create editable console, use the default. localhost:6379 > auth 123 localhost:6379 > +OK localhost:6379 > set aaa bbb localhost:6379 > +OK localhost:6379 > get aaa localhost:6379 > $3 localhost:6379 > bbb |
第5章 SpringBoot场景使用说明
5.1 使用springboot连接
使用 redisTemplate,该类可以存放任意类型的数据,但是该类型的数据必须实现序列,获取 redis 中对应的数据时,会进行反序列化。如果使用 RedisTemplate,建议指定 key,value,以及 hashkey 的序列化方式。
5.2 修改配置文件application.yml
修改 SpringBoot 工程的配置文件 application.yml:
参数说明如下:
- database:程序需要使用的 db 编号。
- host:RDS 应用所在服务器的地址。
- port:RDS 应用的服务端口号。
- password:登录 RDS 的密码。
5.3 创建RedisConfig类
在 SpingBoot 工程里创建 RedisConfig 类读取配置创建 RDS 客户端连接,代码举例如下:
5.4 单元测试
利用创建的 RDS 客户端连接类访问 RDS 数据,检查配置是否成功。测试代码举例如下: