5 个维度深度剖析「主从架构」原理

为了保证缓存的高可用,我们经常听到采用主从架构来保证高可用,那如何去理解主从架构核心原理呢?

这次我们还是用最熟悉的 Redis 缓存来理解主从架构,只要理解了一个主从架构,其他技术的主从架构都是一通百通

Redis 的主从架构,其实就是利用多副本,将一份数据同时保存在多个实例上。单个实例出现故障后,一般都会过一段时间才能恢复,那么其他节点还是可以提供服务的。

本篇我会带着大家一起探讨缓存的主从架构几个问题:

  • Why:为什么需要主从架构?
  • What:主从架构原理?
  • Who:谁需要关心主从架构?
  • When:什么时候用主从架构?
  • Question:主从架构会带来哪些问题?

Why:为什么需要主从架构?

Redis 单机我们都玩得很溜了,那单点架构会带来什么问题?

  • 造成服务雪崩:高并发场景下,Redis 单点故障了,导致请求到 Redis 后都返回错误,或者请求都到数据库了,造成服务雪崩,这是不能接受的。
  • 不能进行快速转移:线上系统,Redis 单点故障了,没有其他的备份节点可用。如何做到故障快速转移?
  • 不能快速恢复数据:Redis 是内存数据库,内存数据会自动备份到 RDB 和 AOF 文件(开启了两种持久化的情况下),当某个节点出现故障时,能将这些备份文件快速恢复到节点,将故障造成的影响降到最低。

服务的快速转移和恢复数据,其实是高可用的范畴,我们就可以通过主从架构来做到了。

What:主从架构原理

文中最开始也提到过这么一段话,划重点:

Redis 的主从架构,其实就是利用多副本,将一份数据同时保存在多个实例上。单个实例出现故障后,一般都会过一段时间才能恢复,那么其他节点还是可以提供服务的。

主从架构拓扑图

Redis 主从架构其实就是主从库模式,而主从库的模式可以分为三种拓扑结构:一主一从结构、一主多从结构、树状主从结构。而如何去构建这种结构其实也很简单,就是配置下多个节点上 Redis 的配置文件就可以了。如下所示:

slaveof <Master IP> <Master Port>

当然还有一些其他参数配置,就不在本篇讲解,下篇主从的部署教程其实已经写好了,后续发出来。

下面我们接着来看这几种主从架构:

  • 一主一从结构:一个主节点,一个从节点,主节点可读可写,从节点只接收读请求。常用于主节点出现故障时,从节点能够快速顶上。

  • 一主多从结构:一个主节点,多个从节点,对于读命令较大的场景,可以把读命令分摊到多个从节点。

而对于一主多从结构,还可以再扩展一点:当日常开发中需要执行一些比较耗时的读命令时,比如 keys、sort等,可以用其中一个从节点专门作为耗时查询用的从节点,避免慢查询对主节点造成阻塞,而影响服务的稳定性。我们也可以用图来进行说明ÿ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值