启用/停用消息处理器/路由器可达性

建议您在维护期间(例如,在服务器重启或升级时)停用服务器上的可达性。停用可达性后,任何流量都不会定向到服务器。例如,在消息处理器上停用可达性时,路由器不会将任何流量定向到该消息处理器。

例如,要升级消息处理器,您可以使用以下过程:

  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