Redis高可用架构(1)—Keepalive+VIP.docx_第1页
Redis高可用架构(1)—Keepalive+VIP.docx_第2页
Redis高可用架构(1)—Keepalive+VIP.docx_第3页
Redis高可用架构(1)—Keepalive+VIP.docx_第4页
Redis高可用架构(1)—Keepalive+VIP.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最近整理一下Redis高可用架构的文档,也准备分享出来,虽然这些架构也不是很复杂。Redis的高可用方案目前主要尝试过5种方式,其中2种方式已经在线上使用。1)Redis Master-Slave + Keepalive + VIP。这是很经典的db架构,也可以用与mysql的主从切换。基本原理是:Keepalive通过脚本检测master的存活,然后通过漂移VIP(Virtual IP)完成主从切换。2)Redis Master-Slave + DNS Service + Sentinel。基本原理是Sentinel集群进行Redis的存活检测和Redis M-S状态切换。完成切换之后,sentinel调用notification-script参数制定的配置文件,通知DNS Server更改DNS配置,master dns解析执行新的master。3)Redis Master-Slave + Configure Center(Zookeeper) + Sentinel.基本原理和第三种方案相似,只是notification-script通知的是配置中心完成redis连接配置的修改,比如Zookeeper实现的配置中心。4)Redis Master-Slave + Sentinel + Twemproxy + Lvs.这种方案层次比较多,sentinel通知twemproxy进行redis m-s的配置更改。5)Redis Cluster,目前redis3.0接近发布stable版本了。1、基本架构图2、基本构建与原理1)Keepalive + VIP : 在redis master-slave上部署keepalived、redis instance存活检测脚本、以及告警通知脚本。2)当redis master失效的时候,VIP从master上漂移到slave上,完成m-s角色和配置更改。3)客户端连接redis的参数中host设置的是VIP,整个切换过程对客户端透明。3、优缺点与适用场景。优点:实现简单,成本低。缺点:整个集群的最大吞吐量受限于redis单实例的处理能力,除非一个应用使用多套这种Keepalive+VIP方案。因而扩展能力较差,而且不适合目前单机部署多个redis实例的部署场景,而我们的一个物理机上至少部署8个redis实例。目前我们DBA已经否定了这种架构,不再支持部署这种集群。适合场景:并发请求不是很高的应用。4、Keepalive配置和检测脚本下面keepalive的简单配置、检测和通知脚本。1)keepalive.confmaster和slave使用相同的配置脚本,其中要注意的地方state的配置都是backup状态,而且都是非抢占方式nopreempt。1234567891011121314151617181920212223242526vrrp_scriptchk_redisscript/etc/keepalived/redis_check.shinterval2vrrp_instanceVI_1stateBACKUPinterfacebond0virtual_router_id51priority100nopreemptauthenticationauth_typePASSauth_passredistrack_scriptchk_redisvirtual_ipaddress10.203.31.216notify_master/etc/keepalived/notify.shmasternotify_backup/etc/keepalived/notify.shbackup2)redis_check.sh,redis实例存活检测脚本。当master检测到redis处于failed状态,将会释放VIP,slave机器将会获取VIP。1234567891011121314#!/bin/bashREDIS_BIN=/apps/svr/redis/binREDIS_MASTER_HOST=127.0.0.1REDIS_MASTER_PORT=6379ALIVE=$REDIS_BIN/redis-cli-h$REDIS_MASTER_HOST-p$REDIS_MASTER_PORTPINGif$ALIVE=PONG;thenecho$ALIVEexit0elseecho$ALIVEexit1fi3)master-slave状态切换通知脚本,包括推送告警短信。123456789101112131415161718192021222324252627#!/bin/bashREDIS_BIN=/apps/svr/redis/binMASTER_IP=192.168.0.216#virtualipMASTER_PORT=6379status=$1echo$statusif$status=masterthen#promotingslavetomasterechoconfigsetslave-read-onlyno|$REDIS_BIN/redis-cli-h127.0.0.1-p$MASTER_PORTechoslaveofnoone|$REDIS_BIN/redis-cli-h127.0.0.1-p$MASTER_PORTechoconfigrewrite|$REDIS_BIN/redis-cli-h127.0.0.1-p$MASTER_PORT#pushingsimplemessagetomobileoremailelif$status=backupthen#degradingmastertoslaveechoconfigsetslave-read-onlyyes|$REDIS_BIN/redis-cli-h127.0.0.1-p$MASTER_PORTechoslaveof$MASTER_IP$MASTER_PORT|$REDIS_BIN/redis-cli-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论