一、概念
当数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,使用缓存可使数据访问性能得到数量级提升。分布式缓存是一款分布式key-Value数据库服务,兼容Redis协议,主要用于持久化数据的存储或缓存数据的存储,具备低延迟高性能、高可用性、支持复杂业务的特点,这里主要介绍高可用之数据存储。
二、特点:
- 实现主备切换消除单点故障,即当主节点出现故障时,可实现主备切换,保障服务的高可用;
- 主备故障数据可靠性,在主机处理完后,需要等待备机接受,才返回给客户端,对吞吐量无影响,主机完全故障后,会进行主备切换,实现数据无损适合高可靠场景
- 优化Redis持久机制,新增RDB+AOF流水备份模式,降低恢复时间90%;
- 实现故障隔离机制避免故障蔓延;
- 单点故障秒级自动恢复,并保障数据完整可靠;
三、原理
- 如何实现主备切换?
- 通过agent监控实时数据存储节点状态
- 调度控制程序分析节点状态,根据一定权重和策略设置主机故障,当监测到主节点故障时,执行主备切换。与此同时,还会通过存储时耗和错误码动态汇总分析,提高故障判断准确率,防止对主节点的误操作。
- 如何快速恢复?
- 通过RDB+AOF配对文件实现数据快速备份,加快数据恢复;
- 业务低谷时发起数据备份,降低性能损耗;
- 节点守护进程自动检测,出现进程宕掉时,会由守护进程自动拉起,实现单进程故障秒级恢复
- 如何实现故障隔离?
通过存储集群(Data-SET)实现数据存储的分区,并能按group(表)实现存储隔离,具体实现如图1所示,接入层使用异步回调机制,消除故障敏感;
图1:数据访问隔离原理
四、适用场景:
应用场景如下但不限于:
1、热点数据的分级存储场景如数据库全局索引;
2、热点数据缓存场景如产品/销售品配置,主数据;
3、高频过程数据存储如高频外部接口数据缓存、会话session、订单分布式处理事务锁