设计一个像 WhatsApp 或微信的即时通讯系统,是系统设计面试的常考题。 核心需求 - 一对一聊天和群聊 - 消息可靠性(不能丢消息) - 在线状态 - 历史消息 - 支持 10 亿用户 架构概览 为什么用 WebSocket 而不是 HTTP 轮询 HTTP 轮询延迟高、浪费带宽。WebSocket 建立长连接后服务端可以主动推送消息。但 HTTP 用 […]
Neovim 配置指南:2025 年的终端编辑器还能打吗
用了一年 Neovim,分享一下配置心得。 为什么选 Neovim - 启动快(50ms vs Code 的 […]
Redis Cluster 入门:从单机到集群的那些坑
最近在学习 Redis Cluster,搭了一套 3 主 3 从的环境,过程中踩了不少坑。 搭建过程 Redi […]
LeetCode 206. 反转链表:迭代和递归两种解法,面试必会
反转链表是链表操作的基础,面试官可能让你先写迭代,再写递归。 迭代解法 用三个指针:prev(前一个)、cur […]
MySQL 索引面试核心:为什么最左前缀匹配是面试最爱问的?
MySQL 索引的面试题绕不开「最左前缀」。 联合索引的存储结构 假设有一个联合索引 ,它在 B+Tree 中 […]
操作系统面试核心:进程和线程到底有什么区别?
进程和线程是操作系统面试的基础。 核心区别 进程间通信(IPC) 1. 管道:父子进程间单向通信, 2. 消息 […]
AWS re:Invent 2025:Amazon 的 AI 全线反击
AWS re:Invent 2025 的重点全是 AI。 Trainium 3 芯片 Amazon 自研的第三 […]
synchronized vs ReentrantLock:从面试被问到源码实现
synchronized 和 ReentrantLock 有什么区别?十个面试九个问。 用法对比 核心区别 J […]
Kubernetes HPA 自动伸缩深入理解:从 CPU 到自定义指标
HPA(Horizontal Pod Autoscaler)是 K8s 中实现自动伸缩的核心组件。 HPA 工 […]
JVM 垃圾回收面试精讲:从 CMS 到 G1 到 ZGC
JVM 垃圾回收是 Java 面试的高频考点。别再只说「标记-清除」了。 GC 算法的演进 - 标记-清除:最 […]