您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
本文說明如何在不影響傳入 API 流量的情況下重新啟動路由器和訊息處理器 (MP)。在某些情況下,您可能需要重新啟動路由器和 MP。 相關範例如下:
- 直接在虛擬主機中參照的 KeyStore 時,會在不使用參照的情況下更新目標伺服器或目標端點。
- 當部分 MP 有部分部署 API Proxy 時。
事前準備
如果不熟悉路由器和訊息處理器,請參閱適用於私有雲的邊緣總覽。
在不影響流量的情況下快速重新啟動路由器
本節說明在不影響傳入 API 流量的情況下重新啟動路由器的步驟。
- 登入需要重新啟動的路由器。
-
使用下列指令封鎖路由器上的健康狀態檢查通訊埠。這麼做可確保該路由器的健康狀態不良,且沒有任何流量轉送至這個路由器。
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
-
請等待兩分鐘,確認所有傳輸中的流量都能順暢處理,然後再重新啟動路由器。方法是執行
sleep
指令,如下所示:for i in {001..120}; do sleep 1; printf "\r ${i}"; done
-
請按照下列方式停止 Apigee Monit 服務:
apigee-service apigee-monit stop
-
請按照下列方式停止 Apigee 路由器服務:
apigee-service edge-router stop
-
按照下列方式啟動 Apigee 路由器服務:
apigee-service edge-router start
-
等待 Apigee 路由器服務啟動,並準備好處理傳入流量,方法是使用下列指令:
apigee-service edge-router wait_for_ready
-
按照下列方式啟動 Apigee Monit 服務:
apigee-service apigee-monit start
-
清除 IP 資料表,解除封鎖健康狀態檢查通訊埠 15999,並允許路由器再次處理流量,方法是執行下列指令:
sudo iptables -F sudo iptables -L
sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT for i in {001..120}; do sleep 1; printf "\r ${i}"; done apigee-service apigee-monit stop apigee-service edge-router stop apigee-service edge-router start apigee-service edge-router wait_for_ready apigee-service apigee-monit start sudo iptables -F sudo iptables -L
在不影響流量的情況下滾動訊息處理器
本節說明在不影響傳入 API 流量的情況下,重新啟動訊息處理器 (MP) 的步驟。
- 登入需要重新啟動的訊息處理器。
-
使用下列指令找出訊息處理器的健康狀態檢查通訊埠:
curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'
-
封鎖訊息處理器上的健康狀態檢查通訊埠 (識別於步驟 2)。這麼做可確保訊息處理工具的健康狀態不良,也不會將流量轉送至這個訊息處理器。
sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
其中 port # 是您在步驟 2 執行指令傳回的通訊埠號碼。
-
請等待兩分鐘,確認系統能順暢處理所有傳輸中的流量,然後再重新啟動訊息處理器。方法是執行
sleep
指令,如下所示:for i in {001..120}; do sleep 1; printf "\r ${i}"; done
-
請按照下列方式停止 Apigee Monit 服務:
apigee-service apigee-monit stop
-
請按照下列步驟停止 Apigee 訊息處理者服務:
apigee-service edge-message-processor stop
- 發布 Apigee 訊息處理器服務,如下所示:
apigee-service edge-message-processor start
-
等待 Apigee 訊息處理方服務啟動,並準備好處理傳入的流量,請使用下列指令:
apigee-service edge-message-processor wait_for_ready
-
按照下列方式啟動 Apigee Monit 服務:
apigee-service apigee-monit start
- 清除 IP 表格來解除封鎖健康狀態檢查通訊埠,並執行下列指令,允許訊息處理器再次處理流量:
sudo iptables -F sudo iptables -L
curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")' sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT for i in {001..120}; do sleep 1; printf "\r ${i}"; done apigee-service apigee-monit stop apigee-service edge-message-processor stop apigee-service edge-message-processor start apigee-service edge-message-processor wait_for_ready apigee-service apigee-monit start sudo iptables -F sudo iptables -L
其中 port # 是您在步驟 2 執行指令傳回的通訊埠號碼。