ohmyblog

#系统设计

经典题解析:Netty 的时间轮是怎么管理海量定时任务的

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料整理,与任何公司的当前招聘无关。「Netty 的时间轮(HashedWheelTimer)用法、实现原理、会不会不准时、怎么解决」是一个三连问:前半问数据结构,后半问工程坑。

笔试真题复盘:百万用户的站内短信系统,读扩散和写扩散怎么选

先说明属性:这是一篇笔试真题复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面大意是:一个 SNS 系统有百万级注册用户、日活只有千级,要实现用户之间的站内私信,还要实现管理员对全体用户的群发,请给出数据设计与实现方案。

经典题解析:NFS 和 SMB 同时共享同一个文件系统,会出什么问题

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。场景很常见:一台存储服务器上放着同一份数据盘,既用 NFS 挂给 Linux 计算节点,又用 SMB 共享给办公侧访问。问题是:同一个文件被两边同时读写,会出什么事?

经典题解析:Netty 的线程模型是什么,它如何基于 Reactor 模式实现

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。「Netty 线程模型」这道题的标准答案是四个字——主从 Reactor,但面试官真正想听的是:这四个字母落地到代码里是哪几个类,连接在它们之间怎么流转,以及为什么这套结构能撑住十万级连接。

经典题解析:Zookeeper 集群里每个 Server 都在扮演什么角色

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面:Zookeeper 集群下各 Server 的工作状态与角色是什么?答案的骨架是三种角色加一条状态机,但真正的考点在 Observer 的设计动机——为什么扩读不能靠加 Follower。

历史题目复盘:怎么压测一个 RPC 接口,QPS 和延迟怎么看

先说明属性:这是一篇历史题目复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:有一个 RPC 服务,对外提供一个查询接口,给定请求返回匹配结果——怎么测试这个接口的性能?这是一道开放设计题,新手容易答成「开很多线程打过去看 QPS」,但那只是动作不是方案。

历史题目复盘:评论、点赞、关注提醒满天飞,消息通知系统怎么设计

先说明属性:这是一篇历史题目复盘,题目出自本地历史笔试资料(原题从测试角度提问,本文按系统设计角度重写),与任何公司的当前招聘无关。题面涉及的消息系统包含评论、点赞、关注提醒、创作者账号提醒、问答邀请和系统活动消息。

历史题目复盘:设计一个百万 QPS 读、千级写的统一配置服务

先说明属性:这是一篇历史题目复盘,题目出自本地历史笔试资料,与任何公司的当前招聘无关。题面:业务方要存服务参数、功能开关这类键值,配置文件逐机同步的老办法越来越难管,要求设计一个统一配置服务。

经典题解析:Nginx 的 master 和 worker 各管什么,为什么这样分工

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面是「解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么」。

经典题解析:一个 HTTP 请求进入 Nginx 之后,要过哪几道关卡

先说明属性:这是一篇经典题解析,题目出自本地历史面试资料,与任何公司的当前招聘无关。题面是「解释 Nginx 如何处理 HTTP 请求」。很多人答成「接收、解析、转发」三句话,其实 Nginx 官方开发文档把请求处理定义成一条 11 个阶段的流水线,模块按阶段注册 handler…