欢迎来到天天文库
浏览记录
ID:40495327
大小:51.99 KB
页数:5页
时间:2019-08-03
《Redis高可用架构(1)—Keepalive+VIP》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、最近整理一下Redis高可用架构的文档,也准备分享出来,虽然这些架构也不是很复杂。Redis的高可用方案目前主要尝试过5种方式,其中2种方式已经在线上使用。1)RedisMaster-Slave+Keepalive+VIP。这是很经典的db架构,也可以用与mysql的主从切换。基本原理是:Keepalive通过脚本检测master的存活,然后通过漂移VIP(VirtualIP)完成主从切换。2)RedisMaster-Slave+DNSService+Sentinel。基本原理是Sentinel集群进行Redis的存活检测和RedisM-S状态切换
2、。完成切换之后,sentinel调用notification-script参数制定的配置文件,通知DNSServer更改DNS配置,masterdns解析执行新的master。3)RedisMaster-Slave+ConfigureCenter(Zookeeper)+Sentinel.基本原理和第三种方案相似,只是notification-script通知的是配置中心完成redis连接配置的修改,比如Zookeeper实现的配置中心。4)RedisMaster-Slave+Sentinel+Twemproxy+Lvs.这种方案层次比较多,sent
3、inel通知twemproxy进行redism-s的配置更改。5)RedisCluster,目前redis3.0接近发布stable版本了。1、基本架构图2、基本构建与原理1)Keepalive+VIP:在redismaster-slave上部署keepalived、redisinstance存活检测脚本、以及告警通知脚本。2)当redismaster失效的时候,VIP从master上漂移到slave上,完成m-s角色和配置更改。3)客户端连接redis的参数中host设置的是VIP,整个切换过程对客户端透明。3、优缺点与适用场景。优点:实现简单,
4、成本低。缺点:整个集群的最大吞吐量受限于redis单实例的处理能力,除非一个应用使用多套这种Keepalive+VIP方案。因而扩展能力较差,而且不适合目前单机部署多个redis实例的部署场景,而我们的一个物理机上至少部署8个redis实例。目前我们DBA已经否定了这种架构,不再支持部署这种集群。适合场景:并发请求不是很高的应用。4、Keepalive配置和检测脚本下面keepalive的简单配置、检测和通知脚本。1)keepalive.confmaster和slave使用相同的配置脚本,其中要注意的地方state的配置都是backup状态,而且都
5、是非抢占方式nopreempt。123456789101112131415161718192021222324vrrp_script chk_redis { script "/etc/keepalived/redis_check.sh" interval 2 } vrrp_instance VI_1 { state BACKUP interfac
6、e bond0 virtual_router_id 51 priority 100 nopreempt authentication { auth_type PASS auth_pass redis } track_script {
7、chk_redis } virtual_ipaddress { 10.203.31.216 } notify_master "/etc/keepalived/notify.sh master" 2526 notify_backup "/etc/keepalived/notify.sh backup" }2)redis_check.sh,redis实例存活检测脚本。当master检测到redis处于f
8、ailed状态,将会释放VIP,slave机器将会获取VIP。1234567891011121314#!/bin/bash
此文档下载收益归作者所有