您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
客户端应用发出的 API 请求在到达后端服务之前,会流经 Apigee Edge 中的各种组件。大多数客户端应用都希望及时收到这些请求的响应。
为了及时响应,我们在 API 请求流经的每个组件中设置了 I/O 超时值。如果流程中的任何组件所用的时间超过了前面的组件,前面的组件就会超时,并返回 504 网关超时错误。
在配置超时时,应非常谨慎地在每个组件中配置值,否则可能会导致 504 网关超时错误。
本文档介绍了在 Apigee Edge 中通过各种组件配置 I/O 超时的最佳实践,API 请求会通过这些组件流动。
配置 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 的设置如上图所示,没有中间组件,请遵循以下最佳实践:
- 客户端应用是流程中的第一个组件。应在客户端上设置最长超时值。
- 后端服务器是流程中的最后一个组件。应在后端服务器上设置最低超时值。
- 按以下顺序配置每个组件的超时值:
以下示例展示了根据上述准则为各个组件设置的超时值,以避免出现任何问题:
场景 2:客户端应用通过中间组件向 Apigee Edge 发出的请求
本部分介绍在 Apigee Edge 设置中设置超时值的最佳实践,其中客户端应用与 Apigee Edge 之间以及 Apigee Edge 与后端服务器之间存在一个或多个中间组件。
中间组件可以是负载平衡器、内容分发网络 (CDN)、NGINX 等。
Apigee 设置示例:客户端与 Apigee Edge 之间以及 Apigee Edge 与后端服务器之间各有一个中间组件
如果 Apigee Edge 的设置如上图所示,包含一个或多个中间组件,请遵循以下最佳实践:
- 客户端应用是流程中的第一个组件。应在客户端上设置最高 超时值。
- 后端服务器是流程中的最后一个组件。应在后端服务器上设置最低 超时值。
- 按以下顺序配置每个组件(包括中间组件)的超时值:
以下示例展示了根据上述准则为各个组件设置的超时值,以避免出现任何问题: