IT源码网

java之Hystrix FallBack 不良实践

haluo1 2024年12月31日 程序员 55 0

为什么在使用 hystrix 库时在后备方法中进行数据库调用是一种不好的做法?

@HystrixCommand(fallbackMethod ="fallBackMethod") 
public Double getRating(){ 
 //Some Code Here 
} 
public Double fallBackMethod(){ 
//Any call to data base 
} 

请您参考如下方法:

如果您的数据库出现故障或速度缓慢,那么您在后备中的调用将变慢或阻塞或引发异常。在某些更糟糕的情况下,许多线程将在回退中阻塞,因此您的服务可能不可用。

后备措施是保护您的服务。当出现问题时,调用将通过调用后备快速失败或静默失败,因此线程不会被阻塞并且服务仍然能够提供服务。所以不建议在后备中做一些重度或不稳定的事情,例如调用数据库。

如果必须这样做,您可以在后备中使用 HystrixCommand,就像这样:https://github.com/Netflix/Hystrix/wiki/How-To-Use#Common-Patterns-FallbackCacheViaNetwork


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!