-
FAANG 系统设计面试:设计一个聊天系统 (WhatsApp, Facebook Messenger, Discord, Slack)
本文详细介绍了可扩展的实时聊天系统的设计。设计借鉴了 WhatsApp 等平台的思路。它涵盖了从通信协议选择(倾向于使用混合 HTTP 进行发送,WebSocket 进行接收)到包括无状态、有状态和第三方服务的多层系统架构等基本方面。一个关键的关注点是通过“收件箱”模式以及确认机制来实现可靠的离线消息传递。讨论扩展到使用在线状态服务 (Presence Service) 和直接 RPC 调用在多个…- 0
- 0
-
科技爱好者周刊(第 362 期):GitHub 工程师谈系统设计
本期周刊以 GitHub 高级工程师肖恩·戈德克关于良好系统设计的经验分享为主线,详细阐述了从系统演进、状态管理、数据库优化、异步处理、缓存策略到事件中心及推拉模式等核心原则。此外,文章介绍了谷歌最新的 Imagen 4 文生图模型和 AI 学习平台 Learning About,并涵盖了警车面部识别、语音明信片等科技动态。周刊还精选了多篇技术文章(如 GitHub 免费 AI 服务、Cloudf…- 0
- 0
-
我所知道的优秀系统设计的一切
本文作者以资深工程师的视角,对优秀系统设计提出了独到见解。他指出,好的系统设计并非追求花哨的复杂技术,而是通过有效组合“无聊但经过充分检验的组件”,实现系统长期稳定运行,其标志是“看起来平平无奇”。文章首先区分了软件设计与系统设计的范畴,随后围绕核心挑战“状态”展开,强调应最小化有状态组件数量,并建议由单一服务管理状态。接着,详细阐述了数据库(模式、索引、瓶颈、读写分离、查询优化)、慢快操作分离(…- 0
- 0
-
天坑面试题:亿级“微信步数”排行怎么设计?
本文以一道经典的字节跳动面试题为引,深入剖析了设计亿级用户微信步数排行榜系统所面临的四大挑战:写入地狱、查询噩梦、存储黑洞和关系迷宫。作者提出了“三板斧”解决方案:首先,通过消息队列(MQ)实现写入流程的异步解耦和削峰填谷,利用 Redis ZSET 高效存储步数;其次,查询流程采用动静分离策略,将用户关系存储在 MySQL 分库分表,步数从 Redis 批量获取,并在内存中快速排序;最后,针对热…- 0
- 0
系统设计
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
✈优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!




