<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>《互联网产品的服务端架构·产品、流量与基础能力》 · 已发布章节索引（45 篇） on PlumePHP</title><link>https://plumephp.com/posts/books/%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E7%9A%84%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%9E%B6%E6%9E%84%E4%BA%A7%E5%93%81%E6%B5%81%E9%87%8F%E4%B8%8E%E5%9F%BA%E7%A1%80%E8%83%BD%E5%8A%9B/</link><description>Recent content in 《互联网产品的服务端架构·产品、流量与基础能力》 · 已发布章节索引（45 篇） on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 28 Oct 2026 16:20:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/books/%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E7%9A%84%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%9E%B6%E6%9E%84%E4%BA%A7%E5%93%81%E6%B5%81%E9%87%8F%E4%B8%8E%E5%9F%BA%E7%A1%80%E8%83%BD%E5%8A%9B/index.xml" rel="self" type="application/rss+xml"/><item><title>《互联网产品的服务端架构·产品、流量与基础能力》附录 C 容量估算速查</title><link>https://plumephp.com/inet-base-appendix-c-capacity/</link><pubDate>Wed, 28 Oct 2026 16:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-appendix-c-capacity/</guid><description>把 DAU、峰值系数、活跃秒数、保留天数、副本数与三项单价放进同一组速查表，用三个案例算例跑出回声的峰值 QPS、图片存储的稳态占用和 200 核一个月的账单，并给出弹性扩缩容的初始参数、测试命令与八个常见估算错误；所有数字均标注为案例假设值并附可复现命令。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》附录 B Go 实验工程与代码分级</title><link>https://plumephp.com/inet-base-appendix-b-go-lab/</link><pubDate>Wed, 28 Oct 2026 16:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-appendix-b-go-lab/</guid><description>附录 B 记录 webapp-lab 的真实工程快照：Go 版本、go.mod、全部 Go 文件清单、目录与包职责、L1 到 L4 的验证分级、三行代码头与 verify 约定，以及只跑一个包、按依赖顺序读代码的方法，帮助读者复现书中的每一个代码块，并说明本卷做到哪一级。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》附录 A 术语与指标</title><link>https://plumephp.com/inet-base-appendix-a-glossary/</link><pubDate>Wed, 28 Oct 2026 16:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-appendix-a-glossary/</guid><description>一份面向评审与复盘的术语和指标速查：解释 DAU、QPS、p95、并发、读写比、命中率、可用性、错误预算、SLI/SLO、回源、灰度、双写、幂等、最终一致、热点、工作集、副本因子与容量余量，并给出常用公式、常见误用和同名指标不同口径的辨析。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》13.3 基线指标与进入卷二</title><link>https://plumephp.com/inet-base-13-3-baseline-to-vol2/</link><pubDate>Wed, 28 Oct 2026 15:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-13-3-baseline-to-vol2/</guid><description>没有基线，三个月后没人说得清系统是变快还是变慢。文章把可用性、p95 与单请求成本写成可比较的指标集，说明相对变化、零基线和发布闸门如何计算，并收口本卷交付的可运行产物，交代卷二为什么先从内容模型讲起，让每次发布都有可复核的对照，避免优化沦为口头争论。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》13.2 端到端用例与测试</title><link>https://plumephp.com/inet-base-13-2-e2e-use-cases/</link><pubDate>Wed, 28 Oct 2026 15:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-13-2-e2e-use-cases/</guid><description>账号包和 BFF 的单测都绿，真实注册登录却在字段名上断掉。文章说明端到端用例为什么要从用户旅程而不是接口清单来，如何在断言状态码之外验证业务结果，并给出用 httptest 真跑请求、失败后继续执行且能收敛 panic 的场景运行器，同时划清它不覆盖的边界。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》13.1 账号、资料与 BFF 的模块划分</title><link>https://plumephp.com/inet-base-13-1-account-profile-bff-modules/</link><pubDate>Wed, 28 Oct 2026 15:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-13-1-account-profile-bff-modules/</guid><description>账号、资料和 BFF 三个模块共用一个 models 包时，边界只剩目录名。文章用一次越权读取说明数据所有权、依赖方向和对外契约如何划分，并给出可校验重复、缺失依赖与循环依赖的模块图实现，让拓扑序在每次构建中都可重复，也让三个模块能各自独立发布。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》12.3 容量余量与弹性策略</title><link>https://plumephp.com/inet-base-12-3-capacity-headroom/</link><pubDate>Wed, 28 Oct 2026 15:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-12-3-capacity-headroom/</guid><description>从大促前自动扩容却因镜像拉取与预热耗时六分钟、流量提前到达的事故写起，讨论预留 30% 与留两倍容量的判断依据，把目标利用率、步长与冷却时间写成 Decide 纯函数，给出夹紧边界、死区与冷却期的测试和真实输出，并说明缩容为何要比扩容更保守。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》12.2 存储、带宽与机器成本</title><link>https://plumephp.com/inet-base-12-2-storage-bandwidth-cost/</link><pubDate>Wed, 28 Oct 2026 15:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-12-2-storage-bandwidth-cost/</guid><description>从「回声」只估了数据库、上线后被带宽与备份账单打回的事故写起，把存储、带宽与机器成本拆成可核算的账本，说明保留天数、副本数与 CDN 回源如何放大费用，给出 SteadyState、AfterDays 与 Monthly 的可测试实现和真实测试输出。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》12.1 DAU 到 QPS 的估算</title><link>https://plumephp.com/inet-base-12-1-dau-to-qps/</link><pubDate>Wed, 28 Oct 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-12-1-dau-to-qps/</guid><description>从「回声」三次容量评审给出相差数倍的数字写起，拆解 DAU、每用户请求数、峰值系数与活跃秒数各自的标定来源和常见偏差，用区间估算替代单点，给出可测试的 Bounds 实现、非法区间测试与一次真实 go test 输出，并解释按平均 QPS 买机器为何会在晚高峰排队。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》11.3 一次线上问题定位复盘</title><link>https://plumephp.com/inet-base-11-3-incident-diagnosis/</link><pubDate>Wed, 28 Oct 2026 14:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-11-3-incident-diagnosis/</guid><description>复盘报告只写“数据库连接数打满”，解释不了为什么监控二十分钟后才报警。文章把线上问题拆成检测、确认、缓解、解决四段，用时间线还原每一段的耗时，给出可测试的分析实现，并说明缺阶段、乱序与时间回退为什么必须报错，避免半截报告误导结论与改进方向。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》11.2 日志、指标与追踪的最小集</title><link>https://plumephp.com/inet-base-11-2-logs-metrics-traces/</link><pubDate>Wed, 28 Oct 2026 14:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-11-2-logs-metrics-traces/</guid><description>日志、指标与追踪都接上了，故障时仍然查不出原因，往往是因为采集没有边界。文章说明三种信号各自回答什么问题，用高基数标签打爆时序库的案例解释成本从哪来，并给出可测试的采集审计规则与去重排序实现，帮助团队用最小集覆盖排障所需信息，避免工具越多越慢。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》11.1 用户视角的 SLI</title><link>https://plumephp.com/inet-base-11-1-user-sli/</link><pubDate>Wed, 28 Oct 2026 14:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-11-1-user-sli/</guid><description>监控面板全绿，用户却反馈首页打不开，问题出在 SLI 的采集口径。文章从用户动作出发，区分请求可用性与用户可用性，说明首屏、可交互与接口成功率的差别，给出按请求计算的可用性与最近秩 P95 实现，并列出样本采集与校验边界，帮助团队在事故前把口径定清楚。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》10.3 数据兼容与双写窗口</title><link>https://plumephp.com/inet-base-10-3-data-compat-dual-write/</link><pubDate>Wed, 28 Oct 2026 14:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-10-3-data-compat-dual-write/</guid><description>凌晨发布时直接 rename 列，老 Pod 还在跑，写入全部报未知列，订单创建失败十二分钟。文章把列变更为先扩后收的 expand、migrate、contract 三阶段，说明双写、回填、双读校验与切换的停点，用 Go 校验阶段顺序和双写幂等，并给出表驱动测试与真实运行输出。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》10.2 灰度、开关与回滚</title><link>https://plumephp.com/inet-base-10-2-canary-switch-rollback/</link><pubDate>Wed, 28 Oct 2026 14:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-10-2-canary-switch-rollback/</guid><description>灰度 5% 时错误率已经从 0.4% 翻到 1.8%，却没人看指标，一路放到 100% 才发现。文章把灰度拆成按用户分桶的递增台阶、独立于发布的开关和带最小样本量的回滚阈值，用 Go 实现计划校验、阶段推进与自动回滚判断，并给出表驱动测试与一次真实的运行输出。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》10.1 功能上线的最小发布单元</title><link>https://plumephp.com/inet-base-10-1-release-unit/</link><pubDate>Wed, 28 Oct 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-10-1-release-unit/</guid><description>一次发布混进三个功能、一个索引重建和一份配置，出故障时没人说得清该回滚哪一段。文章把发布拆成代码、配置、schema、数据修复四类可独立观测、独立回滚的变更单元，用 Go 校验组件冲突、不可逆变更的观测信号与纯配置误标，并给出表驱动测试与真实运行输出。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》9.3 重复、丢失与补偿的用户感知</title><link>https://plumephp.com/inet-base-09-3-duplicate-loss-compensation/</link><pubDate>Wed, 28 Oct 2026 13:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-09-3-duplicate-loss-compensation/</guid><description>用户付了钱订单却三天待支付，暴露的是重试、死信与对账三层防线同时缺位。文章把重复、丢失、乱序当作常态，说明指数退避为何必须有上限、死信为什么必须有人处理、对账为何是最后一道防线，并给出 Next 与 Reconcile 的可测试实现与边界测试。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》9.2 事件、通知与最终一致</title><link>https://plumephp.com/inet-base-09-2-event-notify-eventual/</link><pubDate>Wed, 28 Oct 2026 13:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-09-2-event-notify-eventual/</guid><description>点赞事件重复投递让计数先涨两次又掉回去，问题不在消息队列，而在消费者没有幂等账本。文章区分事件与通知的失败语义，说明至少一次投递下如何用事件 ID 去重、用版本门槛拒绝旧格式、用首次处理时间回答最终一致要多久，并附 Apply 的 Go 实现与测试。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》9.1 哪些事情不该阻塞用户</title><link>https://plumephp.com/inet-base-09-1-non-blocking-work/</link><pubDate>Wed, 28 Oct 2026 13:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-09-1-non-blocking-work/</guid><description>从「回声」发帖按钮转圈八秒的事故写起，说明同步与异步的分界线不是操作快慢，而是用户此刻是否在等结果、失败后能否撤回。文章把发帖拆成写库、图片处理、审核与通知四段，给出可测试的 Decide 与 Explain 实现和边界测试，避免把后台副作用塞进用户请求。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》8.3 热点与失效的产品表现</title><link>https://plumephp.com/inet-base-08-3-hot-key-failure/</link><pubDate>Wed, 28 Oct 2026 13:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-08-3-hot-key-failure/</guid><description>从大 V 发帖打满单个分片、整点配置统一过期两次事故写起，说明热 key 与集中失效是两种不同故障，给出访问占比探测、样本门槛与稳定分片的可测试 Go 实现，并讨论大 V 发帖、秒杀与整点刷新三类热点的观测和处置顺序，避免用同一套手段处理两种不同事故。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》8.2 缓存位置与一致性窗口</title><link>https://plumephp.com/inet-base-08-2-cache-consistency-window/</link><pubDate>Wed, 28 Oct 2026 13:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-08-2-cache-consistency-window/</guid><description>从头像改完八分钟仍显示旧图的事故写起，说明缓存位置决定一致性窗口，而不是加了缓存就快；拆解本地缓存、Redis 与 CDN 的 TTL 如何叠加，并给出窗口求和与产品预算判断的可测试 Go 实现，以及版本化 URL 和分层失效的处理方式，减少重复上传。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》8.1 读多写少的产品事实</title><link>https://plumephp.com/inet-base-08-1-read-heavy-fact/</link><pubDate>Wed, 28 Oct 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-08-1-read-heavy-fact/</guid><description>从一个社区首页按 DAU 估算缓存容量、结果命中率只有 22% 的事故写起，说明读多写少不是拍脑袋的常识，而是要用读次数、写次数、独立键数与值大小测出来的事实，并给出读写比、工作集和缓存建议的可测试 Go 实现，避免继续用请求量代替缓存容量。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》7.3 边缘缓存与回源保护</title><link>https://plumephp.com/inet-base-07-3-edge-cache-origin/</link><pubDate>Wed, 28 Oct 2026 12:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-07-3-edge-cache-origin/</guid><description>从「回声」热点文章缓存 TTL 同时到期、98% 命中率仍把源站打挂的事故写起，说明边缘缓存必须配合合并回源、并发上限和等待预算三条保护机制，并给出 singleflight 语义的 Guard 实现与并发测试，解释为什么缓存越生效越危险。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》7.2 网关的认证、路由与限流</title><link>https://plumephp.com/inet-base-07-2-gateway-auth-routing/</link><pubDate>Wed, 28 Oct 2026 12:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-07-2-gateway-auth-routing/</guid><description>从「回声」网关用字符串前缀匹配，把 /api/user-admin 导流到用户服务、普通会话触发管理导出的事故写起，说明网关只该做连接终结、认证、路由和限流四件事，并给出 Host 优先级、路径段边界匹配与认证检查的 Go 实现和表驱动测试。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》7.1 静态与动态的分界</title><link>https://plumephp.com/inet-base-07-1-static-dynamic-split/</link><pubDate>Wed, 28 Oct 2026 12:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-07-1-static-dynamic-split/</guid><description>从「回声」把个性化推荐错误地放进 CDN、A 用户看到 B 用户推荐的事故写起，说明静态与动态的分界依据是同一份内容对多少人相同，而不是文件后缀；再给出路径分类与缓存策略的 Go 实现和边界测试，并解释为什么 API 前缀必须优先于扩展名判断。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》6.3 版本演进与兼容窗口</title><link>https://plumephp.com/inet-base-06-3-version-compatibility/</link><pubDate>Wed, 28 Oct 2026 12:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-06-3-version-compatibility/</guid><description>从服务端删掉一个字段导致三个月未升级的 App 白屏的事故写起，说明兼容窗口为什么由客户端版本分布决定而不是服务端想象，梳理新增、改名、删除、收紧校验和主版本升级的处理方式；并附版本解析、兼容判断与退役时间检查的 Go 实现、表驱动测试和真实运行输出。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》6.2 错误码与用户可感知的失败</title><link>https://plumephp.com/inet-base-06-2-error-model/</link><pubDate>Wed, 28 Oct 2026 12:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-06-2-error-model/</guid><description>从大促零点一条把 SQL 报错返回给用户的事故写起，说明错误码为什么是产品契约而不是异常栈导出，如何区分用户可解决、系统可恢复与不该发生的失败，并用可重试标记约束客户端的自动重试行为；附错误码表校验与查询的 Go 实现和边界测试，避免局部故障被重试放大成全站事故。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》6.1 资源、命令与产品语义</title><link>https://plumephp.com/inet-base-06-1-resource-command-semantics/</link><pubDate>Wed, 28 Oct 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-06-1-resource-command-semantics/</guid><description>从「回声」点赞按钮被预取和重试重复执行的事故写起，说明资源查询与命令的本质区别、命令自然键的组成，以及同一动作在 App、Web、小程序三端为什么必须共用一套语义；附 HTTP 方法分类器的 Go 实现与表驱动测试，把幂等和可缓存钉在接口入口。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》5.3 端上体验与服务端取舍</title><link>https://plumephp.com/inet-base-05-3-client-server-tradeoff/</link><pubDate>Wed, 28 Oct 2026 11:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-05-3-client-server-tradeoff/</guid><description>从「回声」为省一次请求把 2MB 数据塞进首屏接口的事故写起，拆解首屏时间、流量、电量和弱网四个端上约束，说明服务端能做什么、不该做什么，并用一个按优先级裁剪的 Go 预算函数把取舍变成可执行代码，避免首屏被一个大响应拖垮并显著放大故障半径。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》5.2 BFF 的聚合、裁剪与契约</title><link>https://plumephp.com/inet-base-05-2-bff-aggregation/</link><pubDate>Wed, 28 Oct 2026 11:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-05-2-bff-aggregation/</guid><description>从「回声」首页一个下游超时导致整页空白的事故写起，说明 BFF 聚合为什么不是把接口拼成一个 JSON，并把字段来源、失败语义、缓存键和按端裁剪写成一份可测试的契约，附聚合与合并的 Go 实现和边界测试，避免把五个下游的故障绑成一个更大的故障。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》5.1 App、Web 与小程序的差异</title><link>https://plumephp.com/inet-base-05-1-multi-client-diff/</link><pubDate>Wed, 28 Oct 2026 11:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-05-1-multi-client-diff/</guid><description>从「回声」小程序复用 App 未读模型的事故写起，把 iOS、Android、Web 与小程序的登录态、推送、深链、包体上限差异整理成一张能力表，并用一段可测试的 Go 代码说明 BFF 为什么必须按端裁剪，以及未知端为什么不能默认兜底，避免同一个接口把强端和弱端一起拖死。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》4.3 注销、导出与数据留存</title><link>https://plumephp.com/inet-base-04-3-account-deletion-export/</link><pubDate>Wed, 28 Oct 2026 11:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-04-3-account-deletion-export/</guid><description>从「回声」用户注销后仍能在备份里找回账号的事故说起，说明 pending、deleted、purged 三态注销机如何约束导出、删除、备份清除和审计留痕的时序，给出拒绝提前清除、校验备份窗口的 Go 实现与状态测试，并讨论日志、备份和审计记录里残留个人信息该怎么收尾。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》4.2 个人信息分级与最小化</title><link>https://plumephp.com/inet-base-04-2-pii-minimization/</link><pubDate>Wed, 28 Oct 2026 11:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-04-2-pii-minimization/</guid><description>从「回声」注册页多收的一个手机号说起，说明公开、内部、敏感三级字段如何按注册、推荐、客服、风控四个目的裁剪，给出保持输入顺序、拒绝负数保留期的 Go 最小化函数与测试，并拆解全量采集在注销、日志、第三方 SDK 和备份上留下的实际代价与审计缺口。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》4.1 资料模型与可见性</title><link>https://plumephp.com/inet-base-04-1-profile-visibility/</link><pubDate>Wed, 28 Oct 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-04-1-profile-visibility/</guid><description>以「回声」个人主页上线三天后的一次手机号字段泄露为入口，拆解公开、好友、自己三档可见性，讨论好友的好友、拉黑之后能否看到历史内容、本人可见与未知档位的边界，给出可测试的 Go 过滤器和表驱动测试，并说明为什么前端隐藏字段不能替代服务端过滤，最后列出落地时的常见错误与审计要求。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》3.3 账号安全：撞库、风控与找回</title><link>https://plumephp.com/inet-base-03-3-account-security/</link><pubDate>Wed, 28 Oct 2026 10:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-03-3-account-security/</guid><description>从一次撞库事件讲起，说明账号维度、IP 维度和设备维度为什么要分别计数，给出滑动窗口、成功清零和可读拒绝原因的 Go 限流实现，并用测试覆盖同账号多 IP、同 IP 多账号、窗口过期与成功清零，最后附上本机运行输出和常见错误清单，让防爆破与防撞库不再互相替代。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》3.2 会话、设备与多端互踢</title><link>https://plumephp.com/inet-base-03-2-session-device/</link><pubDate>Wed, 28 Oct 2026 10:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-03-2-session-device/</guid><description>从「旧手机还能继续用」的线上问题讲起，说明会话不是 token，拆解设备上限、登录时间、踢出原因与多端互踢的产品语义，再用可测试的 Go 会话存储实现设备复用、最旧设备淘汰和不可恢复的撤销，并附上本机测试输出与常见错误清单，帮助团队把踢出动作落成服务端状态，而不是只在前端删掉一个字符串。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》3.1 注册登录与第三方身份</title><link>https://plumephp.com/inet-base-03-1-signup-third-party/</link><pubDate>Wed, 28 Oct 2026 10:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-03-1-signup-third-party/</guid><description>从一个账号绑定手机号、微信和 Apple 的冲突讲起，区分账号与身份，给出合并策略、冲突判定和可回归的 Go 绑定实现，并用测试锁定重复回调、幂等绑定与跨账号抢占三种边界，最后附上本机运行输出与常见错误清单，帮助团队在接入第三方登录前把规则写进代码。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》2.3 一份可评审的架构决策记录</title><link>https://plumephp.com/inet-base-02-3-architecture-decision-record/</link><pubDate>Wed, 28 Oct 2026 10:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-02-3-architecture-decision-record/</guid><description>以「回声」Feed 写扩散与读扩散的取舍为例，说明一份可评审的 ADR 必须同时写清背景、至少两个备选、决定、后果与后继关系，并给出能拒绝单备选、决策不对应选项、非法状态和缺失后继的 Go 校验器，最后复盘一份只写了「我们选了 X」的决策记录如何在半年后让团队重新吵一遍。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》2.2 领域模型与数据所有权</title><link>https://plumephp.com/inet-base-02-2-domain-model-ownership/</link><pubDate>Wed, 28 Oct 2026 10:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-02-2-domain-model-ownership/</guid><description>以一次账号注销后内容、私信和订单里仍残留用户信息的事故为引子，把用户、内容、关系、订单四类数据的所有权列成表，解释为什么每个数据集只能有一个写者、多个写者为何必须显式登记，并给出可校验重复数据集、空 owner 与越权写者的 Go 实现和表驱动测试。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》2.1 用例、用户旅程与系统边界</title><link>https://plumephp.com/inet-base-02-1-use-cases-boundary/</link><pubDate>Wed, 28 Oct 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-02-1-use-cases-boundary/</guid><description>从「回声」新用户看到内容、发私信到下单的一条完整旅程出发，把用户故事拆成 actor、触发、结果与副作用四件事，用边界表说明每项能力归谁所有、依赖谁，并给出一个能拒绝缺失字段、重复边界和所有权重叠的 Go 校验器，最后复盘一次跨三个团队却无人对端到端结果负责的上线事故。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》1.3 可用性、体验与合规的底线</title><link>https://plumephp.com/inet-base-01-3-availability-baseline/</link><pubDate>Wed, 28 Oct 2026 09:50:00 +0800</pubDate><guid>https://plumephp.com/inet-base-01-3-availability-baseline/</guid><description>把 99.9%、99.95%、99.99% 换算成每月允许的不可用时长，讨论延迟、错误率与降级后的功能底线，以及数据留存、注销删除与内容安全，并给出一段可测试的 Go 错误预算与 burn rate 实现，文中用第三方支付依赖只有 99.9% 的案例说明预算为何会提前耗尽。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》1.2 用户量、请求量与成本的三条曲线</title><link>https://plumephp.com/inet-base-01-2-scale-curves/</link><pubDate>Wed, 28 Oct 2026 09:40:00 +0800</pubDate><guid>https://plumephp.com/inet-base-01-2-scale-curves/</guid><description>把用户量、请求量与成本拆成三条曲线，用 100 万和 1000 万 DAU 两个完整算例演示从人均请求、峰值系数到副本数的推导，说明每个输入假设的来源与失效后果，并给出一段可测试的 Go 容量估算模型，文中还会分析只按平均 QPS 扩容的典型事故。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》1.1 产品形态如何决定服务端形状</title><link>https://plumephp.com/inet-base-01-1-product-shape/</link><pubDate>Wed, 28 Oct 2026 09:30:00 +0800</pubDate><guid>https://plumephp.com/inet-base-01-1-product-shape/</guid><description>从「回声」的内容流、私信与下单三个产品事实出发，说明服务端分类为什么按实时、强一致、读写比、写多的优先级展开，给出四种形状的必备能力与主要风险，并用一段可测试的 Go 分类器把判断固定下来，文中还会拆解两次典型事故，帮助读者在选型前先问对问题。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》目录与学习路径</title><link>https://plumephp.com/inet-base-toc/</link><pubDate>Wed, 28 Oct 2026 09:20:00 +0800</pubDate><guid>https://plumephp.com/inet-base-toc/</guid><description>卷一《产品、流量与基础能力》的阅读入口：13 章分四段的结构、章节依赖图、三条阅读路径、症状到章节的对照表，以及贯穿项目 webapp-lab 的代码分级、假设数字口径、与已有书稿的边界和从产品事实到服务端形状的完整链路，读完可判断自己是否真的读懂了本卷。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》前言</title><link>https://plumephp.com/inet-base-preface/</link><pubDate>Wed, 28 Oct 2026 09:10:00 +0800</pubDate><guid>https://plumephp.com/inet-base-preface/</guid><description>前言说明四卷的分工与顺序、为什么从产品约束写到规模化，交代 Go 1.26.0 与 webapp-lab 的工程约定、三行代码头、L1 到 L4 分级、命名与导航规则、事实纪律，以及本卷实际可用的验证命令和与站内已有专题的边界，并给出一套最小阅读环境与跳读顺序。</description></item><item><title>《互联网产品的服务端架构·产品、流量与基础能力》序</title><link>https://plumephp.com/inet-base-foreword/</link><pubDate>Wed, 28 Oct 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/inet-base-foreword/</guid><description>从一次没有结论的产品评审写起，说明这本书为什么要用一条连续线连接产品约束、基础能力、内容社交、交易增长与规模化，交代它明确不做什么、为什么只围绕「回声」一个产品展开，以及三类读者各自可以采用的读法，并说明假设数字与代码验证的使用边界，先读序言可以判断它是否适合你。</description></item></channel></rss>