Tair标准架构具有数据高度一致、架构简单、性价比高等特点,可满足多种场景下的需求,但标准架构不支持增加数据分片或只读节点,仅提供高可用(双副本)与单副本实例类型。
如需增加数据分片或实现读写分离,请选择集群架构或读写分离架构。
高可用采用主从架构,提供高性能的缓存服务,且支持数据高可靠。
单副本采用单节点架构,适用于数据可靠性要求不高的纯缓存业务场景,性价比高。
高可用
标准架构高可用类型采用主从(master-replica)架构搭建。主节点提供日常服务访问,从节点提供HA高可用,当主节点发生故障,系统会自动在30秒内切换至从节点,保证业务平稳运行。
标准架构高可用类型的特点如下:
可靠性
服务可靠
采用双机主从(master-replica)架构,主从节点位于不同物理机。主节点对外提供访问,用户可通过Redis命令行和通用客户端进行数据的增删改查操作。当主节点出现故障,自研的HA系统会自动进行主从切换,保证业务平稳运行。
数据可靠
默认开启数据持久化功能,数据全部落盘。支持数据备份功能,用户可以针对备份集回滚实例或者克隆实例,有效地解决数据误操作等问题。同时,在支持容灾的可用区(例如杭州可用区H+I)创建的实例,还具备同城容灾的能力。
兼容性
标准架构完全兼容Redis协议,自建的Redis数据库可以平滑迁移至Tair标准架构。阿里云还提供数据传输工具(DTS)支持用户进行增量迁移,保证业务平稳过渡。
阿里云自研
故障探测切换系统(HA)
阿里云Tair服务封装HA切换系统,实时探测主节点的异常情况,可以有效解决磁盘IO故障,CPU故障等问题导致的服务异常,及时进行主从切换,从而保证服务高可用。
主从复制机制
阿里云针对Tair主从复制机制进行了定制修改,采用增量日志格式进行复制传输。当主从复制中断后,对系统性能及稳定性影响极低,有效地避免了Redis原生复制的弊端。
Redis原生复制弊端简要如下:
Redis复制中断后,从节点会立即发起psync,psync尝试部分同步,如果不成功,就会全量同步RDB并发送至从节点。
如果Redis全量同步,会导致主节点执行全量备份,进程 Fork,可造成主节点达到毫秒或秒级的卡顿。
Redis进程Fork导致Copy-On-Write,Copy-On-Write导致主节点进程内存消耗,极端情况下造成主节点内存溢出,程序异常退出。
Redis主节点生成备份文件导致服务器磁盘IO和CPU资源消耗。
发送GB级别大小的备份文件,会导致服务器网络出口爆增,磁盘顺序IO吞吐量高,期间会影响业务正常请求响应时间,并产生其他连锁影响。
标准架构高可用类型的适用场景:
对Redis协议兼容性要求较高的业务
标准架构完全兼容Redis协议,业务可以平滑迁移。
Tair作为持久化数据存储使用的业务
标准架构提供持久化机制及备份恢复机制,极大地保证数据可靠性。
单个Tair性能压力可控的业务
由于Redis原生采用单线程机制,性能在10万QPS以下的业务建议使用。如果需要更高的性能要求,请选用集群架构。
Tair命令相对简单,排序、计算类命令较少的业务
由于Tair的单线程机制,CPU会成为主要瓶颈。如排序、计算类较多的业务建议选用集群架构配置。
单副本
标准架构单副本类型采用单个数据库节点部署架构,没有可实时同步数据的从节点,适用于数据可靠性要求不高的纯缓存业务场景使用。单副本架构具有明显的价格优势,性价比较高。
标准架构单副本类型的适用场景:
纯缓存类业务场景
单副本架构不能提供数据可靠性,如果发生节点故障,您需要重新对业务进行预热,因此,在对数据可靠性要求较高的敏感性业务中,建议选用双副本架构。
对Redis协议兼容性要求较高的业务
标准版完全兼容Redis协议,业务可以平滑迁移。
单个Redis性能压力可控
由于Redis原生采用单线程机制,为单核CPU,性能在8万QPS的业务建议使用。如果需要更高的性能要求,请选用集群版配置。
Redis命令相对简单,排序、计算类命令较少
由于Redis的单线程机制,CPU为主要瓶颈。如排序、计算类较多的业务建议选用集群版配置。