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

您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

在 Edge 中,HTTP 要求和回應酬載會先儲存在記憶體中繼接器中,再由 API Proxy 中的政策處理,這是 Edge 的預設行為。

如果啟用串流功能,則系統會在未修改用戶端應用程式 (針對回應) 和目標端點 (針對要求) 的情況下,串流傳送要求和回應酬載。如果應用程式會接受或傳回大量酬載,或是應用程式會在一段時間內分批傳回資料,串流功能就特別實用。

反模式

在啟用串流功能的情況下存取要求/回應酬載,會導致 Edge 返回預設的緩衝模式。

圖 1:啟用串流功能後,存取要求/回應酬載

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

影響

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

最佳做法

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

延伸閱讀