mirror of https://github.com/istio/istio.io.git
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:
parent
582ff1fe5e
commit
e8148df31b
|
@ -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` 请求头即可。在这个请求头中的超时设置单位是毫秒而不是秒。
|
||||
|
||||
|
|
Loading…
Reference in New Issue