在不影響流量的情況下重新啟動路由器和訊息處理器

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

本文說明如何在不影響任何影響的情況下重新啟動路由器和訊息處理器 (MP) 傳入的 API 流量在某些情況下,你可能需要重新啟動路由器和 MP。 以下列舉幾個範例:

  • 在虛擬主機中直接參照的 KeyStore 時,目標伺服器或目標 更新端點時,並未使用參照。
  • 當 API Proxy 僅部署於幾個 MP 時。

事前準備

如果您不熟悉路由器和訊息處理器,請參閱 Private Cloud 的 Edge 總覽

在不影響流量的情況下逐步重新啟動路由器

本節將說明在不影響連入 API 流量的情況下,重新啟動路由器的步驟。

  1. 登入需要重新啟動的路由器。
  2. 使用下列指令封鎖路由器上的健康狀態檢查通訊埠。這可以確保 系統會將路由器視為健康狀態不良,因此沒有任何流量會轉送到這個路由器。
    sudo iptables -A INPUT -i eth0 -p tcp --dport 15999 -j REJECT
        
    敬上
  3. 請先稍候兩分鐘,確定所有傳輸中的流量皆能妥善處理,再通知您 重新啟動路由器。方法是執行 sleep 指令,如下所示:
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
    敬上
  4. 停止 Apigee Monit 服務,方法如下:
    apigee-service apigee-monit stop
        
  5. 停止 Apigee 路由器服務,方法如下:
    apigee-service edge-router stop
        
  6. 按照下列方式啟動 Apigee 路由器服務:
    apigee-service edge-router start
        
  7. 等待 Apigee 路由器服務啟動,並且準備好處理傳入流量 使用以下指令:
    apigee-service edge-router wait_for_ready
        
  8. 按照下列方式啟動 Apigee Monit 服務:
    apigee-service apigee-monit start
        
  9. 清除 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

訊息處理器逐步重新啟動,不影響流量

本節將說明在沒有硬體的情況下,重新啟動訊息處理器 (MP) 的步驟 並影響傳入 API 流量

  1. 登入需要重新啟動的訊息處理器。
  2. 使用下列指令,找出訊息處理器的健康狀態檢查通訊埠:
    curl 0:8082/v1/servers/self -s | jq '.tags.property' | jq '.[] | select(.name=="http.port")'
        
  3. 封鎖訊息處理器上的健康狀態檢查通訊埠 (如步驟 2 取得)。這可以確保 訊息處理器視為健康狀態不良,且沒有任何流量會轉送到 訊息處理器。
    sudo iptables -A INPUT -i eth0 -p tcp --dport port # -j REJECT
        

    其中 port # 是您在步驟 2 中執行的指令傳回的通訊埠號碼。

  4. 請先稍候兩分鐘,確定所有傳輸中的流量皆能妥善處理,再通知您 重新啟動「訊息處理器」。方法是執行 sleep 指令,如下所示:
    for i in {001..120}; do sleep 1; printf "\r ${i}"; done
        
    敬上
  5. 停止 Apigee Monit 服務,方法如下:
    apigee-service apigee-monit stop
        
  6. 停止 Apigee 訊息處理者服務,方法如下:
    apigee-service edge-message-processor stop
        
  7. 請按照以下方式準備 Apigee 訊息處理者服務:
    apigee-service edge-message-processor start
        
  8. 等待 Apigee Message Processor 服務啟動,並準備好處理 使用下列指令的傳入流量:
    apigee-service edge-message-processor wait_for_ready
        
  9. 按照下列方式啟動 Apigee Monit 服務:
    apigee-service apigee-monit start
        
  10. 清除 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 中執行的指令傳回的通訊埠號碼。