高可用服务架构设计(16) - 基于timeout机制来为商品服务接口的调用超时提供安全保护

一般来说,在调用依赖服务的接口的时候,比较常见的一个问题,就是超时

超时是在一个复杂的分布式系统中,导致不稳定,或者系统抖动,或者出现说大量超时,线程资源hang死,吞吐量大幅度下降,甚至服务崩溃


分布式复杂的系统里,可能你的依赖接口的性能很不稳定,有时候2ms,200ms,2s

如果你不对各种依赖接口的调用,做超时的控制,来给你的服务提供安全保护措施,那么很可能你的服务就被各种垃圾的依赖服务的性能给拖死了


1 TimeoutMilliseconds

Timeout value in milliseconds for a command

高可用服务架构设计(16) - 基于timeout机制来为商品服务接口的调用超时提供安全保护

手动设置timeout时长,一个command运行超出这个时间,就认为是timeout

然后将hystrix command标识为timeout,同时执行fallback降级逻辑


default => executionTimeoutInMilliseconds: 1000 = 1 second

默认是1000,也就是1000毫秒

高可用服务架构设计(16) - 基于timeout机制来为商品服务接口的调用超时提供安全保护

2 TimeoutEnabled

  • Whether timeout should be triggered
    是否应触发超时
  • 高可用服务架构设计(16) - 基于timeout机制来为商品服务接口的调用超时提供安全保护
  • 控制是否要打开timeout机制,默认是true

高可用服务架构设计(16) - 基于timeout机制来为商品服务接口的调用超时提供安全保护

让一个command执行timeout,然后看是否会调用fallback降级

上一篇:微服务架构 | 1. 微服务相关基础知识


下一篇:阿里百度华为等大厂是如何追踪微服务调用的?(下)