配置 I/O 超时的最佳做法

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

客户端应用发出的 API 请求会先流经 Apigee Edge 中的各种组件,然后再到达后端服务。大多数客户端应用都希望及时收到对这些请求的响应。

为了实现及时响应,系统会在 API 请求流经的每个组件中设置 I/O 超时值。如果流程中的任何组件所用时间都比上一个组件多,则上一个组件会超时,并返回 504 网关超时错误

配置超时时,应在每个组件中非常谨慎地配置值,否则可能会导致 504 网关超时错误

本文档介绍了在 Apigee Edge 中 API 请求流经的各种组件上配置 I/O 超时的最佳实践。

配置 I/O 超时的最佳实践

配置 I/O 超时时,请考虑以下最佳实践:

  • 第一个组件:始终对 API 请求流中的第一个组件(即 Apigee Edge 中的客户端应用)使用最长的超时时间。
  • 最后一个组件:始终对 API 请求流程中的最后一个组件(即 Apigee Edge 中的后端服务)使用最短的超时时间。
  • 组件之间:确保在流程中每个组件中配置的超时值之间,第一个组件与最后一个组件的超时值至少相差 2-3 秒。
  • 路由器:最好为特定虚拟主机配置(修改)I/O 超时值,而不是在路由器上进行配置。这样可确保新超时值仅影响使用特定虚拟主机的 API 代理,而不会影响路由器提供的所有 API 代理。

    仅当您完全确定新的 I/O 超时值是必需的或适用于在路由器上运行的所有 API 代理时,才应在路由器上配置(修改)I/O 超时。

  • 消息处理器:最好为特定 API 代理配置(修改)I/O 超时值,而不是在消息处理器上配置。这样可确保新超时值仅影响特定 API 代理,而不会影响消息处理器所处理的所有 API 代理。

    只有在您完全确定新 I/O 超时值对消息处理器上运行的所有 API 代理都必需或适用时,才应在消息处理器上配置(修改)I/O 超时。

场景示例

本部分中的场景可帮助您了解如何正确设置 I/O 超时值。

场景 1:直接从客户端应用向 Apigee Edge 发出请求

本部分介绍了在 Apigee Edge 设置中设置超时值时应遵循的最佳实践。在这种设置中,客户端应用与 Apigee Edge 之间以及 Apigee Edge 与后端服务器之间没有中间组件。

不含中间组件的 Apigee 设置示例

从客户端开始,流经路由器,然后流经消息处理器,最后流经后端服务器

如果 Apigee Edge 的设置如上图所示,没有中间组件,请遵循以下最佳实践:

  1. 客户端应用是该流程中的第一组件。应在客户端上设置最长超时值。
  2. 后端服务器是该流程中的最后一项组件。应在后端服务器上设置最短超时值。
  3. 请按照以下顺序为每个组件配置超时值:

    依次在客户端、路由器、消息处理器和后端服务器上配置超时

    以下示例展示了根据上述准则在各种组件上设置的超时值,以避免任何问题:

    将客户端的超时时间配置为 60 秒,然后将路由器的超时时间配置为 57 秒,然后将消息处理器的超时时间配置为 55 秒,最后将后端服务器的超时时间配置为 52 秒

场景 2:通过中间组件从客户端应用向 Apigee Edge 发出请求

本部分介绍了在 Apigee Edge 设置中设置超时值时应遵循的最佳实践。在这种设置中,客户端应用和 Apigee Edge 之间以及 Apigee Edge 和后端服务器之间存在一个或多个中间组件。

中间组件可以是负载平衡器、内容分发网络 (CDN)、NGINX 等。

Apigee 设置示例:客户端和 Apigee Edge 之间以及 Apigee Edge 和后端服务器之间各有一个中间组件

流程从客户端开始,依次前往中间组件 1、路由器、消息处理器、中间组件 2 和后端服务器

如果 Apigee Edge 的设置如上图所示,包含一个或多个中间组件,请遵循以下最佳实践:

  1. 客户端应用是该流程中的第一组件。应在客户端上设置最高 超时值。
  2. 后端服务器是该流程中的最后一项组件。应在后端服务器上设置最低 超时值。
  3. 请按照以下顺序为每个组件(包括中间组件)配置超时值:

    依次在客户端、中间组件 1、路由器、消息处理器、中间组件 2 和后端服务器上配置超时

    以下示例展示了根据上述准则在各种组件上设置的超时值,以避免任何问题:

    将客户端的超时时间配置为 63 秒,然后将中间组件 1 的超时时间配置为 60 秒,然后将路由器的超时时间配置为 57 秒,然后将消息处理器的超时时间配置为 55 秒,然后将中间组件 2 的超时时间配置为 52 秒,然后将后端服务器的超时时间配置为 59 秒