Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本文提供有关在 API Management 中配置可实现服务器发送的事件 (SSE) 的 API 的指南。 SSE 基于 HTML5 EventSource
标准,在建立客户端连接后,通过 HTTP 自动将流式处理(推送)数据传送到客户端。
小窍门
API 管理还提供对 WebSocket API 的原生支持,这些 API 使客户端和服务器之间保持单一、持久的双向连接。
先决条件
- 现有的 API 管理实例。 创建一个(如果尚未创建)。
- 用于实现 SSE 的 API。 使用受支持的导入方法之一将 API 导入并发布到 API 管理实例。
SSE 指南
当使用 API Management 来访问实现 SSE 的后端 API 时,请遵循以下准则。
为长时间运行的 HTTP 连接选择服务层 - SSE 依赖于某些 API 管理 定价层支持的长时间运行的 HTTP 连接。 经典和 v2 API 管理层支持长时间运行的连接,但消耗层不支持。
使空闲连接保持活动状态 - 如果客户端和后端之间的连接可能空闲 4 分钟或更长时间,请实现使连接保持活动状态的机制。 例如,在连接后端启用传输控制协议(TCP)保持活动信号,或至少每隔4分钟发送一次来自客户端的网络流量。
需要此配置来替代 Azure 负载均衡器强制执行的空闲会话超时 4 分钟,这在 API 管理基础结构中使用。
将事件立即中继到客户端 - 关闭策略上的
forward-request
响应缓冲,以便事件立即中继到客户端。 例如:<forward-request timeout="120" fail-on-error-status-code="true" buffer-response="false"/>
避免使用其他可缓冲响应的策略 - 某些策略(如 )也可以缓冲响应内容,不应与实现 SSE 的 API 一起使用。
避免记录 Azure Monitor、Application Insights 和事件中心的请求/响应正文 - 可以使用诊断设置为 Azure Monitor 或 Application Insights 配置 API 请求日志记录。 借助该诊断设置,可以在请求执行的各个阶段记录请求/响应正文。 对于实现 SSE 的 API,记录请求/响应正文可能会导致意外缓冲,这可能会导致问题。 在全局/所有 API 范围内配置的 Azure Monitor 和 Application Insights 的诊断设置适用于服务中的所有 API。 可以根据需要替代单个 API 的设置。 登录到事件中心时,可以使用log-to-eventhubs来配置请求/响应日志记录的范围和上下文信息量。 对于实现 SSE 的 API,请确保为 Azure Monitor、Application Insights 和事件中心禁用请求/响应正文日志记录。
禁用响应缓存 - 若要确保及时向客户端发送通知,请验证是否未启用 响应缓存 。 有关详细信息,请参阅 API 管理缓存策略。
在负载下测试 API - 在投入生产之前,遵循常规做法在负载下测试 API,以检测性能或配置问题。