Skip to content

主链路 / 外围链路 ​

Category ​

glossary 词条。节点定位:主链路与外围链路的划分是设计动作不是事实描述——核心行为直接经过 vs 支撑但不决定成败。

Definition ​

这对词在全书里出现频率很高,因为大量架构分歧的本质,是主链路和外围链路没有被分开对待。主链路指玩家核心行为直接经过的那段路径,通常是登录、匹配、进房、局内交互、结算;外围链路指支撑这些行为但不直接决定成败的部分,比如排行刷新、成就通知、报表聚合、日志采集和推送。

Problem ​

大量架构分歧的本质是主链路和外围链路没被分开对待:给外围链路套主链路级保障是浪费,把主链路按外围标准做可用性是事故。划分要在设计期定,事后归类会被既得利益拉偏。

为什么划分是设计动作而不是事实描述 ​

哪些链路算主链路,取决于问题模型,不取决于技术形态。对战产品的主链路大多落在局内同步与断线恢复;长周期成长产品的主链路往往落在资产正确性、配置安全和活动节奏。同一套系统在两类产品里,主链路的画法完全不同。所以这对词每次使用都应该附带“针对哪个产品”的上下文,否则就成了口号。

两类链路的目标通常不同 ​

  • 主链路优先保证延迟和确定性:请求要可解释,失败要可见,裁决要权威。
  • 外围链路优先保证吞吐和解耦:允许延迟、允许重试、允许批处理,甚至允许短暂不可用。

目标不同,技术选择就不同:主链路适合同步调用加明确超时,外围适合事件加队列加幂等消费。反过来用,就是很多线上问题的来源。

判断一段链路属于哪边的几个问题 ​

  • 玩家能不能直接感知它的延迟或失败。
  • 它出错是否直接影响收入、资产或公平性。
  • 它是否要求确定性的顺序和结果。
  • 它能不能接受批处理和重试。

四个问题都指向主链路的,按主链路治理;多数指向外围的,按外围治理;两边混杂的,往往说明这段链路本身该拆开。

一些常见链路的归类示例 ​

  • 登录、进房、局内交互、结算落账:主链路。
  • 支付回调到资产到账:主链路,且通常要求可对账。
  • 排行刷新、成就通知、报表聚合:外围。
  • 公告和推送:外围,但全服邮件这类高危动作要按主链路的治理等级对待。
  • 补偿和客服操作:平时偏外围,出事故时按主链路对待。

示例只是参照,落到自己项目仍要回到问题模型去判断,直接照抄别的项目的清单是最常见的误用。

划分的实际收益 ​

让主链路简单可控,让外围链路能独立演进。典型做法是结算先同步产出权威结果,再异步广播给排行、成就和报表:主链路保持可解释,外围获得解耦。反过来,如果结算时同步等待排行写入,一个外围系统的抖动就直接拖住了全服的结算速度。

常见的混用代价 ​

  • 外围系统抖动直接拖住主链路,故障面从局部放大到全局。
  • 主链路为了吞吐牺牲可解释性,出了问题没人说得清哪一步错。
  • 所有消息挤进同一条总线,优先级、顺序和重试语义互相污染。
  • 外围不可用被当成小事,结果活动高峰期报表和补偿一起失灵。

划分之后怎么落地 ​

划分的价值在落地时体现。部署上,主链路和外围分开部署、分开扩缩容;消息上,两类链路用不同的可靠性和顺序语义;观测上,主链路有端到端证据链,外围允许聚合指标。三件事里缺一件,划分就还停留在架构图的层面。

容易归错类的一类:审计与对账记录 ​

埋点、日志、流水这些看起来最像外围,但对账、审计、申诉用的记录属于资产链路的证据,缺失时主链路的争议就无法裁决。常见做法是把量大的分析类日志放外围,把资产相关的操作记录按主链路的可靠性要求对待,两者在采集层就分开。

边界会随阶段移动 ​

上线前,核心玩法闭环就是主链路;进入长线运营后,活动配置、资产补偿和客服工具的链路往往会升格为事实上的主链路,因为它们出错的代价已经是资损级。定期重新确认边界,比一次划分定终身更符合实际。

常见误区 ​

  • 把主链路当成固定清单抄别的项目,不看自己的问题模型。
  • 用一套消息语义覆盖两类链路,主链路不可解释,外围不可吞吐。
  • 只在外围堆监控,主链路反而没有证据留存,出事只能靠猜。
  • 阶段变了边界不更新,运营期的高危链路仍按外围标准治理。

Used By ​

链路分级与 SLA 分档;排障优先级判定;评审时的保障标准归类。

关系链:划分定性 → 两类链路目标 → 判断问题 → 归类示例 → 落地。上游:glossary/01。下游:production/03(按链路分档的灰度回滚)、operation/observability/06(稳定性分级)。

Reference ​

本页为工程经验归纳。

游戏知识体系