gpt4 book ai didi

Spring Retry 与 Hystrix

转载 作者:行者123 更新时间:2023-12-05 04:58:20 28 4
gpt4 key购买 nike

spring-retry@CircuitBreakerspring-cloud-starter-netflix-hystrix 的@HystrixCommand 有什么区别?

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

官方 Spring 指南使用的是 @HystrixCommand:https://spring.io/guides/gs/circuit-breaker/

在他们的例子中:

@HystrixCommand(fallbackMethod = "reliable")
public String readingList() {
URI uri = URI.create("http://localhost:8090/recommended");

return this.restTemplate.getForObject(uri, String.class);
}

public String reliable() {
return "Cloud Native Java (O'Reilly)";
}

相当于(据我所知):

@CircuitBreaker
public String readingList() {
URI uri = URI.create("http://localhost:8090/recommended");

return this.restTemplate.getForObject(uri, String.class);
}

@Recover
public String reliable() {
return "Cloud Native Java (O'Reilly)";
}

最佳答案

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

有效差异-

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

关于Spring Retry 与 Hystrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64067722/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com