設定路由器以重試與訊息處理器的連線

Edge for Private Cloud 4.16.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 的回應,路由器會將要求轉送至下一個訊息處理器。

如要設定路由器,請按照下列步驟操作:

  1. 編輯 /<inst_root>/apigee/customer/application/router.properties 檔案 (如果檔案不存在,請建立)。
  2. 新增 conf_load_balancing_load.balancing.driver.nginx.server.retry 屬性,如下所示:
    conf_load_balancing_load.balancing.driver.nginx.server.retry =http_599 error
  3. 重新啟動路由器:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart