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

通过Azure应用网关访问SSE服务时事件推送延迟问题咨询

问题诊断与解决方案

延迟原因确认

这个15秒延迟几乎可以确定是Azure应用网关的默认配置导致的。SSE是基于长连接的流式传输协议,而应用网关的默认优化设置会干扰SSE的实时推送:

  • 空闲超时(Idle Timeout):Standard层网关默认空闲超时为15秒,当SSE连接在15秒内没有数据推送时,网关会延迟转发后续数据直到超时窗口结束,这就是你看到的最长15秒延迟来源。
  • 响应缓冲(Response Buffering):网关默认会缓冲完整响应后再转发给客户端,但SSE是逐段推送数据,缓冲会导致数据被暂存,直到缓冲满或超时才发送,进一步加剧延迟。

针对SSE的网关配置调整

需要在Azure应用网关中修改以下两项关键配置:

1. 调整后端HTTP设置的空闲超时

  • 登录Azure门户,进入你的应用网关资源
  • 找到后端HTTP设置,编辑当前使用的HTTP配置
  • 将空闲超时值调整为大于你的SSE最大推送间隔(建议设为300秒,避免频繁触发超时)
  • 确保**保持活动(Keep Alive)**处于启用状态,SSE依赖长连接,这是必须的

2. 禁用响应缓冲

在同一个后端HTTP设置页面中,找到响应缓冲选项,设置为禁用。这样网关会实时转发每一段SSE数据,不会等待缓冲填满。

额外验证项

  • 打开浏览器开发者工具的Network标签,检查EventSource请求的响应头是否包含Connection: keep-alive和Cache-Control: no-cache,sse_starlette默认会自动添加这些头,但可以确认一下
  • 虚拟机的防火墙/安全组无需额外调整,因为直接IP访问正常,说明长连接本身没有被限制

补充说明

Azure应用网关Standard层完全支持SSE,但默认的Web请求优化策略不适合流式传输场景。调整上述配置后,应该能消除延迟,实现和直接访问虚拟机IP一致的实时推送效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:02:10