反模式:在啟用串流時存取要求/回應酬載

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

在 Edge 中,HTTP 要求和回應酬載的預設行為是儲存在記憶體內緩衝區,然後由 API Proxy 中的政策處理。

如果啟用串流功能,系統會將要求和回應酬載串流至用戶端應用程式 (適用於回應) 和目標端點 (適用於要求),且不會進行修改。如果應用程式接受或傳回大型酬載,或是應用程式會隨時間以區塊形式傳回資料,串流就特別實用。

反模式

啟用串流功能後,存取要求/回應酬載會導致 Edge 回到預設緩衝模式。

圖 1:存取要求/回應酬載 (已啟用串流)

上圖顯示我們嘗試從要求酬載中擷取變數,並使用 JSONToXML 政策將 JSON 回應酬載轉換為 XML。這項操作會停用 Edge 中的串流功能。

影響

  • 串流功能會停用,導致處理資料的延遲時間增加
  • 由於使用記憶體內緩衝區,因此在訊息處理器上可能會觀察到堆積記憶體用量增加或 OutOfMemory 錯誤,特別是當我們有大量要求/回應酬載時

最佳做法

  • 啟用串流功能時,請勿存取要求/回應酬載。

延伸閱讀