【问题标题】:Websocket API only returning http 429 on Azure API ManagementWebsocket API 仅在 Azure API 管理上返回 http 429
【发布时间】:2022-11-28 21:01:15
【问题描述】:

我们有一个 Web 应用程序通过 websocket 使用我们自己的 MQTT 主题,使用 MQTTnet 库发布。最重要的是,我们在 Azure API 管理中定义了一个 Websocket API。这在 2022-06-06 之前一直运行良好。突然间,所有 websocket 请求都被 APIM 拒绝并返回 http 429 'Too Many Requests'。 APIM 甚至不尝试联系该服务。

如果负载很重,我本可以理解这一点,但我们公司内部只有少数应用程序用户,因此我们远未达到文档描述的 200 个用户限制。该应用程序会在几秒钟内进行几次 (5-10) 次重新连接尝试。已重建 MQTT 服务和 APIM API 以删除任何挂起的会话,但无济于事。

有没有人遇到过类似的问题? APIM 团队是否可以更改突然开始触发 http 429 响应的任何内部逻辑?

【问题讨论】:

  • 检查是否有任何产品级别/所有操作级别策略阻止请求。您可以转到特定的 API 操作并选择“计算有效策略”,这将为您提供所有有效策略的详细信息。

标签: http websocket azure-api-management


【解决方案1】:

我大约在同一时间开始遇到完全相同的问题(以前从未见过)。从与 Azure 支持人员的交谈中,我的理解是文档是错误的。每个服务单元有 100 个活动的 websocket 连接。当 websockets 关闭时,活动计数似乎也没有像预期的那样减少。

azure 非常缺乏对什么是活动的 websocket 会话的可观察性,并得到了 azure 支持的认可。我通常需要在超出限制后等待 1-2 天,然后我的应用程序才能再次打开 websockets。

编辑 MS 在这里确认了一个错误,并在他们 10 月发布的 APIM 中发布了一个修复程序 - https://github.com/Azure/API-Management/releases/tag/release-service-2022-10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    • 2015-09-07
    • 1970-01-01
    • 2014-05-03
    • 1970-01-01
    相关资源
    最近更新 更多