ohmyblog

#系统设计

经典题解析:用 Zookeeper 实现分布式锁,为什么要用临时顺序节点

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。这道题的高频之处在于它不止考「会不会用」,而是追问两个设计动机:为什么节点要临时?为什么还要顺序?

经典题解析:Raft 共识算法,多个节点怎么达成一致

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。Raft 是分布式面试的分水岭题目——它背后站着 etcd、Consul 和一大批控制面组件,讲得清 Raft,就拿到了理解这一整类系统的钥匙。

历史题目复盘:微服务互相循环调用,会不会出事、怎么破

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面很生活化:A 服务请求 B 服务的 B1 接口,B1 接口处理过程中又回头请求 A 服务的 A2 接口——这样循环调用,会不会有问题?

历史题目复盘:一个接口要并发调 5 个下游再合并,怎么设计

先说明属性:这是一篇历史题目复盘,属于开放式设计题,出自本地历史面试资料,与任何公司的当前招聘无关。题面:一个接口内部要调用另外 5 个下游接口,每个下游都返回数据,本接口把数据合并后返回给上层。问:可能用到并发包下的哪些类?你会怎么实现?

历史题目复盘:存储系统里,高优先级任务和公平性怎么兼顾

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料(云计算大数据场景:每天成千上万的任务读写存储,多个作业或用户共享系统时,如何保证优先级和公平性),与任何公司的当前招聘无关。这是一道开放式设计题,没有标准答案,考察的是你把一对矛盾目标拆成机制组合的能力。

历史题目复盘:设计一个支持各种数据库秒级备份恢复的系统

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料,与任何公司的当前招聘无关。这是一道开放式系统设计题:设计一个备份恢复系统,支持各种类型的数据库,能实现秒级恢复。它没有标准答案,考察的是你能不能把一个模糊需求拆成几个真正要害的工程设计问题。

历史题目复盘:设计一个在数据库、NoSQL 和大数据之间实时流动的数据系统

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料(见文末来源说明),与任何公司的当前招聘无关。这是一道开放式系统设计题:业务数据产生在数据库里,线上查询要用 NoSQL,离线分析和训练要用大数据平台,如何让数据在三者之间实时流动?

经典题解析:流量全走一个网关,网关挂了怎么办

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料(见文末来源说明),与任何公司的当前招聘无关。API 网关是所有流量的总入口,「网关挂了怎么办」考的不是某个组件,而是你对「总入口必然单点」这件事的系统化解法。

历史题目复盘:设计一个每秒 5000 次查询的 DNS 缓存,数据结构怎么选

先说明属性:这是一篇历史题目复盘,题目出自本地历史面试资料(见文末来源说明),与任何公司的当前招聘无关。设计题没有标准答案,但有标准打法——面试官想看的不是你背了哪个框架,而是你能不能把约束一条一条翻译成结构决策。

经典题解析:如何设计一个高并发系统,从哪几个层面下手

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料(见文末来源说明),与任何公司的当前招聘无关。开放式设计题没有标准答案,面试官真正想看的是:面对「高并发」三个字,你是有一套展开框架,还是只会背组件名词。