DCS 分布式缓存服务实例类型介绍
华为云 DCS 分布式缓存服务,作为一种支持 Key-Value 等多种数据结构的存储系统,可用于缓存、事件发布或订阅、高速队列等典型应用场景。那么 DCS 服务提供哪些实例类型呢?
DCS 实例类型
Redis 单机实例
单机:适用于应用对可靠性要求不高、仅需要缓存临时数据的业务场景。单机实例支持读写高并发,但不做持久化,实例重启后原有缓存数据不会加载。
特点
1. 系统资源消耗低,支持高 QPS
2. 进程监控,故障后自动恢复(30 秒内会重启一个新的进程)
3. 即开即用,数据不做持久化
4. 低成本,适用于开发测试
单机实例示意图
注:VPC 内访问,客户端需要与单机实例处于相同 VPC,并且配置安全组访问规则
DCS Redis 支持的单机实例有:Redis 3.0(已下线)、Redis 4.0 和 Redis 5.0
Redis 主备实例
主备:包含一个主节点,一个或多个备节点,主备节点的数据通过实时复制保持一致,当主节点故障后,备节点自动升级为主节点。同时用户可通过读写分离技术,在主节点上写,从备节点读,从而提升缓存的整体读写性能。DCS 的主备实例在单机实例基础上,增强服务高可用以及数据高可靠性。
特点
1. 持久化,确保数据高可靠(主备节点都默认开启数据持久化)
2. 数据同步(通过增量数据同步的方式)
3. 故障后自动切换主节点,服务高可用(备节点在 30 秒内自动完成主备切换)
4. 多种容灾策略(支持将主备实例部署在不同的 AZ 内)
5. Redis 4.0 和 Redis 5.0 主备实例支持客户端读写分离(分别提供可读写的连接地址(主节点)和只读地址(备节点))
Redis 3.0 主备实例架构设计示意图(已下线)
注:VPC 内访问,客户端需要与主备实例处于相同 VPC,并且配置安全组访问规则
Redis 4.0/5.0/6.0 基础版主备实例架构设计示意图
注:Redis 4.0/5.0/6.0 基础版主备实例使用哨兵模式(Sentinel)进行管理,Sentinel 会一直监控主备节点是否正常运行,当主节点出现故障时,进行主备倒换。Sentinel 对用户不可见。
Redis 6.0 企业版主备实例架构设计示意图
注:VPC 内访问,客户端需要与 Redis 6.0 企业版主备实例处于相同 VPC,并且配置安全组访问规则
DCS Redis 支持的主备实例有:Redis 3.0(已下线)、Redis 4.0、Redis 5.0 和 Redis 6.0。且不支持 Redis 主备升级,比如从 4.0 升级为 5.0 主备实例。
1.1.1 3 Redis Proxy 集群实例
Proxy 集群:在 Cluster 集群的基础上,增加挂载 Proxy 节点和 ELB 节点,通过 ELB 节点实现负载均衡,将不同请求分发到 Proxy 节点,实现客户端高并发请求。每个 Cluster 集群分片是一个双副本的主备实例,当主节点故障后,同一分片中的备节点会升级为主节点来继续提供服务。Redis 3.0/4.0/5.0 Proxy 集群实例不支持读写分离。
Redis 3.0 Proxy 集群因为已下线,不再介绍。
Redis 4.0/5.0 Proxy 集群特点
1. 基于 LVS+Proxy 的高可用集群版本
2. 在创建实例时,支持自定义分片大小(每个分片内存=实例规格/分片数)
3. ELB 弹性负载均衡服务器,采用集群高可用方式,支持多可用区部署
Redis 4.0/5.0 Proxy 集群实例示意图
注:Redis 4.0/5.0 Proxy 集群实例,当前仅部分区域支持,请以控制台实际上线区域为准。
DCS Redis 支持的 Proxy 集群实例有:Redis 3.0(已下线)、Redis 4.0、Redis 5.0。
Redis Cluster 集群实例
Cluster 集群:通过分片化分区来增加缓存的容量和并发连接数,每个分片是一个主节点和 0 到多个备节点,分片本身对外不可见。分片中主节点故障后,同一分片中备节点会升级为主节点来继续提供服务。用户可通过读写分离技术,在主节点上写,从备节点读,从而提升缓存的整体读写能力。Redis 4.0/5.0 Cluster 集群实例支持从客户端实现读写分离。
特点
1. Cluster 版 Redis 集群兼容开源 Redis 的 Cluster,基于 smart client 和无中心的设计方案,对服务器进行分片
Cluster 集群无中心架构图
Redis Cluster 的任意节点都可以接收请求,但节点会将请求发送到正确的节点上执行,同时,每一个节点也是主从结构,默认包含一个主节点和一个从节点,由 Redis Cluster 根据选举算法决定节点主从属性。
Cluster 集群数据预分片
Redis Cluster 会预先分配 16384 个 slot,每个 Redis 的 server 存储所有 slot 与 redis server 的映射关系。key 存储在哪个 slot 中,由 Crc16(key) mod 16384 的值决定。
DCS Redis 支持的 Cluster 集群实例有:Redis 4.0、Redis 5.0。
读写分离实例
读写分离:在主备实例的基础上,增加挂载 Proxy 节点和 ELB 节点,通过 ELB 节点实现负载均衡,将不同请求分发到 Proxy 节点,Proxy 节点识别用户读写请求,将请求发送到主节点或备节点,从而实现读写分离。
读写分离主要适用于读高并发、写请求较少的业务场景,解决高并发的性能问题,节约运维成本。
特点
1. 服务端读写分离,默认为从服务端侧实现的读写分离
2. 通过 Proxy 节点识别用户读写请求,如果是写请求,则转发给主节点,如果是读请求,则转发给备节点,不需要用户在客户端做任何配置
读写分离实例示意图
读写分离实例,仅在部分 Region 支持,具体请以控制台显示为准。
Sentinel 集群用来监控主备节点状态,当主节点出现故障或异常时,进行主备倒换,保证服务不中断。读写分离实例,后端是一个主备实例,包含了主和备两个节点。默认开启数据持久化功能,同时保持节点间数据同步。
DCS Redis 支持的读写分离实例有:Redis 4.0、Redis 5.0。
Memcached 单机实例 和 Memcached 主备实例(已停售)
单机:适用于应用对可靠性要求不高、仅需要缓存临时数据的业务场景。单机实例支持读写高并发,但不做持久化,实例重启后原有缓存数据不会加载。
主备:包含一个主节点和一个备节点,主备节点的数据通过实时复制保持一致,备节点对用户不可见且不能直接读写数据,当主节点故障后,备节点自动升级为主节点。
DCS Memcached 已停售,建议使用 Redis 实例。
DCS 的 Memcached 单机实例示意图
DCS 的 Memcached 主备实例示意图
评论