十、 基于timeout机制为服务接口的调用超时提供安全保护

一般来说,在调用依赖服务的接口的时候,比较常见的一个问题,就是超时,超时是在一个复杂的分布式系统中,导致不稳定,或者系统抖动,或者出现说大量超时,线程资源hang死,吞吐量大幅度下降,甚至服务崩溃,超时最大的一个问题。

 

 

10.1 手动设置timeout时长

execution.isolation.thread.timeoutInMilliseconds

手动设置timeout时长,一个command运行超出这个时间,就被认为是timeout,然后将hystrix command标识为timeout,同时执行fallback降级逻辑

 

默认是1000,也就是1000毫秒

HystrixCommandProperties.Setter()

   .withExecutionTimeoutInMilliseconds(int value)

//手动设置timeout时长,一个command运行超出这个时间,就被认为是timeout,然后将hystrix command标识为timeout,同时执行fallback降级逻辑

                            .withExecutionTimeoutInMilliseconds(1000)

 

10.2 控制是否要打开timeout机制

execution.timeout.enabled

控制是否要打开timeout机制,默认是true

 

HystrixCommandProperties.Setter()

   .withExecutionTimeoutEnabled(boolean value)

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

//控制是否要打开timeout机制,默认是(true),让一个command执行timeout,然后看是否会调用fallback降级

                            .withExecutionTimeoutEnabled(true)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章