posts

《互联网产品的服务端架构·内容、社交与实时互动》 · 已发布章节索引(45 篇)

《互联网产品的服务端架构·内容、社交与实时互动》全 45 篇:13 章正文覆盖内容模型、发布审核、Feed 推拉与排序、社交关系、计数互动、评论、IM 消息与投递、推送、搜索、推荐;附序、前言、目录与三篇附录,配可运行的 Go 实验工程。

全书 45 篇:13 章正文 + 序、前言、目录 + 附录 A/B/C。每节配可运行的 Go 代码,代码块用 // file: / // tier: / // verify: 标注,可在实验工程中逐字节还原。

本页是卷二的完整索引。可以从目录与学习路径 按顺序通读,也可以按问题跳读。

全书概览

项目内容
书稿《互联网产品的服务端架构》卷二
已发布篇数45 篇(含目录与附录)
主线语言Go 1.26.0(实验工程 module webapp)
贯穿案例内容社区 + IM + 轻交易「回声」
阅读方式目录篇顺序通读,或按章节表跳读
上级专题书稿专题

前置

篇文章核心内容
序序卷二序:当产品从「能注册、能改资料」长到「有人发、有人看、有人回应」,服务端要解决的核心…
前言前言卷二前言:说明本书的读者对象、13 章的组织方式、每章的统一结构、可运行 Go 实验工程…
目录目录与学习路径卷二目录:13 章从内容模型、发布审核、Feed 推拉与排序,讲到社交关系、计数与互动、…

第 1 章 内容模型

节文章核心内容
1.11.1 文本、图片与视频的元数据从一次只存 URL 的上传接口出发,说明文本、图片与视频的元数据为什么是审核、检索、转码…
1.21.2 内容状态机:草稿、审核、发布、删除从作者在审核中又改了一版内容出发,说明草稿、审核、发布、删除四个状态为什么必须把发起人、…
1.31.3 内容存储的冷热分层从一篇三个月前的爆款帖被迁到冷存储后点开要等八秒出发,说明冷热分层为什么按访问而不是创建…

第 2 章 发布与审核

节文章核心内容
2.12.1 发布链路的同步与异步从「回声」创作者点击发布后转圈八秒的故障出发,拆解发布链路里哪些步骤必须在请求内完成、哪…
2.22.2 机审、人审与复审用一条被误判的宠物视频串起机审、人审与复审:机审输出置信度,人审处理灰区,复审靠抽样与申…
2.32.3 审核失败的用户体验与申诉审核失败时只回一句「内容违规」,用户会反复提交同一内容,客服也无法解释。文章把失败提示拆…

第 3 章 Feed 模型

节文章核心内容
3.13.1 拉模式:读时聚合从关注 500 人与 5000 人的首页刷新出发,拆解拉模式为什么把成本放在读时:一次刷…
3.23.2 推模式:写时扩散从一条粉丝 500 万的明星动态出发,拆解推模式为什么把成本放在写时:一条内容要扩散多少…
3.33.3 推拉结合与混合时间线从普通用户关注 800 人的首页出发,拆解混合时间线为什么必须按作者分层而不是按用户分层…

第 4 章 Feed 排序

节文章核心内容
4.14.1 时间、热度与多样性从三天前爆款占满首页的事故写起,拆解时间衰减、点赞热度与作者亲和度三种信号各自的偏差,说…
4.24.2 去重、折叠与已读从用户点过一条内容、刷新后它就消失的投诉写起,区分按内容 ID 去重与按事件去重,讨论已…
4.34.3 排序实验与效果回收从实验组点击率涨了 8%、次留却跌了 2% 的事故写起,说明分桶必须稳定、指标必须先定、…

第 5 章 社交关系

节文章核心内容
5.15.1 关注、好友与双向关系从「回声」上线好友功能后的一次投诉写起:一方删除好友,另一方仍能看到仅好友可见的动态。文…
5.25.2 拉黑、屏蔽与可见性判定从「回声」一次拉黑只在前端生效的事故写起:用户拉黑骚扰者后,换个客户端仍能看到对方内容。…
5.35.3 关系链的存储与查询从「回声」共同好友查询在 1 万好友时耗时 12 秒的事故写起,拆解我关注谁、谁关注我、…

第 6 章 计数与互动

节文章核心内容
6.16.1 点赞、评论与收藏从「回声」上线点赞后计数不动的投诉写起:拆解点赞、评论、收藏三种互动对一致性的不同要求,…
6.26.2 计数一致性:精确、近似与对账从「回声」大 V 取消点赞后计数仍上涨的事故写起:对比精确计数、近似去重计数与对账重建三…
6.36.3 互动防刷与频控从「回声」一次点赞活动被代理池刷穿的事故写起:说明「同一用户对同一目标」「同一 IP 多…

第 7 章 评论

节文章核心内容
7.17.1 评论树与分页从「回声」评论区「查看更多回复」翻页出现重复评论的事故写起,对比平铺、两层与多级评论树的…
7.27.2 评论审核与折叠从「回声」一条违规评论在正文审核通过后存活四十分钟的事故写起,拆解正文、根评论、回复和昵…
7.37.3 互动通知的触发边界从「回声」用户被二十条连赞推送逼到关闭通知权限的事故写起,拆解自己操作、被屏蔽者、短时间…

第 8 章 IM 消息模型

节文章核心内容
8.18.1 会话、消息与序号从两个客户端同时发消息却看到不同顺序的事故写起,说明单聊会话 ID 如何由双方 ID 排…
8.28.2 单聊、群聊与系统消息从系统通知被用户回复、产生没有接收方的会话写起,对照单聊、群聊、系统会话的成员与发送权限…
8.38.3 消息存储与漫游从换手机拉取三年聊天记录把数据库打满的事故写起,比较按会话分片、按时间分区与按用户分片的…

第 9 章 IM 投递

节文章核心内容
9.19.1 在线投递与离线补偿从「回声」一次手机和电脑同时在线、消息只到手机的事故写起:在线投递只是尽力而为,多设备投…
9.29.2 多端已读与未读计数从「回声」手机读完消息、桌面未读数不降的事故写起:已读位置是多端上报的事实,未读数是派生…
9.39.3 消息可靠性与去重从「回声」网络抖动触发客户端重发、接收方看到两条相同消息的事故写起:去重不能依赖客户端单…

第 10 章 推送与通知

节文章核心内容
10.110.1 渠道、模板与到达率从「回声」一条发布成功通知用户却没看到写起:区分发送成功与真实到达,拆解 APNs、FC…
10.210.2 通知聚合与频控从「回声」用户一天收到 15 条推送后关闭通知写起:拆解按用户、按会话、按内容三种聚合维…
10.310.3 推送失败与降级从「回声」APNs 证书过期导致 iOS 推送静默失败三天写起:区分可重试与不可重试的失…

第 11 章 搜索接入

节文章核心内容
11.111.1 索引与业务库的同步从一篇已发布文章在搜索里消失十分钟的事故写起,说明索引是另一种读模型而不是业务库副本。文…
11.211.2 召回、排序与过滤从一次搜索结果里出现无权限标题、点进去 403 的事故写起,拆开召回、排序与过滤三个阶段…
11.311.3 搜索一致性与删除从作者删帖三天后搜索仍能看到摘要的事故写起,说明删除必须留下墓碑而不能等索引重建。文章用…

第 12 章 推荐接入

节文章核心内容
12.112.1 推荐服务与业务服务的边界推荐服务与业务服务的边界一旦模糊,推荐侧就会悄悄依赖内容库表结构,内容团队一次字段迁移就…
12.212.2 特征、候选与在线服务在线推荐最常见的性能事故,是在请求链路里现算长周期特征,p99 会从几十毫秒涨到近一秒。…
12.312.3 冷启动与效果兜底冷启动不是“没有特征就随机”,而是要有明确的兜底链和降级条件,否则新用户会看到空白首页。…

第 13 章 收口

节文章核心内容
13.113.1 发布→Feed→互动→通知从「回声」一次发布因通知失败整条回滚的事故写起:拆解发布、Feed 分发、互动与通知四个…
13.213.2 IM 与未读的端到端验证以多端联调时手机未读归零、平板仍显示 3 的事故写起:说明单测为什么抓不到会话 ID 不…
13.313.3 质量指标与进入卷三收口卷二:用 Feed 新鲜度、消息到达率与未读准确率三个指标判断内容社交系统是否变好,…

附录

篇文章核心内容
附录 A 内容与社交数据模型附录 A 内容与社交数据模型把卷二涉及的内容、媒体、审核、关系、评论、计数、会话、消息、已读与索引整理成一张可对照的…
附录 B Feed 与 IM 参数表附录 B Feed 与 IM 参数表把卷二各章的阈值、窗口、上限与默认值集中成表:内容分层、审核时限、推拉门槛、排序权重、频…
附录 C 互动与通知检查清单附录 C 互动与通知检查清单把卷二各章的判断整理成可直接使用的检查清单:发布与审核、可见性、Feed、互动计数、评论…

怎么读这一卷

与其他书稿的边界

代码与可复现性

全部文章 Books game Java Indie golang 客户端开发 Minigame Saas rust Python
books

《互联网产品的服务端架构·内容、社交与实时互动》附录 B Feed 与 IM 参数表

把卷二各章的阈值、窗口、上限与默认值集中成表:内容分层、审核时限、推拉门槛、排序权重、频控窗口、评论折叠、消息去重、在线判定、推送降级与搜索滞后各自给出起点值与标定方法,并标明哪些是代码常量、哪些是案例假设,附不同规模下的调整趋势与监控指标对应表。

10 分钟阅读
书稿 Feed IM
books

《互联网产品的服务端架构·内容、社交与实时互动》附录 A 内容与社交数据模型

把卷二涉及的内容、媒体、审核、关系、评论、计数、会话、消息、已读与索引整理成一张可对照的数据模型:每张表列出关键字段、类型、索引与写入方,并说明哪些字段可以冗余、哪些必须由单一服务负责写入,附冗余字段判定表、迁移顺序建议与常见建模错误对照。

7 分钟阅读
书稿 内容社区 数据模型
books

《互联网产品的服务端架构·内容、社交与实时互动》12.3 冷启动与效果兜底

冷启动不是“没有特征就随机”,而是要有明确的兜底链和降级条件,否则新用户会看到空白首页。本文用 Choose 函数实现个性化、热榜、新鲜内容与编辑精选的顺序降级,并给出新用户首页空白的真实失败场景与测试。顺序与健康判定必须可观测、可回放、可演练。

9 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》12.1 推荐服务与业务服务的边界

推荐服务与业务服务的边界一旦模糊,推荐侧就会悄悄依赖内容库表结构,内容团队一次字段迁移就可能让首页空白。本文用候选合并函数说明如何只交换 ID 与分数,把“能不能推”留在业务侧,并给出可运行的 Go 测试与失败场景。边界清晰后,内容下线与运营插位都不必改模型服务。

11 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》11.3 搜索一致性与删除

从作者删帖三天后搜索仍能看到摘要的事故写起,说明删除必须留下墓碑而不能等索引重建。文章用 Lag 与 Stale 判断索引水位是否落后预算,用 Retry 保持失败重试顺序,并给出时间倒退、零预算与墓碑重试的测试、真实运行输出和一致性窗口的产品口径。

9 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》11.2 召回、排序与过滤

从一次搜索结果里出现无权限标题、点进去 403 的事故写起,拆开召回、排序与过滤三个阶段的职责。文章用 Match 纯函数把作者、时间、删除标记与多词命中写成可测试的布尔判断,给出边界用例、真实运行输出,并解释清楚过滤为什么必须发生在排序之前。

10 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》10.1 渠道、模板与到达率

从「回声」一条发布成功通知用户却没看到写起:区分发送成功与真实到达,拆解 APNs、FCM、Web Push、小程序订阅消息在包体、图片和深链上的差异,给出 Capability、Of 的 Go 实现、表驱动测试与真实运行输出,并梳理模板裁剪和到达率统计的常见错误。

13 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》9.3 消息可靠性与去重

从「回声」网络抖动触发客户端重发、接收方看到两条相同消息的事故写起:去重不能依赖客户端单方面生成的消息 ID,网关重试和消费重试都会产生重复。文章给出 Window 的 TTL 判定、时钟倒退检测、Prune 清理与幂等边界测试,并说明去重键该由谁生成。

9 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》9.2 多端已读与未读计数

从「回声」手机读完消息、桌面未读数不降的事故写起:已读位置是多端上报的事实,未读数是派生值。文章把按会话已读、多设备取最大已读序号、越界钳零、无记录视为全部未读写成 Count 纯函数,并给出边界测试、真实运行输出与存储、缓存与投递的边界。

9 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》9.1 在线投递与离线补偿

从「回声」一次手机和电脑同时在线、消息只到手机的事故写起:在线投递只是尽力而为,多设备投递必须全部覆盖,心跳过期要按离线处理。文章给出 Route 的成员白名单、TTL 边界、去重排序实现与边界测试,并说明离线补偿为什么才是消息可靠性的真正来源。

9 分钟阅读
书稿 互联网产品 服务端架构
books

《互联网产品的服务端架构·内容、社交与实时互动》8.2 单聊、群聊与系统消息

从系统通知被用户回复、产生没有接收方的会话写起,对照单聊、群聊、系统会话的成员与发送权限,说明群成员上限如何影响写扩散,给出会话校验与 CanSend 的 Go 实现、边界测试和真实运行输出,并列出会话模型设计、服务端发送权限与客户端展示的常见错误。

7 分钟阅读
书稿 互联网产品 服务端架构