本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Spot 实例设计队列
创建游戏会话队列,将 Spot 队列添加到您的游戏托管解决方案中。有关竞价型实例以及它们如何显著节省托管成本的更多信息,请参阅按需型实例和竞价型实例。要利用竞价型实例的较低托管成本,您必须创建游戏会话队列,并 hoWhen 设置一个 Amazon GameLift 托管队列以使用竞价型实例、按需实例或两者的组合。要详细了解 Amazon 如何 GameLift 使用竞价型实例,请参阅。要使用竞价型实例集,您的游戏集成需要进行此页面上列出的调整。
你在用配 FlexMatch 对吗? 您可以将竞价型实例集添加到现有的游戏会话实例集中,以便进行对战放置。
-
确定游戏会话队列的目的地。
使用队列管理游戏会话放置是一个最佳实操,它在使用竞价型实例时是必需的。由于竞价型实例可能并不总是在您需要时可用,因此您需要设计一个包括竞价型队列和按需队列的弹性队列,以提供备份容量。在需要之前,您可以缩小按需车队的规模。要设计队列,请考虑以下几点:
-
地点 — 选择地理位置靠近玩家的地点。您的 Spot 车队和按需车队应该
-
实例类型-考虑您的游戏服务器硬件要求和您选择的位置的实例可用性。
要尝试使用可优化竞价型实例可用性和弹性的队列,请参阅教程:使用竞价型实例创建 Amazon GameLift 队列。有关 Spot 设计最佳实践,请参阅Amazon GameLift 游戏会话队列的最佳实践。
-
-
为针对竞价型实例进行了优化的队列创建实例集。
根据您的队列设计,创建实例集以将游戏服务器部署到所需的位置和实例类型。请参阅创建 Amazon GameLift 托管EC2车队以帮助您创建和配置新实例集。
-
创建游戏会话队列。
添加实例集目的地,配置游戏会话放置流程,并定义放置优先级。请参阅创建游戏会话队列以帮助您创建和配置新队列。
-
更新您的游戏客户端服务以使用队列。
当您的游戏客户端使用队列请求资源时,队列会避开中断可能性很高的资源,并选择与您定义的优先级相匹配的位置。要获得在游戏客户端中实施游戏会话放置的帮助,请参阅创建游戏会话。
-
更新游戏服务器以处理竞价型实例中断。
AWS 当竞价型实例需要恢复容量时,可以在 2 分钟内发出通知来中断竞价型实例。设置游戏服务器以处理中断,以最大限度地减少对玩家的影响。
在 AWS 回收竞价型实例之前,它会发送终止通知。Amazon GameLift 通过调用 Amazon Server SDK 回调函数
onProcessTerminate()
将通知传递给所有受影响的 GameLift服务器进程。实现此回调以结束游戏会话或将游戏会话和玩家移至新实例。请参阅回应服务器进程关闭通知以帮助您实施onProcessTerminate()
。注意
AWS 会尽一切努力在回收实例之前提供通知,但有可能在警告到来之前 AWS 收回竞价型实例。将游戏服务器准备就绪,以应做好应对意外中断的准备。
-
评估 竞价型实例集和队列的性能。
在亚马逊 GameLift 控制台中或通过亚马逊查看亚马逊 GameLift 指标 CloudWatch ,以查看绩效。有关 Amazon GameLift 指标的更多信息,请参阅使用 Amazon CloudWatch 监控 Amazon GameLift。关键指标包括:
-
中断率 – 使用
InstanceInterruptions
和GameSessionInterruptions
指标跟踪实例和游戏会话的竞价型实例相关中断的数量和频率。通过 AWS 回收的游戏会话的状态为TERMINATED
,状态原因为INTERRUPTED
。 -
队列有效性 – 跟踪放置成功率、平均等待时间和队列深度,以确认竞价型实例集不会影响队列性能。
-
实例集使用情况 – 监控有关实例、游戏会话和玩家会话的数据。按需型实例集的使用情况可以表明队列为了避免中断而避免放置到竞价型实例集中。
-
带有竞价型实例集的队列的最佳实操
如果您的队列包含竞价型实例集,请设置弹性队列。这利用了竞价型实例集节省成本的优势,同时最大限度地减少了游戏会话中断的影响。有关正确构建实例集和游戏会话队列以用于竞价型实例集的帮助,请参阅教程:使用竞价型实例创建 Amazon GameLift 队列。有关竞价型实例的更多信息,请参阅为 Spot 实例设计队列。
除了上一节中的一般最佳实操外,还可以考虑以下特定于竞价型实例的最佳实操:
-
在每个位置至少创建一个按需型实例集。按需型实例集为您的玩家提供备用游戏服务器。您可以缩减备份实例集的规模,直到需要它们为止,并使用自动扩缩在竞价型实例集不可用时增加按需容量。
-
在一个位置的多个竞价型实例集中选择不同的实例类型。如果一种竞价型实例类型暂时不可用,则中断仅影响该位置的一个竞价型实例集。最佳实操是选择广泛可用的实例类型,并使用同一系列中的实例类型(例如 m5.large、m5.xlarge、m5.2xlarge、m5.2xlarge)。使用 A mazon GameLift 控制台
查看实例类型的历史定价数据。