将路由器配置为重试与消息处理器的连接

Edge for Private Cloud v. 4.16.09

路由器每五秒对消息处理器进行一次健康检查,以确定消息处理器是否能够处理请求。如果某个消息处理器发生故障,路由器会自动将请求转发到另一个消息处理器。

您可以通过在路由器上设置 conf_load_balancing_load.balancing.driver.nginx.server.retry 属性来配置路由器在消息处理器发生故障时的反应。该属性采用一组以空格分隔的值,其中可以包括:

  • off:停用重试,路由器会在收到请求后返回失败代码。
  • http_599:(默认)如果路由器从消息处理器收到 HTTP 599 响应,则路由器会将请求转发到下一个消息处理器。

    HTTP 599 是一个特殊响应代码,由消息处理器在关停时生成。消息处理器会尝试完成所有现有请求,但对于任何新请求,它会以 HTTP 599 响应,以向路由器发出信号,让其在下一个消息处理器上重试请求。
  • error:如果在与消息处理器建立连接、向其传递请求或从中读取响应标头时发生错误,路由器会将请求转发到下一个消息处理器。
  • timeout:如果在与消息处理器建立连接、向其传递请求或从中读取响应标头时发生超时,路由器会将请求转发到下一个消息处理器。
  • invalid_header:如果消息处理器返回空响应或无效回答,路由器会将请求转发到下一个消息处理器。
  • http_XXX:如果消息处理器返回了 HTTP 代码为 XXX 的响应,则路由器会将请求转发到下一个消息处理器。

如需配置路由器,请执行以下操作:

  1. 修改 /<inst_root>/apigee/customer/application/router.properties 文件(如果该文件不存在,请创建它)。
  2. 添加 conf_load_balancing_load.balancing.driver.nginx.server.retry 属性,如下所示:
    conf_load_balancing_load.balancing.driver.nginx.server.retry=http_599 error
  3. 重启路由器:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router restart