唯一责任方应当由“谁掌握该网址规则所依赖的最终事实”来决定,而不是由谁先发出请求、谁的系统更早上线来决定。若网址规则依赖商品、栏目或权限的最终状态,责任方是这些事实的权威系统;若网址规则只是对权威事实的映射与发布,责任方是映射发布系统。两者同时生成规则时,必须有一方降级为“只提供输入、不发布最终规则”,否则加载速度问题会反复出现且无法定位。
网址规则通常由三部分构成:标识符、层级路径和可访问状态。多个系统同时生成规则,往往是因为其中一个系统持有标识符,另一个系统持有层级路径,还有一个系统决定可访问状态。此时唯一责任方应落在持有“最终可访问状态”的系统,因为加载速度的故障表现——规则指向的地址返回重定向链、404、软404或长期不更新——都取决于状态判定。
可以用一个假设例子来区分:假设商品系统负责生成商品标识,栏目系统负责生成栏目路径,网关负责拼接完整网址。如果商品下架后栏目系统仍按旧路径生成规则,那么责任方是决定可访问状态的系统,而不是拼接动作发生的地方。把责任方定在状态系统,意味着其他系统只提交输入,不直接写出最终规则。
当发现两个系统都在生成网址规则时,不必立刻推翻其中一个,先按以下条件选择:
这三种取舍不是并列推荐,而是按前提递进:先看规则是否相交,再看状态是否同源,最后看旧方是否还有独立价值。前提不满足时,保留双生成往往只是把问题推迟到下一次状态变更。
责任方确定后,还需要把边界写成可核对的约定,否则加载速度问题仍会在系统之间来回转移。至少写清四类边界:
一个实际动作是:在规则存储层增加写入来源标记,只允许责任方写入最终规则,非责任方写入的记录自动进入待处理区。该动作的结果是,加载速度排查时可以先看规则是否由责任方生成,再看资源响应,从而把“规则生成错误”和“资源加载慢”分开处理,下一步的修复对象也随之明确。
有了唯一责任方,速度异常可以按以下顺序缩小范围:先确认出问题的网址是否由责任方生成;若不是,直接回到规则生成环节,而不是继续压测资源。若是,再确认规则指向的地址是否发生重定向或状态变化;若发生,检查责任方的状态同步周期。若规则和状态都正常,才进入资源层排查。
需要注意,抓取量下降或某个统计归零不能单独证明规则生成处理正确,它还可能来自抓取预算变化、外部链接减少或统计口径调整。站点地图不保证收录,robots.txt 的抓取限制也不等于可靠的索引移除。因此,责任方的验证应基于规则本身和状态变化,而不是只看流量或抓取数字。
若业务前提发生变化,例如原责任方系统被拆分或状态来源迁移,应重新执行上面的判断:状态事实迁移到哪个系统,唯一责任方就随之迁移。旧责任方在迁移完成前可以保留只读输出,迁移完成后退出生成,避免两套规则同时生效。这样处理,加载速度问题才有稳定的归属,而不是每次异常都重新争论由谁负责。