istio-0.8 服务超时配置

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

请求超时

可以使用路由规则的httpReqTimeout字段指定http请求的超时。默认情况下,超时为15秒,但在此任务中,我们将reviews服务超时重写为1秒。然而,为了看到它的效果,我们还将在ratings服务调用中引入人为的2秒延迟。

  1. 将请求路由到reviews服务的v2 ,即调用ratings服务的版本

        cat <
  2. ratings服务调用添加2秒延迟:

        cat <
  3. 在浏览器中打开Bookinfo URL(http:// $ GATEWAY_URL / productpage)

    您应该看到Bookinfo应用程序正常工作(显示评级星标),但每次刷新页面时都会有2秒的延迟。

  4. 现在为reviews服务调用添加1秒的请求超时

        cat <
  5. 刷新Bookinfo网页

    您现在应该看到它在1秒内返回(而不是2秒),但评论不可用。

了解发生了什么

在此任务中,您使用Istio将对reviews微服务的调用的请求超时设置为1秒(而不是默认的15秒)。由于服务在处理请求时reviews随后调用ratings服务,因此您使用Istio在调用中注入了2秒的延迟ratings,因此您将导致reviews服务花费超过1秒的时间来完成,因此您可以看到超时运行。

您发现Bookinfo产品页面(调用reviews服务填充页面)而不是显示评论显示消息:对不起,本书目前无法提供产品评论。这是它从reviews服务接收超时错误的结果。

如果你查看故障注入任务,你会发现productpage微服务也有自己的应用程序级超时(3秒)来调用reviews微服务。请注意,在此任务中,我们使用Istio路由规则将超时设置为1秒。如果您将超时设置为大于3秒(例如,4秒)的超时,则超时将无效,因为两者中的限制性更强。更多细节可以在这里找到。

关于Istio中超时的另一个注意事项是,除了在路由规则中覆盖它们之外,就像在此任务中所做的那样,如果应用程序添加了“x-envoy-upstream-”,它们也可以在每个请求的基础上被覆盖。 rq-timeout-ms“出站请求的标头。在标头中,超时以毫秒(而不是第二)单位指定。

资料:

https://istio.io/docs/tasks/traffic-management/request-routing/

转载于:https://my.oschina.net/xiaominmin/blog/1858655

你可能感兴趣的:(istio-0.8 服务超时配置)