产品白皮书
# 一、背景
数据库无法面对超高并发的数据存取场景,会出现高延迟、易崩溃等问题,严重影响系统稳定性以及用户体验。因此,缓存系统应运而生,成为大型系统中重要的组件,其功能就是提升系统性能、提高服务访问速度,同时有效防止数据库受到大量访问冲击而崩溃的问题发生。 缓存系统作为支撑高并发访问的关键服务,其中存储了大量的重要数据信息,其稳定性、可靠性、可扩展性要求特别高,目前流行的缓存软件只是开源的Redis,虽然开源的力量非常强大,但这对于数据安全性要求非常高的行业来说,十分不可靠。
# 二、发展历程
- 2021年1月,自主研发分布式缓存AMDC项立项
- 2021年5月,AMDCv1.0 beta版,具备缓存基础功能
- 2021年7月,发布完善的AMDCv1.0版,为AAS提供会话分布式缓存组件
- 2021年7月,开启AMDCv2.0项目,提升AMDC高可用
- 2021年12月,进行国产化适配,完成电子云、联通云、金蝶苍穹平台适配
- 2022年3月,发布具备高可用哨兵模式
- 2022年6月,发布具备高可用集群模式
- 2022年10月,补充性能测试工具、数据迁移工具,完成云原生化
# 三、产品概述
# (一)产品定位
金蝶Apusic分布式缓存软件(Apusic In-Memory Data Cache,简称:AMDC)是一款自主研发、高性能、高可用、可扩展的分布式缓存系统,提供数据缓存、缓存管控等能力,主要适用于高并发、分布式、高频数据存取等系统场景,为关键应用提供安全可靠的缓存支撑能力,并兼容Redis协议与持久化数据文件,能实现简单快捷平稳替换Redis。
# (二)产品受众
- 需要开发分布式、高并发系统的企业和单位。
- 从事分布式、高并发系统开发等岗位的技术人员。
- 从事缓存软件实施、维护的运维人员。
# (三)核心能力
- 数据缓存: 支持丰富的数据类型,满足不同类型的数据存储需求,快捷开发,减少类型转换。
- 高吞吐量: 能为大规模、高并发、高可用的关键应用提供可靠的缓存支撑能力。
- 国密传输: 支持数据使用国密加密传输,满足金融、军工等有高安全性要求的行业。
# 四、产品价值
# (一)提高业务系统性能与稳定性
数据库无法面对超高并发的数据存取场景,会出现高延迟、易崩溃等问题,严重影响系统稳定性以及用户体验。AMDC的主要功能就是作为系统与数据库之间的缓冲层,提升系统性能、提高服务访问速度,同时有效防止数据库受到海量访问冲击而崩溃。
# (二)简化业务功能实现
AMDC拥有丰富的数据类型,各个类型都拥有独立特性,不仅可以缓存数据,且可以在开发者快速实现多种业务功能,比如:排行榜、session共享、热点列表、消息通知等等。
# (三)产品自主可控
AMDC是金蝶天燕自主研发的产品,拥有非常高的可控性,满足信创大环境的所有要求,实现了缓存的完全国产化。
# 五、产品优势
# (一)高性能
拥有高性能的数据存取能力,在国产芯片鲲鹏920的加持下,在多个测试命令中取得了优异的成绩,最高单项成绩超越redis吞吐量的50%。
# (二)高可靠性
提供了复制功能,实现了多个相同数据的AMDC副本,提高容错率;使用去中心化的集群管理架构,用户访问集群中的任意数据节,请求都能路由到正确的节点;并且集群节点支持自动发现、故障探测、自动故障切换、数据迁移等能力,极大降低运维成本。
# (三)高安全性
支持IP、网段的白名单过滤,严格控制客户端访问的IP或网段;支持ACL(访问控制列表),细化用户访问权限,严格限制用户可访问的数据与可使用功能,确保数据访问安全;支持国密算法双向加密传输数据,保障数据安全。
# (四)高兼容性
兼容redis协议与功能,兼容主流编程语言的redis客户端,迁移成本极低;支持JAVA/GO/Python/C/C++等多种编程语言的客户端。
# (五)国产适配
- 芯片:飞腾、鲲鹏、海光、兆芯等x86、amd架构的芯片,以及loongarch架构的龙芯芯片。
- 操作系统:中标麒麟系统、银河麒麟系统、统信UOS、openEuler等linux系列的国产操作系统。
# (六)高效运维
拥有管控一体的可视化平台,提供自动部署、实例管理、自动扩容、模拟命令行、监控告警等实用功能,为实施运维带来简单快捷的操作方式。
# 六、产品架构
# 概述
AMDC内置高性能Key-Value数据库、三种数据安全功能、发布订阅模式,支持LUA脚本操作、数据持久化、三种高可用模式;提供自动部署、实例管理、自动扩容、模拟命令行、监控告警等实用功能的管控一体的可视化平台。

# 功能
# (1)Key-Value数据存储
所有数据以key-value形式存放在内存中的,拥有八种实用数据类型、数据超时机制、多种数据淘汰策略,保证系统高效运行。
# (2)发布/订阅
提供发布订阅功能,只要客户端订阅相关消息,当key值被更新时,服务端会自动通知客户端key的新值,可以实现消息系统。
# (3)Lua脚本支持
支持使用Lua脚本操作,可以将多个操作组合在一起,实现更复杂的业务逻辑。
# (4)国密/SSL加密传输
支持国密/SSL算法双向加密传输数据,保障数据安全,满足金融、军工等行业的高安全性要求。
# (5)IP白名单
支持IP、网段的白名单过滤,严格控制客户端访问的IP或网段。
# (6)ACL权限控制
细化用户访问权限,严格限制用户可访问的数据、可订阅的频道与可使用功能。
# (7)持久化
提供RDB持久化方式,即将内存的数据保存到硬盘中这样就保证了数据的可持久化,防止因故障而导致大量数据丢失。
# (8)管控一体可视化平台
提供自动部署、实例管理、自动扩容、模拟命令行、监控告警等实用功能,为实施运维带来简单快捷的操作方式。
# 七、部署环境
# 硬件环境
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 |
# 七、应用场景
# 1、热点数据缓存
拥有高性能的数据缓存能力,为大规模、高并发、高可用的关键应用提供安全可靠的缓存支撑能力,保障系统的正常、高效运行。
# 2、分布式锁
为分布式系统提供加锁操作,防止出现多个节点同时对数据做出操作而导致数据错误的问题。
# 3、数据共享
AMDC是分布式的独立服务,缓存的通用数据可以在分布式系统或多个应用之间共享。
# 4、轻量级消息队列
能够通过发布订阅模式/LIST数据类型/STREAM数据类型快速实现轻量级的消息队列。
# 5、位操作(大数据处理)
用于超大数据量场景下的数据统计、去重等业务中,例如在线用户统计,留存用户统计等等。
# 6、限时操作
拥有TTL机制,可以实现一些限时业务,在规定时间内完成操作,否者该操作将失效。