Skip to main content

匹配如何在负载下扩容

概览

当队列接收到大量工单时,服务会自动扩展其处理能力以保持低匹配延迟。随着负载增加,工单会根据你的队列配置的规则进行分组,使相似的工单——更可能兼容的工单——被一同评估。随着负载降低,这些组会合并,为服务提供更大的工单池以供选择,并提高对局质量。 这种扩容对玩家是透明的,但你在队列上配置的规则会影响服务分发工作的效率。理解此过程有助于设计能够高效扩容的队列配置。

是什么让规则易于扩容

当服务需要在其处理能力之间分发工单时,它会寻找能够自然将工单划分为大致相等组的规则属性。取值范围广泛的规则效果最好——它们为服务提供更多平衡负载的选项。 如果没有规则能提供良好的分布,服务会退回到一种通用分布,不依赖规则属性即可平衡负载。例如,当大多数工单共享相同的属性值时会发生这种情况。

适合分区的规则

  • 具有多样化取值的字符串相等规则——像 GameModeRegion 这样在玩家群体中具有多个不同取值的规则会创建自然的分区边界。服务可以将共享相同值的工单干净地划分为组。
  • 必需规则——在整个匹配过程中一直强制执行(无扩展)的规则更适合分区,因为它们代表硬性约束。基于这些规则拆分可确保分区边界与你最强的匹配要求一致。
  • 权重较高的规则——权重较高的规则在分区时被优先考虑。这种方式意味着你认为对对局质量最重要的规则,也最有可能引导工单如何分布。
  • 具有分布范围的差异规则——像技能评级这样的数值规则在玩家取值分布于一定范围时效果良好,允许服务将工单拆分为取值相似的组。

对分区效果较差的规则

  • 大多数工单共享相同取值的规则——如果几乎所有玩家为某规则提交相同的属性值,则服务无法使用该规则进行有意义的拆分。
  • 大量使用通配符的规则——当很大比例的工单对某规则使用通配符(匹配任意)值时,该规则对将工单划分为不同组的作用变弱。
  • 具有扩展的规则——随时间变为可选的规则在分区时被降级,因为它们代表在工单生命周期内可能不成立的较软约束。

设计注意事项

在为可能经历大量工单的游戏设计匹配队列时,请考虑以下事项:
  • 分布属性值——在玩家群体中取值多样化的规则能产生更好的分区拆分。如果大多数玩家共享同一规则的相同值,则它无助于跨分区平衡负载。
  • 将重要规则设置更高的权重——规则的权重会同时影响对局排序优先级和分区拆分优先级。为对对局质量最重要的规则赋予更高的权重,能确保这些规则也引导工单如何分布。
  • 避免不必要的通配符——当很大比例的工单对某规则使用通配符值时,该规则对分区的作用变弱。请考虑通配符行为是否是游戏设计所必需。
  • 分区变化期间的重试是正常的——当分区布局因拆分或合并而变化时,一些工单可能会被短暂取消并带有重试信号。匹配 SDK 会自动处理此情况,因此玩家仅体验到片刻的延迟。
最后修改于 2026年8月13日