反模式:在启用流式传输时访问请求/响应载荷

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

在 Edge 中,默认行为是 HTTP 请求和响应载荷会先存储在内存缓冲区中,然后才由 API 代理中的政策处理。

如果启用流式传输,则系统将对请求和响应载荷进行流式传输,而无需修改客户端应用(响应)和目标端点(请求)。尤其是当应用接受或返回大型载荷,或者有一个应用随时间分块返回数据时,流式传输会非常有用。

反模式

在启用流式传输的情况下访问请求/响应载荷会导致 Edge 返回到默认缓冲模式。

图 1:在启用流式传输的情况下访问请求/响应载荷

上图显示,我们正在尝试从请求载荷中提取变量,并使用 JSONToXML 政策将 JSON 响应载荷转换为 XML。这将停用 Edge 中的流式传输。

影响

  • 系统将停用流式插入,这可能会导致数据处理的延迟时间增加
  • 由于使用内存中缓冲区,特别是当我们有大型请求/响应载荷时,可以在消息处理器上观察到堆内存用量增加或 OutOfMemory 错误

最佳做法

  • 不要在启用流式传输时访问请求/响应载荷。

更多详情