为什么需要主从架构?

370 阅读2分钟

这是我参与8月更文挑战的第 14 天,活动详情查看:8月更文挑战

作者简介:悟空,8年一线互联网开发和架构经验,用故事讲解分布式、架构设计、Java 核心技术。《JVM性能优化实战》专栏作者,开源了《Spring Cloud 实战 PassJava》项目,公众号:悟空聊架构。本文已收录至 www.passjava.cn

大家好,我是悟空哥,今天给大家带来的是大厂面试题:

为什么需要主从架构?

面试者小空听到这题后,窃喜,这题简单,不假思索地回答:高可用。

面试官面无表情的说道:还有吗?

小空支支吾吾的没有答上来。

面试官:

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

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

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

image.png

小空听完后,叹了一口气,今天又是被面试官吊打的一天。

今天的面试题看过后,大家感觉怎么样?