查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
API Proxy 是用戶端應用程式介面,用於連線至後端服務。 Apigee Edge 提供多種透過 API Proxy 連線至後端服務的方法:
- TargetEndpoint,可連線至任何 HTTP/HTTP、NodeJS 或代管目標服務。
- 服務摘要政策:在目標伺服器前後叫用任何外部服務 在 TargetEndpoint 中變更。
- 自訂程式碼已新增至 JavaScript 政策或 Java 摘要政策,以便連結後端服務。
持續連線
HTTP 永久連線, HTTP 保持運作或 HTTP 連線重複使用的概念 使用 TCP 連線傳送及傳送 接收多個 HTTP 要求/回應, 而不是針對每個要求/回應組合開啟新的連線。
Apigee Edge 使用永久連線與後端服務進行通訊。連線保持不變 會預設為 60 秒也就是說,如果連線集區內的連線閒置中 超過 60 秒,此時連線就會關閉。
您可以透過名為 keepalive.timeout.millis
的屬性設定保持運作逾時期限。
API Proxy 的 TargetEndpoint 設定中指定的。例如,保持運作
您可以針對 TargetEndpoint 中的特定後端服務,將時間範圍設為 30 秒。
在以下範例中,keepalive.timeout.millis
已在 TargetEndpoint 中設為 30 秒
設定:
<!-- /antipatterns/examples/disable-persistent-connections-1.xml --> <TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection>Disable HTTP persistent (Reusable keep-alive) connections </TargetEndpoint>
在上例中,keepalive.timeout.millis
控制了
與特定後端服務相互通訊還有一個屬性控制保持運作
適用於所有 Proxy 的所有後端服務HTTPTransport.keepalive.timeout.millis
可在「訊息處理者」元件中設定。這個屬性的預設值是 60
秒內請求驗證碼。修改這個屬性會影響到
Apigee Edge 和所有 API Proxy 中的所有後端服務。
反模式
透過設定屬性 keepalive.timeout.millis
停用永久 (保持運作) 連線
特定 API Proxy 的 TargetEndpoint 設定中的 0 或
不建議在訊息處理器中使用 HTTPTransport.keepalive.timeout.millis
到 0,因為
這會影響效能
在以下範例中,TargetEndpoint 設定會停用永久 (保持運作) 連線
將 keepalive.timeout.millis
設為 0,藉此查看特定後端服務的監控狀態:
<!-- /antipatterns/examples/disable-persistent-connections-2.xml --> <TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="keepalive.timeout.millis">0</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
如果一或多項後端服務的持續連線已停用,Edge 必須開啟 每次向目標後端服務發出新要求時都會有新的連線。如果後端是 HTTPS Edge 也會針對每個新要求執行 SSL 握手,增加 API 要求的延遲時間
影響
- 縮短 API 要求的整體回應時間,因為 Apigee Edge 必須開啟新連線,並 針對每個新要求執行 SSL 握手。
- 在高流量情況下,連線可能會用盡,因為系統需要一些時間才能釋出連線 返回系統。
最佳做法
- 後端服務應根據 HTTP 1.1 遵循並處理 HTTP 持續連線。 標準。
- 如果後端服務具有
Connection:keep-alive
標頭,應透過標頭回應 處理持續 (保持運作) 連線。 - 如果後端服務無法回應,應透過
Connection:close
標頭回應 持續處理連線
透過這個模式,即可確保 Apigee Edge 可自動處理永久或非永久性 與後端服務保持連線,完全不需要變更 API Proxy。