PhilipTang / redis-keepalive

异地双中心高可用方案(讨论 Redis)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

异地双中心高可用方案

业务背景

double-zone-think

可以看到:

  • 两个中心都有 appServer 和 Redis 服务器
  • appServer 和 Redis 都有可能故障
  • Redis 为了保证一致性,异地不进行主从同步,也不进行双写
  • 每个中心内部 Redis 冗余

解决方案:

配置文件切换

难点:

共识算法实现

共识算法

共识算法理论参考:拜占庭将军问题

实现思路:

flowchart-redis-check

枚举正常/异常情况:

list-complex-case

代码实现

源代码:

redis-keepalive.sh

使用方法:

  • 命令:./redis-keepalive.sh [int]
  • 加入定时任务,建议每5分钟检查一次
*/2 * * * * sh /data/switchredis/redis-keepalive.sh 2 >> /data/switchredis/redis-keepalive.log 2>&1

About

异地双中心高可用方案(讨论 Redis)

License:MIT License


Languages

Language:Shell 100.0%