gpt4 book ai didi

java - 使用回退的 Resilience4j 断路器

转载 作者:行者123 更新时间:2023-12-02 01:11:08 27 4
gpt4 key购买 nike

我的服务必须调用另一个服务。但如果该服务关闭,则必须调用同一服务的后备 URL。就像服务部署在两个数据中心一样。如果一切正常,则调用主 DC 中的一个;如果主 DC 发生故障,则调用辅助 DC 中的一个。

我正在尝试使用resilience4j中的断路器来实现这一点。要求是这样的

  1. 主 DC 中的服务已启动 -> 调用主服务​​
  2. 主 DC 中的服务已关闭,辅助 DC 中的服务已启动 -> 不调用主服务,而仅调用辅助服务。
  3. 主 DC 中的服务已关闭,辅助 DC 中的服务已关闭 -> 不调用任何服务并返回默认响应。

如果服务在过去 y 秒内出现 x% 的故障,则可以识别服务是启动还是关闭。

你能帮忙我该怎么做吗?我在我的应用程序中使用 Resilience4j 和 spring-boot。

最佳答案

您可以使用 Vavr's Try and use recover method 提供的支持

circuitBreaker
.decorateTrySupplier(() -> Try.ofSupplier(() -> "Call Service 1."))
.get()
.recover(CallNotPermittedException.class, exception -> "Call Service 2")
.get();

关于java - 使用回退的 Resilience4j 断路器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59377638/

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