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

私有雲版本 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