Sye*_*mar 4 circuit-breaker hystrix microservices
在我们的项目中,我们使用以下 Hystrix 配置。我对command.default.execution.timeout.enabled property感到困惑 。它被设置为 false,但我们还有另一个指定 timeoutInMilliseconds 的属性,根据我的理解,它指定调用者将观察到超时的时间。因此,如果首先将执行超时设置为 false,那么拥有第二个属性有什么意义呢?如果我的理解不正确,请告诉我
#
# Hystrix configuration
#
hystrix:
command.default.execution.timeout.enabled: false
command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
Run Code Online (Sandbox Code Playgroud)
首先,请阅读此处的文档。对此进行了详细说明。在页面的开头,有“默认”的定义。请检查一下。
现在回答您的具体问题
默认command.default.execution.timeout.enabled值设置为 true。正如您在本节中所看到的。所以用这样的代码
command.default.execution.timeout.enabled: false
Run Code Online (Sandbox Code Playgroud)
你重写它是错误的。这意味着 hystrix 不会导致任何调用超时。但您也可以在同一部分中看到,我们可以使用 commandkey 启用或禁用特定实例。
同样的事情也适用于command.default.execution.isolation.thread.timeoutInMilliseconds
我们有一个默认值,我们也可以更改特定命令键的该值。
假设目前你有这个
hystrix:
command.default.execution.timeout.enabled: false
command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
Run Code Online (Sandbox Code Playgroud)
几天后,您可以添加类似的内容
command.myinstancekey.execution.timeout.enabled: true
Run Code Online (Sandbox Code Playgroud)
在这种情况下,仅对 myinstancekey 启用了超时,并且它将在 60000 后超时,因为它从以下位置获取值
command.default.execution.isolation.thread.timeoutInMillisecond
Run Code Online (Sandbox Code Playgroud)
如果你有类似的东西
command.myinstancekey.execution.isolation.thread.timeoutInMillisecond: 30000
Run Code Online (Sandbox Code Playgroud)
然后将30000作为mysinstancekey的超时值
| 归档时间: |
|
| 查看次数: |
10082 次 |
| 最近记录: |