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

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

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

如果已啟用串流功能,則會串流要求和回應酬載,而不會修改用戶端應用程式 (用於回應) 和目標端點 (針對要求)。尤其在應用程式接受或傳回大型酬載,或是具有長期回傳資料區塊的應用程式時,串流功能就特別有用。

反模式

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

圖 1:在啟用串流的情況下存取要求/回應酬載

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

影響程度

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

最佳做法

  • 在啟用串流的情況下,請不要存取要求/回應酬載。

其他資訊