You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Relay混合连接HTTP与WebSocket超时问题咨询

Azure Relay Hybrid Connection HTTP/WebSocket 超时差异问题解答

1. 两类协议超时表现差异的原因

这个差异和HTTP协议本身能不能永久保持连接没有直接关系,是Azure Relay网关层针对两种协议的转发逻辑设计不同导致的:

  • 采用WebSocket协议时,客户端和后端监听器会先通过Relay网关完成全双工连接握手,握手成功后网关仅做二进制帧的透明转发,不会对单条消息的响应等待时间设置强制阈值,只要底层TCP连接保持存活,就不会因为响应慢触发超时错误。
  • 采用HTTP协议时,Relay网关遵循标准HTTP的请求-响应转发模型,每一个转发到后端监听器的请求都会被设置固定的响应等待窗口,超时就会直接返回504,和是否开启HTTP Keep-Alive长连接没有关联。

2. 调整HTTP模式默认60秒超时的方式

这个60秒阈值是Relay网关的默认服务端配置,无法通过客户端请求参数、监听器本地配置直接修改:

  • 若使用标准层Relay实例,可以通过Azure支持工单申请调整对应命名空间下的HTTP监听器响应超时阈值,目前可配置的最大上限为300秒(5分钟),不支持设置为无超时。
  • 如果业务场景的单请求处理时长必然超过5分钟,直接切换为WebSocket协议是唯一可行的规避方案。

3. 超时请求的重试规则

触发504 Gateway Timeout的请求没有内置的自动重试机制,也不建议盲目做重试:

  • 网关返回504时,仅代表网关在规定窗口内没有收到监听器的响应,无法确认监听器侧的实际状态:请求可能还在待转发队列,也可能监听器已经处理完成只是响应回传时超出了时间窗口。
  • 若业务侧需要做重试,必须先在业务层实现幂等校验(比如为每个请求分配全局唯一的业务标识,监听器处理前先校验该标识对应的请求是否已被处理),搭配指数退避策略做手动重试,避免重复执行业务逻辑造成数据错误。

内容的提问来源于stack exchange,提问作者191180rk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:21:46