微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

春季重试vs Hystrix

如何解决春季重试vs Hystrix

@CircuitBreaker的{​​{1}}和spring-retry的{​​{1}}有什么区别?

他们似乎都实现了断路器模式。

Spring官方指南正在使用@HystrixCommandhttps://spring.io/guides/gs/circuit-breaker/

在他们的示例中:

spring-cloud-starter-netflix-hystrix

(据我所知)相当于:

@HystrixCommand

解决方法

  1. @CircuitBreaker- 不确定它是否是实际注释。 AFAIK,事实并非如此。
  2. spring-retry- @Retryable 是用于实现此目的的注释。这基本上是根据特定条件重试当前方法执行指定的次数。
  3. @HystrixCommand- 该注解实际上会在方法执行时触发断路器功能。

有效差异-

  1. @Retryable 与断路器无关。即使结果每次都失败,它也会盲目地重试操作。它在当前请求的本地上下文上运行。这意味着它不知道系统上重试的全局状态。它所关心的只是每个请求都必须重试多次。
  2. @HystrixCommand 是一个智能注释。它知道系统的全局状态,如果失败次数超过指定的断路器阈值,它实际上会停止执行该方法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。