技术白皮书
# 引言
前有斯诺登“棱镜门”,后有丹麦协助美国窃听盟友,信息安全不容忽视,而目前的软件系统中也存在着众多的国外软件以及国外的商用系统,给我们的信息安全带来了隐患。为了国家信息安全考虑,我国早在“十一五”和“十二五”期间,就已经启动了多项信息领域重大专项和“核高基专项”,推动基础软件产品等的国产化进程。数据缓存产品作为架构性的基础产品,在IT行业中应用广泛,但是此类产品更多是使用国外打造或者开源的产品,缺少坚实的安全基础及必要的的服务支持,逐渐成为IT基础架构中新的隐患。因此,基于弥补通用性IT架构短板的考虑,金蝶天燕于2021年初开始研发分布式缓存产品,目标是实现对开源产品Redis的全面、无缝替换,并提供全面的支持服务。
# 产品概述
# 产品名称
金蝶Apusic分布式缓存软件,简称AMDC,英文全名为Apusic In-Memory Data Cache。
# 产品定位
金蝶Apusic分布式缓存软件(Apusic In-Memory Data Cache,简称:AMDC)是一款自主研发、高性能、高可用、可扩展的分布式缓存系统,提供数据缓存、缓存管控等功能,主要适用于高并发、分布式、高频数据存取等系统场景,为企业高性能系统发挥最大助力,并兼容Redis协议与持久化数据文件,实现简单快捷平稳替换Redis。
# 产品的受众
- 需要开发分布式、高并发系统的企业或单位。
- 从事分布式、高并发系统开发等岗位的技术人员。
- 从事缓存软件实施、维护的运维人员。
# 核心能力
- 数据缓存: 支持丰富的数据类型,满足不同类型的数据存储需求,快捷开发,减少类型转换。
- 高吞吐量: 为大规模、高并发、高可用的关键应用提供可靠的缓存支撑能力。
- 国密传输: 支持数据使用国密加密传输,满足金融、军工等有高安全性要求的行业。
# 产品架构
# 业务需求
# (1)国产化替换
Redis是一款强大的内存数据库软件,它被很多系统广泛使用,但是它的内核复杂难以掌握,并且不再国人的掌控之中。AMDC作为同类产品,是由金蝶天燕自主研发、掌握核心技术,安全可控的内存数据库,性能同样强大且提供最安全稳定快捷的Redis替代方案,是作为国产化替代的最佳选择。
# (2)高并发系统的数据访问
如今的系统数据访问量越来越大,以至于数据库难以承受高并发访问带来的压力而出现崩溃的危险,为了降低数据库压力、提升系统运行的稳定性,需要数据缓存服务来承担高并发的数据访问。
# (3)分布式系统的需求
分布式系统中,数据之间的同步尤为重要,错误的数据会导致系统混乱不堪,失去价值。AMDC可以为分布式系统提供分布式锁,来保障分布式系统中的数据一致性。AMDC可以用于为分布式系统共享数据,session共享就是一种常见的数据共享。
# (4)金融行业的数据国密要求
在金融行业中,对数据保密要求高,即使内部系统之间数据交互也有加密需求,AMDC支持国密算法对数据进行加密。
# (5)访问与使用安全
缓存作为重要的数据存储工具,在限制访问权限方面也尤为重要,能有降低非法访问的风险。AMDC拥有IP白名单与ACL两种访问控制功能,为访问与使用安全提供双层保障。
# 整体架构
AMDC是一个高性能分布式缓存数据库,在内存中存储,用作数据库、缓存和消息代理,AMDC提供多种数据结构,内置了复制、Lua脚本、LRU淘汰机制、事务和不同级别的磁盘持久化功能,并通过集群模式自动分区提供高可用性;实现了Redis协议,全面兼容Redis功能,能够实现安全平稳替代Redis;AMDC为产品提供高效管理的管控台,能够实现快速部署,监控和故障警报等功能。

# 技术架构
AMDC的主要目的是高性能的数据缓存,并以更多功能模块来为数据缓存服务,提供更多相关业务支持。AMDC的每个大模块都能独立运行,减少系统间的耦合,提高系统性能,也更有利于系统的稳定运行、降低运维难度。
技术架构图(主体部分)

# 主要功能
# (一)Key-Value数据存储
所有数据以key-value形式存放在内存中的,拥有八种实用数据类型、数据超时机制、多种数据淘汰策略,保证系统高效运行。
# (二)发布/订阅
提供发布订阅功能,只要客户端订阅相关消息,当key值被更新时,服务端会自动通知客户端key的新值,可以实现消息系统。
# (三)Lua脚本支持
支持使用Lua脚本操作,可以将多个操作组合在一起,实现更复杂的业务逻辑。
# (4)国密/SSL加密传输
支持国密/SSL算法双向加密传输数据,保障数据安全,满足金融、军工等行业的高安全性要求。
# (五)IP白名单
支持IP、网段的白名单过滤,严格控制客户端访问的IP或网段。
# (六)ACL权限控制
细化用户访问权限,严格限制用户可访问的数据、可订阅的频道与可使用功能。
# (七)持久化
提供RDB持久化方式,即将内存的数据保存到硬盘中这样就保证了数据的可持久化,防止因故障而导致大量数据丢失。
# (八)管控一体可视化平台
提供自动部署、实例管理、自动扩容、模拟命令行、监控告警等实用功能,为实施运维带来简单快捷的操作方式。
# 技术优势
自主可控: 自主研发,自主创新框架,有强大的技术团队支持。
高可用设计: 支持主从、哨兵、集群三种高可用模式。
安全保障: 采用了国密传输、IP白名单、ACL访问控制,多种手段保障数据安全。
# 运行环境
# 硬件环境
AMDC支持单机、主从或集群的部署模式,并为不同的操作系统提供不同的安装包。以下为最低规格的要求。
| 部署模式 | 操作系统 | 安装内容 | 硬件规格 (CPU/内存/硬盘) | 服务器台数 |
|---|---|---|---|---|
| 单机 | Linux | AMDC控制台、AMDC服务 | 8核/32G/100G | 1 |
| 主从 | Linux | AMDC控制台、AMDC服务 | 8核/32G/100G | 2 |
| 哨兵 | Linux | AMDC控制台、AMDC服务 | 8核/32G/100G | 3 |
| 集群 | Linux | AMDC控制台、AMDC服务 | 8核/32G/100G | 3 |
# 软件环境
列举产品部署所需的软件环境
操作系统:Linux 系列系统、中标麒麟(龙芯)系统、银河麒麟(飞腾)系统、统信UOS、openEuler。
# 总结
# 产品优势
# (1)高性能
拥有高性能的数据存取能力,在国产芯片鲲鹏920的加持下,在多个测试命令中取得了优异的成绩,最高单项成绩超越redis吞吐量的50%。
# (2)高可靠性
提供了复制功能,实现了多个相同数据的AMDC副本,提高容错率;使用去中心化的集群管理架构,用户访问集群中的任意数据节,请求都能路由到正确的节点;并且集群节点支持自动发现、故障探测、自动故障切换、数据迁移等能力,极大降低运维成本。
# (3)高安全性
支持IP、网段的白名单过滤,严格控制客户端访问的IP或网段;支持ACL(访问控制列表),细化用户访问权限,严格限制用户可访问的数据与可使用功能,确保数据访问安全;支持国密算法双向加密传输数据,保障数据安全。
# (4)高兼容性
兼容redis协议与功能,兼容主流编程语言的redis客户端,迁移成本极低;支持JAVA/GO/Python/C/C++等多种编程语言的客户端。
# (5)国产适配
- 芯片:飞腾、鲲鹏、海光、兆芯等x86、amd架构的芯片,以及loongarch架构的龙芯芯片。
- 操作系统:中标麒麟系统、银河麒麟系统、统信UOS、openEuler等linux系列的国产操作系统。
# (6)高效运维
拥有管控一体的可视化平台,提供自动部署、实例管理、自动扩容、模拟命令行、监控告警等实用功能,为实施运维带来简单快捷的操作方式。
# 应用价值
# (1)高性能数据缓存
拥有出色的数据缓存能力,为大规模、高并发、高可用的关键应用提供安全可靠的缓存支撑能力,保障系统的正常、高效运行。
# (2)分布式锁
为分布式系统提供加锁操作,防止出现多个节点同时对数据做出操作而导致数据错误的问题。
# (3)数据共享
AMDC是分布式的独立服务,缓存的通用数据可以在分布式系统或多个应用之间共享。
# (4)轻量级消息队列
能够通过发布订阅模式/LIST数据类型/STREAM数据类型快速实现轻量级的消息队列。
# 术语及缩略语表
# 术语
数据缓存:数据缓存是把数据存于内存中,使应用能高速,大量访问的内存数据库。
# 缩略词表
| 英文缩写 | 英文全名 |
|---|---|
| RDB | Redis DataBase |
| AOF | Append Only File |
| DB | DataBase |