Edge for Private Cloud v. 4.17.05
配置在健康检查期间消息处理器不可用时的路由器响应
路由器每 5 秒对消息处理器进行一次健康检查,以确定消息处理器能否处理请求。如果消息处理器发生故障,路由器会自动将请求转发到另一个消息处理器。
您可以通过在路由器上设置 conf_load_balancing_load.balancing.driver.nginx.server.retry 属性,配置路由器在消息处理器发生故障时的响应方式。该属性采用一组用空格分隔的值,其中可以包括:
- off:停用重试时,路由器会在收到请求时返回失败代码。
- http_599:(默认)如果路由器收到来自消息处理器的 HTTP 599 响应,则路由器将请求转发给下一个消息处理器。
HTTP 599 是消息处理器关闭时生成的特殊响应代码。消息处理器会尝试完成所有现有请求,但对于任何新请求,它都会使用 HTTP 599 进行响应,以指示路由器在下一个消息处理器上重试请求。 - error:如果在与消息处理器建立连接、向其传递请求或从消息处理器读取响应标头时发生错误,路由器会将请求转发到下一个消息处理器。
- 超时:如果在与消息处理器建立连接、向其传递请求或从消息处理器读取响应标头时发生超时,路由器会将请求转发到下一个消息处理器。
- invalid_header:如果消息处理器返回空响应或无效响应,则路由器将请求转发到下一个消息处理器。
- http_XXX:如果消息处理器返回带有 HTTP 代码 XXX 的响应,路由器会将请求转发给下一个消息处理器。
如需配置路由器,请执行以下操作:
- 修改 /opt/apigee/customer/application/router.properties 文件(如果该文件不存在,请创建一个)。
- 按如下所示添加 conf_load_balancing_load.balancing.driver.nginx.server.retry 属性:
conf_load_balanced_load.balanced.driver.nginx.server.retry=http_599 error - 请确保属性文件归“apigee”用户所有:
> chown apigee:apigee /opt/apigee/customer/application/router.properties - 重启路由器:
> /opt/apigee/apigee-service/bin/apigee-serviceedge-router restart
配置 API 代理请求过程中访问消息处理器时的路由器超时
在通过 API 代理处理请求的过程中,边缘路由器在尝试访问消息处理器时预设的超时时间为 57 秒。超时后,路由器将尝试连接到另一个消息处理器(如果有)。否则,将返回错误。
您可以使用以下两个属性来控制此超时:
- conf_load_balancing_load.balancing.driver.proxy.read.timeout 用于指定单个消息处理器的等待时间(以秒为单位)。默认值为 57 秒。
- 当您的 Edge 安装有多个消息处理器时,conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout 会指定所有消息处理器的总等待时间(以秒为单位)。其当前值为 conf_load_balancing_load.balancing.driver.proxy.read.timeout 或 57 秒。
如需配置路由器,请执行以下操作:
- 修改 /opt/apigee/customer/application/router.properties 文件(如果该文件不存在,请创建一个)。
- 按如下方式设置属性:
conf_load_balancing_load.balancing.driver.proxy.read.timeout=120 - 请确保属性文件归“apigee”用户所有:
> chown apigee:apigee /opt/apigee/customer/application/router.properties - 重启路由器:
> /opt/apigee/apigee-service/bin/apigee-serviceedge-router restart