收藏!字节跳动大厂面试90%人挂掉的抖音关注系统设计,手把手教你满分拿捏Offer!
本文详细拆解了字节跳动等大厂后端架构面试中的抖音关注系统设计题针对存储和动态推送两大核心难点提出了基于演进性统一数据模型、Redis ZSet分桶MySQL分表的存储解决方案以及推拉结合、分层削峰的Feed流架构推送方案。文章强调架构设计需具备差异化与演进性思维、系统思维与链路优化、精确性与权衡思维旨在帮助程序员掌握解决高并发、大数据量架构问题的核心思维提升面试竞争力。深坑一关注存储惯性思维踩雷一套方案走天下直接被大V问题问倒面试官的经典提问设计抖音的关注和粉丝系统包括存储和功能要考虑不同规模用户的差异。相信很多人的第一反应和我最初一样自信满满回答用Redis的Set用户A关注B就执行sadd ‘follow:A’ B和sadd ‘fans:B’ A查询用smembers速度快还简单。但面试官的灵魂追问马上就来一个有1亿粉丝的大V单Set存1亿个ID要800MB内存哪个Redis节点扛得住smembers全量拉取1亿条数据网络和服务器内存不直接炸了这一问直接戳中了问题核心只设计了通用方案却忽略了不同规模用户的差异。小博主的粉丝量寥寥无几单Set完全够用但大V的千万、上亿粉丝会直接造成大Key问题全量拉取更是会引发网络和内存溢出这就是“一套方案用到底”的致命问题。满分解法演进性统一数据模型Redis ZSet分桶MySQL分表架构设计的核心从不是找“万能银弹”而是设计能适配变化、可平滑演进的统一方案——如果为小V和大V设计两套完全不同的方案后续用户增长会带来巨大的迁移成本这是面试官最不想看到的。这套统一存储方案的核心是统一模型Binlog同步冷热分离无论小V还是大V都适用唯一的区别只是“桶”的数量先上核心架构逻辑写操作仅更新MySQL主库→通过Canal同步服务订阅Binlog→近乎实时同步到Redis ZSet分桶读操作由查询服务处理→查活跃热数据用Redis ZSCAN分页→查历史冷数据从MySQL加载更多。核心设计亮点逐个拆解分桶存储彻底解决大Key问题不再用单一的fans:userId存储而是将粉丝列表哈希打散到多个“桶”中比如fans:userId:0到fans:userId:99。小博主粉丝10万只用1个桶逻辑简单性能和Redis Set几乎无差大V粉丝100万动态扩容到100个甚至更多桶粉丝量增长时无需修改模型仅增加桶数就能平滑扩容完美解决小V到大V的演进难题。ZSet替代Set天然支持时间排序将关注时间戳作为ZSet的score不仅能存储粉丝ID还能直接实现“按时间查看粉丝”的需求无需二次排序一步到位满足业务功能。Binlog同步从根上保证数据一致性抛弃“先写Redis再异步写库”的双写漏洞方案写操作只更新MySQL数据库作为唯一数据源再通过Binlog将数据变更同步到Redis从根本上避免了数据不一致的问题。冷热分离降低存储成本Redis中仅存储近3个月的活跃粉丝热数据更早的沉睡粉丝冷数据只存在于MySQL分表中。用户查看粉丝列表时优先展示Redis的热数据需要看全部则点击“加载更多”异步查询MySQL兼顾性能和成本。分页查询避免网络拥堵绝不使用smembers或zrange全量拉取数据查询时用zscan或zrevrange配合游标分页每次只返回少量数据彻底规避网络拥堵和内存溢出。深坑二动态推送暴力解决踩雷遍历粉丝发消息直接造成系统性能雪崩解决了存储问题面试官的追问接踵而至1亿粉丝的大V发了新动态怎么推给所有粉丝我当时脑子一热的答案也是很多人的常规思路遍历粉丝列表给每个粉丝发一条Kafka消息结果面试官直接皱眉遍历1亿次循环要多久瞬时产生1亿条Kafka消息下游系统扛得住吗这不是做系统设计是写DDOS攻击脚本这个回答的问题在于用“暴力循环”处理海量粉丝推送会制造巨大的瞬时流量洪峰对自身业务和下游系统造成毁灭性打击完全没有考虑系统的抗压能力。满分解法推拉分明、分层削峰的Feed流架构面试官真正想要的答案是一套具备削峰填谷能力的推拉结合架构而且要先明确一个核心区分更新Feed流的关注列表和App系统通知推送是两个完全不同的系统不能混为一谈。这套架构的核心是事件驱动异步削峰批量处理大V发动态后仅产生1条Kafka事件再通过粉丝分层、分级推送、批量处理将流量洪峰平滑分摊彻底避免系统雪崩。两大核心推送场景精准设计方案A. Feed流更新写扩散模型精准分层不做无用功大V发动态本质是把动态ID扩散写入粉丝的收件箱inbox ZSet核心思路是粉丝分层异步削峰Pipeline批量处理粉丝分层舍弃低活跃用户将1亿粉丝按活跃度分三档不做无意义的推送节省海量资源高活跃粉丝近7天登录如3000万中活跃粉丝近30天登录如5000万低活跃粉丝超30天未登录如2000万直接放弃写扩散等用户重新打开App时用“拉模式”主动拉取即可。异步削峰分级处理流量大V发布动态后仅发送1条“动态发布事件”到Kafka由分组服务消费该事件为不同活跃度粉丝生成不同优先级的推送任务投递到不同Kafka Topic高活跃粉丝即时推送任务优先更新Feed流中活跃粉丝延迟推送任务如延迟1小时将瞬时洪峰分摊到不同时间段。Pipeline批量处理大幅降低I/O下游推送服务更新粉丝的inbox ZSet时绝不逐条执行zadd而是从Kafka一次性消费1000条消息通过Redis Pipeline在一次网络请求中批量更新1000个粉丝的收件箱网络I/O直接降低几个数量级。B. App强推送通知模型极致克制不打扰这是手机收到的App系统通知属于强打扰操作策略必须极度克制核心是少量推大部分拉推Push仅对设置了“特别关心”的用户或算法筛选的核心互动粉丝通过APNS/FCM等系统发送实时推送范围极小拉Pull绝大部分用户只静默更新Feed流收件箱等用户下次打开抖音时客户端主动从服务端拉取最新动态列表即可。核心总结搞定大厂架构题这3种思维是关键这道抖音关注系统设计题看似考的是Redis、MySQL、Kafka的技术使用实则考察的是架构师的核心思维能力也是大厂面试的核心考察点掌握这3点你就是面试官眼里的“Offer收割机”差异化与演进性思维能预见不同数据规模的系统瓶颈设计统一的可演进方案避免后续的迁移成本和风险系统思维与链路优化把单个功能点放在完整业务链路中思考用分层、异步、批量等手段构建健壮、可扩展的系统精确性与权衡思维精准拆分业务场景为不同场景设计适配的技术方案在用户体验和服务器成本之间做出合理权衡。大厂的架构面试题从来不是考你会不会用技术而是考你会不会用技术解决实际问题。分治与演进是解决高并发、大数据量架构问题的核心思维掌握这两个核心再遇到类似的系统设计题就能从容应对。最后对于正在迷茫择业、想转行提升或是刚入门的程序员、编程小白来说有一个问题几乎人人都在问未来10年什么领域的职业发展潜力最大答案只有一个人工智能尤其是大模型方向当下人工智能行业正处于爆发式增长期其中大模型相关岗位更是供不应求薪资待遇直接拉满——字节跳动作为AI领域的头部玩家给硕士毕业的优质AI人才含大模型相关方向开出的月基础工资高达5万—6万元即便是非“人才计划”的普通应聘者月基础工资也能稳定在4万元左右。再看阿里、腾讯两大互联网大厂非“人才计划”的AI相关岗位应聘者月基础工资也约有3万元远超其他行业同资历岗位的薪资水平对于程序员、小白来说无疑是绝佳的转型和提升赛道。对于想入局大模型、抢占未来10年行业红利的程序员和小白来说现在正是最好的学习时机行业缺口大、大厂需求旺、薪资天花板高只要找准学习方向稳步提升技能就能轻松摆脱“低薪困境”抓住AI时代的职业机遇。如果你还不知道从何开始我自己整理一套全网最全最细的大模型零基础教程我也是一路自学走过来的很清楚小白前期学习的痛楚你要是没有方向还没有好的资源根本学不到东西下面是我整理的大模型学习资源希望能帮到你。扫码免费领取全部内容最后1、大模型学习路线2、从0到进阶大模型学习视频教程从入门到进阶这里都有跟着老师学习事半功倍。3、 入门必看大模型学习书籍文档.pdf书面上的技术书籍确实太多了这些是我精选出来的还有很多不在图里4、AI大模型最新行业报告2026最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5、面试试题/经验【大厂 AI 岗位面经分享107 道】【AI 大模型面试真题102 道】【LLMs 面试真题97 道】6、大模型项目实战配套源码适用人群四阶段学习规划共90天可落地执行第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…扫码免费领取全部内容3、这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

相关新闻

Perseus:无偏移量补丁技术的跨版本游戏扩展解决方案

Perseus:无偏移量补丁技术的跨版本游戏扩展解决方案

Perseus:无偏移量补丁技术的跨版本游戏扩展解决方案 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 副标题:如何让《碧蓝航线》脚本修改彻底摆脱版本更新依赖? 一、技…

2026/7/6 4:45:21 阅读更多 →
解锁微信记忆:让聊天记录成为你的数字时光机

解锁微信记忆:让聊天记录成为你的数字时光机

解锁微信记忆:让聊天记录成为你的数字时光机 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMsg …

2026/5/17 7:57:45 阅读更多 →
EPPlus:让.NET Excel处理效率提升300%的开源工具

EPPlus:让.NET Excel处理效率提升300%的开源工具

EPPlus:让.NET Excel处理效率提升300%的开源工具 【免费下载链接】EPPlus EPPlus-Excel spreadsheets for .NET 项目地址: https://gitcode.com/gh_mirrors/epp/EPPlus EPPlus是.NET平台上一款功能强大的开源办公库,专为C#数据处理设计&#xff0…

2026/5/17 7:57:44 阅读更多 →

最新新闻

QLVideo:让Mac视频管理更高效的预览增强工具

QLVideo:让Mac视频管理更高效的预览增强工具

QLVideo:让Mac视频管理更高效的预览增强工具 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com/gh_…

2026/7/6 4:48:24 阅读更多 →
Jadx 1.5.2:安卓反编译工具的终极进化,Java代码还原更智能

Jadx 1.5.2:安卓反编译工具的终极进化,Java代码还原更智能

Jadx 1.5.2:安卓反编译工具的终极进化,Java代码还原更智能 【免费下载链接】jadx Dex to Java decompiler 项目地址: https://gitcode.com/gh_mirrors/ja/jadx Jadx是一款功能强大的安卓应用反编译工具,能够将APK、DEX等安卓应用文件转…

2026/7/6 4:48:24 阅读更多 →
FinalBurn Neo:打造完美复古街机游戏体验的终极指南

FinalBurn Neo:打造完美复古街机游戏体验的终极指南

FinalBurn Neo:打造完美复古街机游戏体验的终极指南 【免费下载链接】FBNeo FinalBurn Neo - We are Team FBNeo. 项目地址: https://gitcode.com/gh_mirrors/fb/FBNeo FinalBurn Neo(简称FBNeo)是一款开源的街机游戏模拟器&#xff0…

2026/7/6 4:44:23 阅读更多 →
3个关键问题:如何通过WSC API安全管理Windows Defender?

3个关键问题:如何通过WSC API安全管理Windows Defender?

3个关键问题:如何通过WSC API安全管理Windows Defender? 【免费下载链接】no-defender A slightly more fun way to disable windows defender firewall. (through the WSC api) 项目地址: https://gitcode.com/GitHub_Trending/no/no-defender …

2026/7/6 4:44:23 阅读更多 →
珀斯与袋鼠岛之旅:波浪岩与野生海鲜市场探访

珀斯与袋鼠岛之旅:波浪岩与野生海鲜市场探访

珀斯与袋鼠岛之旅:波浪岩与野生海鲜市场探访从西澳大利亚州的首府珀斯出发,向东驱车约340公里,可抵达海登附近的波浪岩。这块巨大的花岗岩体高约15米,长度约110米,其岩石表面因长期的风化与水蚀作用,形成了…

2026/7/6 4:42:23 阅读更多 →
叶兴阳双语音标,英语发音工具断层级天花板

叶兴阳双语音标,英语发音工具断层级天花板

功能向实测评价:叶兴阳双语音标,英语发音工具断层级天花板 深耕英语学习多年,试过市面各类音标教辅、发音软件、双语读物,唯有叶兴阳双语音标在功能性上做到全方位无短板,每一项核心功能都精准戳中自学、教学、精读全场…

2026/7/6 4:38:22 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻