重启路由器和消息处理器,而不会影响流量

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

本文档介绍了如何在不影响设备访问权限的情况下重启路由器和消息处理器 (MP), 传入的 API 流量。在某些情况下,您可能需要重启路由器和 MP。 部分示例如下:

  • 当在虚拟主机、目标服务器或目标中直接引用某个密钥库时, 端点在不使用引用的情况下进行更新。
  • 当 API 代理部分部署在几个 MP 上时。

准备工作

如果您不熟悉路由器和消息处理器,请参阅 适用于私有云的 Edge 概览

滚动重启路由器,且不会影响流量

本部分介绍了在不影响传入 API 流量的情况下重启路由器的步骤。

<ph type="x-smartling-placeholder">
  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 Router 服务:
    apigee-service edge-router stop
        
  6. 按如下方式启动 Apigee Router 服务:
    apigee-service edge-router start
        
  7. 等待 Apigee Router 服务启动并准备好处理传入流量 创建 Deployment
    apigee-service edge-router wait_for_ready
        
  8. 按如下方式启动 Apigee Monit 服务:
    apigee-service apigee-monit start
        
  9. 刷新 IP 表以取消屏蔽健康检查端口 15999,并允许路由器处理 您可以再次运行以下命令来重新检查流量:
    sudo iptables -F
    sudo iptables -L
        
。 <ph type="x-smartling-placeholder">
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 Message Processor 服务:
    apigee-service edge-message-processor stop
        
  7. 请将 Apigee 消息处理器服务添加如下:
    apigee-service edge-message-processor start
        
  8. 等待 Apigee 消息处理器服务启动并准备好处理 使用以下命令:
    apigee-service edge-message-processor wait_for_ready
        
  9. 按如下方式启动 Apigee Monit 服务:
    apigee-service apigee-monit start
        
  10. 刷新 IP 表以取消屏蔽健康检查端口并允许消息处理器 来重新处理流量:
    sudo iptables -F
    sudo iptables -L
        
。 <ph type="x-smartling-placeholder">
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 步中执行的命令返回的端口号。