啟用/停用訊息處理工具/路由器的可連性

建議您在維護期間停用伺服器的可連性功能,例如重新啟動或升級伺服器時。停用可連性後,系統就不會將任何流量導向伺服器。舉例來說,如果訊息處理器已停用可連性,路由器就不會將任何流量導向該訊息處理器。

舉例來說,如要升級訊息處理器,請執行以下程序:

  1. 停用訊息處理器的可連性。
  2. 升級訊息處理器。
  3. 啟用訊息處理器的可連性。

停用/啟用訊息處理器的可連性

如要停用訊息處理器的可連性,您可以停止訊息處理器:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor stop

「訊息處理者」會在關閉訊息前,先處理所有待處理的訊息。所有新要求都會轉送至其他可用的訊息處理器。

如要重新啟動訊息處理器,請使用下列指令:

/opt/apigee/apigee-service/bin/apigee-service edge-message-processor start
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor wait_for_ready

wait_for_ready 指令會在訊息處理器準備好處理訊息時傳回下列訊息:

Checking if message-processor is up: message-processor is up.

停用/啟用路由器的可連性

在實際工作環境中,負載平衡器通常在邊緣路由器的前面。 負載平衡器會監控路由器上的通訊埠 15999,確保路徑可供使用。

使用以下網址設定負載平衡器,在路由器上執行 HTTP 或 TCP 健康狀態檢查:

http://router_IP:15999/v1/servers/self/reachable

如果可以連上路由器,這個網址會傳回 HTTP 200 回應代碼。

如要無法連上路由器,您可以封鎖路由器上的通訊埠 15999。如果負載平衡器無法存取通訊埠 15999 上的路由器,就不會再將要求轉送至路由器。舉例來說,您可以在路由器節點上使用下列 iptables 指令來封鎖通訊埠:

sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT

稍後如要讓路由器可以使用,請清除 iptables:

sudo iptables -F

您可能會使用 iptables 管理節點上的其他通訊埠,因此在清除 iptables 或使用 iptables 封鎖通訊埠 15999 時,您必須將這點納入考量。如果您要針對其他規則使用 iptables,可以使用 -D 選項復原特定變更:

sudo iptables -D INPUT -i eth0 -p tcp --dport 15999 -j REJECT

執行路由器健康狀態檢查

您可以對路由器執行以下類型的健康狀態檢查:

  • 有效性:向監控子系統發出可重新啟動元件的信號。例如:
    To check a router's liveness:
    http://router_IP:8081/v1/servers/self/up
    
    To check a load balancer's liveness:
    http://router_IP:15999/v1/servers/self/reachable
  • 就緒:決定路由器是否可處理特定環境的客戶要求。

    例如:

    To check both a router and MP pool's availability:
    http://router_IP:15999/{org}__{env}

    如要取得路由器的狀態,請向路由器上的通訊埠 8081 提出要求:

    curl -v http://router_IP:8081/v1/servers/self/up

    如果路由器啟動,該要求會在回應中傳回「true」,並傳回 HTTP 200。請注意,這項呼叫只會檢查路由器是否已啟用且正在執行。路由器的可連性控制由通訊埠 15999 決定。

    如何取得訊息處理器的狀態:

    curl http://Message_Processor_IP:8082/v1/servers/self/up