




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最近整理一下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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年自考专业(建筑工程)考试历年机考真题集带答案详解(培优B卷)
- 农发行九江市都昌县2025秋招半结构化面试题库及参考答案
- 农发行十堰市竹溪县2025秋招信息科技岗笔试题及答案
- 2025年江苏省卫生健康委员会所属事业单位长期招聘81人(二)笔试备考题库及参考答案详解
- 农发行泸州市江阳区2025秋招笔试英文行测高频题含答案
- 监护仪考试题及答案
- 驾驶考试员考试题大全及答案
- 2025年“安全生产事故隐患排查”知识竞赛考试历年机考真题集完整版附答案详解
- 家纺知识考试题及答案
- 加法口算考试题及答案解析
- 2025四川达州宣汉县国有资产管理服务中心县属国有企业招聘劳动合同职工26人笔试历年参考题库附带答案详解
- 2025年下半年杭州市上城区丁兰街道办事处招聘编外工作人员11人考试参考题库及答案解析
- 2025年合肥市广播电视台(文广集团)招聘12人考试参考题库及答案解析
- 新教科版小学1-6年级科学需做实验目录
- GB/T 8492-2024一般用途耐热钢及合金铸件
- GB/T 17880.5-1999平头六角铆螺母
- 2023年陕西省直和西安市接收军转干部划分条件
- 客诉客退产品处理流程
- 自来水厂操作规程手册范本
- 中职实用美术设计基础 2基础教学课件
- 体育与健康人教版四年级-足球-脚背正面运球教案
评论
0/150
提交评论