为接收大量消息做好准备

本文档介绍了如何最有效地处理发送到 webhook 的大量消息。Business Messages 平台可以针对多种不同场景投入生产。如果您预计有特定活动,我们的支持团队也可以帮助您做好准备。您只需执行几个简单的步骤即可使网络钩子更强大。

用户到网络钩子的流量

对于用户到 webhook 流量,请考虑贵企业预期的流量模式。您预计消息突发模式或消息量会突然变化吗?例如,只为晚餐提供服务的餐厅可能希望在晚上收到很多消息,而在一天的其余时间里几乎没有消息。再看一个例子,宣传特惠活动的商店在宣布促销活动时,可能会出现异常大的消息量。

通常,Google 基础架构已准备好应对突发的流量。Business Messages 使用与 Gmail 和 Google Cloud 等大型产品相同的服务器资源。发送到 webhook 的消息量不高也不太可能会造成 Business Messages 失败。此外,Business Messages 会单独将每个代理的消息加入队列。如果代理的某个消息队列变得拥挤,不会影响其他代理,即使这些代理共用同一个 webhook。

但是,这仅适用于 Business Messages 基础架构中的消息队列。消息传送到 webhook 后,就会变为不同的事件。您应该通过实现队列、并行处理请求等来确保 webhook 根据需要进行扩缩。如果 webhook 使用 HTTP 500 响应消息,或者根本没有响应,Business Messages 将以指数方式将消息传送速率降低到 webhook。消息在队列中保留 7 天。如果 webhook 在此期间没有响应 HTTP 200,Business Messages 将会丢弃该消息。

网络钩子用户流量

从 webhook 发送的消息应遵循每个对话每分钟 60 条消息的配额。合法消息流不太可能达到此配额,但您应该准备好处理 Business Messages 发出的 HTTP 429 错误,指出您已超出配额。

一般来说,如果您的 webhook 从 Business Messages 收到 HTTP 429 或 HTTP 500,则表示存在与消息传递速率相关的暂时性错误。您应该使用指数退避策略来重试这些消息。但是,如果您的 webhook 收到 HTTP 503 或 HTTP 4xx(HTTP 429 除外),则应立即停止重试并通知我们的支持团队。这些错误代码可能表示 Business Messages 基础架构(如 DOS 事件)出现问题,发送更多消息只会加剧该问题。

虽然没有与超出消息配额相关的具体暂停条件,但 Business Messages 可能会暂停行为异常或发送过多消息的代理。请查看暂停条件,以确保您的代理符合所需的标准。

如何获取帮助

您最好在发现问题后尽快与我们联系。如果您告知我们您预计自己会收到一个非常高流量的情况(例如某个宣传非常频繁的促销活动),我们就可以启动更多投放资源,为您可能做好充分准备。不过,在大多数情况下,您无需采取此类措施。

如果您还遇到了消息加载问题,也可以与我们联系,我们将尽全力帮助您解决这一问题。