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

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

本文档介绍如何在不影响传入 API 流量的情况下重启路由器和消息处理器 (MP)。在某些情况下,您可能必须重启路由器和 MP。下面举例说明了一些国家/地区的管制商品或服务:

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

准备工作

如果您不熟悉路由器和消息处理器,请参阅 Edge for Private Cloud 概览

在不影响流量的情况下滚动重启路由器

本部分介绍在不影响传入 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 Router 服务:
    apigee-service edge-router stop
        
  6. 按如下方式启动 Apigee Router 服务:
    apigee-service edge-router start
        
  7. 等待 Apigee Router 服务启动并使用以下命令处理传入流量:
    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

在不影响流量的情况下滚动重启消息处理器

本部分介绍在不影响传入 API 流量的情况下重启消息处理器 (MP) 的步骤。

  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 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 步执行的命令返回的端口号。