Edge for Private Cloud 4.17.05 版
設定健康狀態檢查期間無法使用訊息處理器時的路由器回應
路由器每五秒會對訊息處理器執行健康狀態檢查,判斷訊息處理器是否能處理要求。如果訊息處理器故障,路由器會自動將要求轉送至其他訊息處理器。
您可以在路由器上設定 conf_load_balancing_load.balancing.driver.nginx.server.retry 屬性,藉此設定路由器在訊息處理器停止運作時的反應。這個屬性會採用一組以空格分隔的值,其中可包含:
- off:停用重試功能,路由器會在收到要求時傳回失敗代碼。
- http_599:(預設) 如果路由器收到來自訊息處理器的 HTTP 599 回應,路由器會將要求轉送至下一個訊息處理器。
HTTP 599 是訊息處理器在關閉時產生的特殊回應代碼。訊息處理器會嘗試完成所有現有要求,但對於任何新要求,則會回應 HTTP 599,向路由器發出信號,要求在下一個訊息處理器上重試要求。 - error:如果與訊息處理器建立連線、將要求傳遞至訊息處理器,或從訊息處理器讀取回應標頭時發生錯誤,路由器會將要求轉送至下一個訊息處理器。
- timeout:如果與訊息處理器建立連線、將要求傳遞至訊息處理器,或從訊息處理器讀取回應標頭時發生逾時,路由器會將要求轉送至下一個訊息處理器。
- invalid_header:如果訊息處理器傳回空白或無效的回覆,路由器會將要求轉送至下一個訊息處理器。
- http_XXX:如果訊息處理器傳回 HTTP 代碼為 XXX 的回應,路由器會將要求轉送至下一個訊息處理器。
如要設定路由器,請按照下列步驟操作:
- 編輯 /opt/apigee/customer/application/router.properties 檔案 (如果檔案不存在,請建立檔案)。
- 新增 conf_load_balancing_load.balancing.driver.nginx.server.retry 屬性,如下所示:
conf_load_balancing_load.balancing.driver.nginx.server.retry=http_599 error - 確認屬性檔案的擁有者是「apigee」使用者:
> chown apigee:apigee /opt/apigee/customer/application/router.properties - 重新啟動路由器:
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart
在 API Proxy 要求中存取訊息處理器時,設定路由器逾時
Edge 路由器在嘗試存取訊息處理器,以透過 API Proxy 處理要求時,預設逾時時間為 57 秒。逾時後,路由器會嘗試連線至其他訊息處理器 (如有)。否則會傳回錯誤。
您可以使用兩項屬性控制這項逾時設定:
- conf_load_balancing_load.balancing.driver.proxy.read.timeout 會指定單一訊息處理器的等待時間 (以秒為單位)。預設值為 57 秒。
- conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout 指定 Edge 安裝作業有多個訊息處理器時,所有訊息處理器的總等待時間 (以秒為單位)。預設值為 conf_load_balancing_load.balancing.driver.proxy.read.timeout 的目前值,或 57 秒。
如要設定路由器,請按照下列步驟操作:
- 編輯 /opt/apigee/customer/application/router.properties 檔案 (如果檔案不存在,請建立檔案)。
- 按照下方所示設定屬性:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout=240 - 確認屬性檔案的擁有者是「apigee」使用者:
> chown apigee:apigee /opt/apigee/customer/application/router.properties - 重新啟動路由器:
> /opt/apigee/apigee-service/bin/apigee-service edge-router restart