这是我参与8月更文挑战的第 14 天,活动详情查看:8月更文挑战
作者简介:悟空,8年一线互联网开发和架构经验,用故事讲解分布式、架构设计、Java 核心技术。《JVM性能优化实战》专栏作者,开源了《Spring Cloud 实战 PassJava》项目,公众号:
悟空聊架构。本文已收录至 www.passjava.cn
大家好,我是悟空哥,今天给大家带来的是大厂面试题:
为什么需要主从架构?
面试者小空听到这题后,窃喜,这题简单,不假思索地回答:高可用。
面试官面无表情的说道:还有吗?
小空支支吾吾的没有答上来。
面试官:
Redis 单机我们都玩得很溜了,那单点架构会带来什么问题?
- 造成服务雪崩:高并发场景下,Redis 单点故障了,导致请求到 Redis 后都返回错误,或者请求都到数据库了,造成服务雪崩,这是不能接受的。
- 不能进行快速转移:线上系统,Redis 单点故障了,没有其他的备份节点可用。如何做到故障快速转移?
- 不能快速恢复数据:Redis 是内存数据库,内存数据会自动备份到 RDB 和 AOF 文件(开启了两种持久化的情况下),当某个节点出现故障时,能将这些备份文件快速恢复到节点,将故障造成的影响降到最低。
服务的快速转移和恢复数据,其实是高可用的范畴,我们就可以通过主从架构来做到了。
小空听完后,叹了一口气,今天又是被面试官吊打的一天。
今天的面试题看过后,大家感觉怎么样?