深入浅出百亿请求高可用Redis(codis)分布式集群揭秘
副问题[/!--empirenews.page--]
一、配景 跟着直播元年开启,越来越多的直播产物如春笋般呈现,在拉动营收的进程中,产物不遗余力思索着各类勾当来刺激用户的斲丧欲望,而这类勾当的基本情势就是榜单,在2016年我们基于cmem及扫描流水表的方法来实现榜单排名,2017开始,我们对原有体系举办重构,行使redis作为我们的榜单基本存储,在重构的进程中接到调研redis漫衍式办理方案的使命之后,比对业内各类开源产物,最后定下Codis,并对个中细节做了一些研究,时代在与Codis作者交换的进程中,有幸知道增值产物部的simotang已经在部分引入codis近2年时刻,遂插手到codis的运维事变中,今朝在部分内陈设运维codis集群15套,2T容量,总日会见量百亿+,支撑了互动视频产物部基本存储,运营勾当,榜单类营业2年多,共计100多个勾当,榜单上千个。同时在这里很是感激codis作者spinlock在接入codis进程中给以的指导与辅佐。见spinlock github 与 codis地点。 二、Redis相干基本概览 2.1 Redis简介 redis是一个基于内存同时具备数据耐久化手段的高机能,低时延的KV数据库,value的数据布局可所以string,hash表,list(列表),set(荟萃),sortedset(有序荟萃)。 Redis(RemoteDictionary Server) Redis is anopen source (BSD licensed), in-memory data structure store, used as adatabase, cache and message broker. It supports data structures suchas strings, hashes, lists, sets, sorted sets with rangequeries,Practice: http://try.redis.io/ 2.2 Redis的特点 1. 单线程异步架构(单线程,收包,发包,理会,执行,多路io复用吸取文件变乱) 2. k-v布局,value支持富厚的数据布局(string,hash,list,set,sortset) 3. 高机能,低时延,基于内存操纵,Get/Set10w+,高机能,基于RDB、AOF落地担保数据靠得住性 4. 富厚的特征,可用于缓存,动静行列,TTL逾期 5. 支持事宜,操纵是原子性,要么所有提交,要么所有不提交。 2.3 Redis应用场景 2.4 写在前面:codis与redis的相关 codis与redis之间相关就是codis是基于多个redis实例做了一层路由层来举办数据的路由,每个redis实例包袱必然的数据分片。 2.5 redis进修资料 因为本文重点在于redis漫衍式办理方案,对付redis相干的基本部门,各人可以参考两本书及相干源码说明文章。 1. Redis开拓与运维(付磊) 2. Redis计划与实践(黄健宏)(值得多看两遍) 三、Redis漫衍式办理方案公司表里较量 在较量方案之前,我们先按照我们的履历输出了我们祈望的办理方案应该具备的手段,以此来权衡我们的选择尺度。 基于此我们对公司表里做了一个如下的较量: 【公司内组件比拟】 【公司外组件比拟】 基于以上较量,codis作为开源产物,可以很直观的展示出codis运维本钱低,扩容滑腻最焦点的上风。 对付数据安详今朝我们基于呆板本机48小时转动备份加上公司刘备备份(天天按时目次备份的体系)的兜底备份,对付监控,今朝接入monitor单机备份和米格监控诉警)。 四、codis的架构计划 4.1Codis整体的架构计划 codis官网 【图codis架构图】 如上图所示,codis整体属于二层架构,proxy+存储,相对付ckv+无proxy的计划来嗣魅整体计划会相对简朴,同时对付客户端毗连数据逐渐增大的环境下,也不消去做数据层的副本扩容,而只必要做proxy层的扩容,从这一点上看,本钱会低一些,可是对付毗连数不大的环境下,还必要单独去陈设proxy,从这一点上看,本钱会高一些。 个中,开源的codisproxy的处事的注册发明是通过zk来实现,今朝部分是基于l5来做。 从整体的架构计划图来看,codis整体的架构较量清楚,个中codisproxy是漫衍式办理方案计划中最焦点的部门,存储路由,分片迁徙均与codisproxy分不开,这块我们来看一下codisproxy的计划实现。 4.2Codisproxy的架构计划实现 codisproxy的架构实现分成2个部门,别离为4.2.1的路由映射的细节与4.2.2的proxy哀求处理赏罚的细节。 4.2.1 路由映射细节 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |