zh translation: docs/tasks/traffic management/request timeouts/index.md (#9450)

* zh-translation: docs/tasks/traffic-management/request-timeouts/index.md

* change
This commit is contained in:
orangegzx 2021-04-03 16:40:40 +08:00 committed by GitHub
parent 582ff1fe5e
commit e8148df31b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 14 deletions

View File

@ -25,9 +25,7 @@ test: yes
## 请求超时{#request-timeouts}
http 请求的超时可以用[路由规则](/zh/docs/reference/config/networking/virtual-service/#HTTPRoute)的 *timeout* 字段来指定。
默认情况下,超时是禁用的,本任务中,会把 `reviews` 服务的超时设置为 1 秒。
为了观察效果,还需要在对 `ratings` 服务的调用上人为引入 2 秒的延迟。
HTTP 请求的超时可以用[路由规则](/zh/docs/reference/config/networking/virtual-service/#HTTPRoute)的 *timeout* 字段来指定。默认情况下,超时是禁用的,本任务中,会把 `reviews` 服务的超时设置为 1 秒。为了观察效果,还需要在对 `ratings` 服务的调用上人为引入 2 秒的延迟。
1. 将请求路由到 `reviews` 服务的 v2 版本,它会发起对 `ratings` 服务的调用:
@ -105,19 +103,11 @@ http 请求的超时可以用[路由规则](/zh/docs/reference/config/networking
## 理解原理{#understanding-what-happened}
本任务中,使用 Istio 为对 `reviews` 微服务的调用配置了半秒的请求超时。默认情况下请求超时是禁用的。
`reviews` 服务在处理请求时会接着调用 `ratings` 服务,用 Istio 在对 `ratings` 的调用中注入了两秒钟的延迟,这样就让
`reviews` 服务要花费超过半秒的时间来完成调用,因此可以观察到超时。
本任务中,使用 Istio 为对 `reviews` 微服务的调用配置了半秒的请求超时。默认情况下请求超时是禁用的。`reviews` 服务在处理请求时会接着调用 `ratings` 服务,用 Istio 在对 `ratings` 的调用中注入了两秒钟的延迟,这样就让 `reviews` 服务要花费超过半秒的时间来完成调用,因此可以观察到超时。
可以观察到Bookinfo 的页面(调用 `reviews` 服务来生成页面)没显示评论,而是显示了消息:
**Sorry, product reviews are currently unavailable for this book.**
这就是它收到了来自 `reviews` 服务的超时错误信息。
可以观察到Bookinfo 的页面(调用 `reviews` 服务来生成页面)没显示评论,而是显示了消息:**Sorry, product reviews are currently unavailable for this book.** 这就是它收到了来自 `reviews` 服务的超时错误信息。
如果看过[故障注入任务](/zh/docs/tasks/traffic-management/fault-injection/),就会发现 `productpage`
微服务在调用 `reviews` 微服务时还有它自己的应用级的超时3 秒)设置。
注意在本任务中使用 Istio 路由规则设置了半秒的超时。
如果将超时设置为大于 3 秒(比如 4 秒),则超时将不会有任何影响,因为这两个超时的限制性更强。
更多细节可以参考[这里](/zh/docs/concepts/traffic-management/#network-resilience-and-testing)。
如果看过[故障注入任务](/zh/docs/tasks/traffic-management/fault-injection/),就会发现 `productpage` 微服务在调用 `reviews` 微服务时还有它自己的应用级的超时3 秒)设置。注意在本任务中使用 Istio 路由规则设置了半秒的超时。如果将超时设置为大于 3 秒(比如 4 秒),则超时将不会有任何影响,因为这两个超时的限制性更强。更多细节可以参考[这里](/zh/docs/concepts/traffic-management/#network-resilience-and-testing)。
还有一点关于 Istio 中超时控制方面的补充说明,除了像本文一样在路由规则中进行超时设置之外,还可以进行请求一级的设置,只需在应用的对外请求中加入 `x-envoy-upstream-rq-timeout-ms` 请求头即可。在这个请求头中的超时设置单位是毫秒而不是秒。