阿里云数据库全新功能Redis读写分离,全维度技术解析

阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统

文末有彩蛋,请务必记得看完整哦

背景

目前的阿里云redis不管主从版还是集群规格,slave作为备库不对外提供服务,只有在发生HA,slave提升为master后才承担读写。这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制。经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格。

为满足读多写少的业务场景,最大化节约用户成本,阿里云redis推出了读写分离规格,为用户提供透明、高可用、高性能、高灵活的读写分离服务。

架构

目前的redis集群模式有redis-proxy, master,slave, HA等几个角色,在读写分离中,新增readonly slave角色承担读流量,slave作为热备不提供服务,架构上保持对现有集群规格的兼容性。redis-proxy按权重将读写请求转发到master或者某个readonly slave上;HA负责监控DB节点的健康状态,异常时发起主从切换或重搭readonly slave,并更新路由。

一般来说,根据master和readonly slave的数据同步方式,可以有两种架构:星型复制,链式复制。

星型复制

星型复制就是将所有的readonly slave直接和master保持同步,每个readonly slave之间相互独立,任何一个节点异常不影响到其他节点,同时因为复制链比较短,readonly slave上的复制延迟比较小。

redis是单进程单线程模型,主从之间的数据复制也在主线程中处理,readonly slave数量越多,数据同步对master的cpu消耗就越严重,集群的写入性能会随着readonly slave的增加而降低。此外,星型架构会让master的出口带宽随着readonly slave的增加而成倍增长。master上较高的CPU和网络负载又会抵消掉星型复制延迟较低的优势。可以看出,星型复制架构会带来比较严重的扩展问题,整个集群的性能会受限于master。

链式复制

链式复制将所有的readonly slave组织成一个复制链,如下图所示,master只需要将数据同步给slave和复制链上的第一个readonly slave。

链式复制解决了星型复制的扩展问题,理论上可以无限增加readonly slave的数量,随着节点的增加整个集群的性能也可以基本上呈线性增长。

链式复制的架构下,复制链越长,复制链末端的readonly slave和master之间的同步延迟就越大,考虑到读写分离主要使用在对一致性要求不高的场景下,这个缺点一般可以接受。但是如果复制链中的某个节点异常,会导致下游的所有节点数据都会大幅滞后,更加严重的是这可能带来全量同步,并且全量同步将一直传递到复制链的末端,这会对服务带来一定的影响,为了解决这个问题,读写分离的redis都使用阿里云优化后的binlog复制版本,最大程度的降低全量同步的概率。

结合上述的讨论和比较,redis的读写分离选择链式复制的架构。

透明、兼容

读写分离和普通集群规格一样,都使用了redis-proxy做请求转发,多shard时部分命令使用存在一定的限制,但从主从升级单分片读写分离,或者从集群升级到多分片的读写分离集群可以做到完全兼容。

规格 主从版本 读写分离(单shard) 集群 读写分离集群
兼容性 100% 100% 部分命令使用受到限制 部分命令使用受到限制

在集群模式下,有部分命令使用必须限制所有key在同一个slot中,具体可以参考阿里云官网:https://help.aliyun.com/document_detail/26356.html?spm=5176.doc43829.6.562.NDJFXm

用户和redis-proxy建立连接,redis-proxy会识别出客户端连接发送过来的请求是读还是写,然后按照权重作负载均衡,将请求转发到后端不同的DB节点中,写请求转发给master,读操作转发给readonly slave(master默认也提供读,可以通过权重控制)。

用户只需要购买读写分离规格的实例,直接使用任何客户端即可直接使用,业务不用做任何修改就可以开始享受读写分离服务带来的巨大性能提升,接入成本几乎为0。

高可用

高可用模块(HA)监控所有DB节点的健康状态,为整个实例的可用性保驾护航,master宕机时自动切换到新主。如果某个readonly slave宕机,HA也能及时感知,然后重搭一个新的readonly slave,下线宕机节点。

除HA之外,redis-proxy也能实时感知每个readonly slave的状态。在某个readonly slave异常期间,redis-proxy会自动降低这个节点的权重,如果发现某个readonly slave连续失败超过一定次数以后,会暂时屏蔽异常节点,直到异常消失以后才会恢复其正常权重。

redis-proxy和HA一起做到尽量减少业务对后端异常的感知,提高服务可用性。

性能

对于读多写少的业务场景,直接使用集群版本往往不是最合适的方案,现在读写分离提供了更多的选择,业务可以根据场景选择最适合的规格,充分利用每一个readonly slave的资源。

目前单shard对外售卖1master + 1/3/5 readonly slave多种规格(如果有更大的需求可以提工单反馈给我们),提供60W qps 和 192MByte/s的服务能力,在完全兼容所有命令的情况下突破单机的资源限制。后续将去掉规格限制,让用户根据业务流量随时自由的增加或减少readonly slave数量。

规格 qps 带宽
1 master 8~10W读写 10~48MB
1 master + 1 readonly_slave 10W写 + 10W读 20~64MB
1 master + 3 readonly_slave 10W写 + 30W读 40~128MB
1 master + 5 readonly_slave 10W写 + 50W读 60~192MB

其他

redis主从异步复制,从readonly slave中可能读到旧的数据,使用读写分离需要业务可以容忍一定程度的数据不一致,后续将会给客户更灵活的配置和更大的自由,比如配置可以容忍的最大延迟时间。
更多的购买和使用细节可以移步官网:https://promotion.aliyun.com/ntms/act/redisseparation.html

这里是彩蛋

时间: 2024-11-09 05:57:24

阿里云数据库全新功能Redis读写分离,全维度技术解析的相关文章

阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统

阿里云数据库全新功能Redis读写分离,全维度技术解析 https://yq.aliyun.com/articles/277325 文末有彩蛋,请务必记得看完整哦 背景 秒杀活动是绝大部分电商选择的低价促销,推广品牌的方式.不仅可以给平台带来用户量,还可以提高平台知名度.一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒杀活动的最大价值.本次主要讨论阿里云云数据库Redis缓存设计高并发的秒杀系统. 秒杀的特征 秒杀活动对稀缺或者特价的商品进行定时

褚霸:阿里云数据库要放大招!

本期采访嘉宾--阿里数据库大神褚霸.   阿里云研究员 褚霸 从技术创业到阿里云数据库团队 大招是什么?很多猜测. 不妨先从褚霸的发展来看.1997年毕业之后,在几家大公司呆过之后,一直喜欢"各种折腾"褚霸创业了三次:做软硬件结合的报警器,开发类似网银的互联网金融系统,类似于P2P做PPStream的看视频的产品.每次都是产品很牛,但因为资金支持.市场投放等因素都没成功.所以他对自己的总结是:"这不是我擅长的,我的定位点是是踏实做技术." 2010年,看到正明(章文

阿里云数据库,破解大型网站架构设计中的数据存储难题

摘要:3月10日,2017阿里云网站行业热点问题和解决方案线下研讨会在上海举行.在本次研讨会上,阿里云数据库团队产品专家王义成(花名挚尤)针对于大型网站的数据库架构设计以及阿里云ApsaraDB所提供的服务管理和解决方案进行了深入介绍. 分享者简介:王义成(花名挚尤),阿里云数据库团队产品专家,负责阿里云NoSQL数据库的产品规划.加入阿里巴巴近5年的时间,参与过多种云数据库的产品设计工作.目前主要负责阿里云的MongoDB.Redis以及MemCache产品,旨在为广大客户提供安全可靠的数据库

时代从此划分 阿里云数据库POLARDB发布

本文讲的是时代从此划分 阿里云数据库POLARDB发布[IT168 云计算]在企业数据容量环式增长时代,数据库容量小.存储空间扩展缓慢.性能不足,以及扩容升级慢等问题渐显,传统数据库显然已难以支撑诸如物联网.新金融.新零售.新制造.电信等高吞吐场景业务的快速发展. 一场以人类社会数据暴涨驱动的互联网基础设施进化随之而来. 在2017杭州云栖大会前夕的9月21日,阿里云正式发布了自研新一代商用关系型云数据库POLARDB,该数据库采用第三代分布式共享存储架构,创新实现企业级OLTP与OLAP一体化

从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库

开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database Service)是一种稳定可靠.可弹性伸缩的在线数据库服务.基于飞天分布式系统和全SSD盘高性能存储,支持MySQL.SQL Server.PostgreSQL和PPAS(高度兼容Oracle)引擎,默认部署主备架构且提供了容灾.备份.恢复.监控.迁移等方面的全套解决方案. 当然,并不是指所有用户

性能最高提升300%!阿里云数据库HBase版上线

阿里云正式推出云数据库HBase版(ApsaraDB forHBase),100%兼容HBase协议的分布式数据库,基于HDFS分布式文件系统,支持高达10PB的存储空间,满足最高5000W QPS的随机读写场景.能支撑海量结构化数据存储.高并发访问等需求,适用于物联网.车联网.监控.安全风控.即时通讯.消息存储等行业场景用户. 产品内核架构深度优化,运维效率大幅提升 阿里云数据库专家对原生HBase内核源码进行深度优化,让云数据库HBase版(ApsaraDB for HBase)的读写性能相

最高可省60%!上云趁现在! 阿里云采购季省钱攻略全放送

最高可省60%!上云趁现在! 阿里云采购季省钱攻略全放送 前言:近年来,随着云计算.大数据技术的成熟,传统企业逐渐由"信息化建设"转向"数字化转型".市场研究机构Saugatuck Technology预测,到2018年,超过60%的企业会把一半以上的基础设施迁移至云平台. 进入2017年,面对纷繁复杂的市场竞争环境,越来越多的企业提前开始进行数字化改造.顺应开年二三月份企业采购高峰的到来,阿里云于近日正式启动了"2017采购季"大促活动,从百万

阿里云数据库掌门人褚霸:骑行与数据人生

本文主要从霸爷的骑行经历开始聊起,进而联系到数据库经历,从初识数据库谈及到云下转入云上,最后重点与大家分享了POLARDB 数据库.   今天的电梯访谈我们请来了褚霸和我们聊聊他的骑行与数据库人生. 以下是精彩内容整理: 骑行有很多乐趣,骑行给我无拘无束的感觉,骑行是一种激情,让我兴奋,享受着超越感.而数据库与骑行对我来说是相通的,坚持去做的事情一定是你有兴趣的事情,没有激情是很难做到极致,数据库与骑行一样,没有上限,投入精力越多,探索深度越深. 初识数据库 "我的梦想是做一个最牛X的数据库!&

阿里云数据库年底再次降价,隔空喊话不怕价格战

在12月的云栖大会广东分会上,阿里云宣布了2016年以来第18次降价. 数据产品降价更超过30%,平均降幅20%,最高降幅52.9%,本次降价涉及到的产品有ApsaraDB for MySQL,Redis, SQL Server,MongoDB, PostgreSQL,PPAS等产品.     数据库作为底层的数据存储和管理工具,是云计算生态系统中的重要一环,随着"大数据时代"的到来,在高并发.大数据量.分布式以及实时性的要求之下,阿里云的数据库产品能够充分的满足客户需求. 阿里云的数