gpt4 book ai didi

java - Spring Boot执行器健康端点+动态弹性4j断路器

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:18 25 4
gpt4 key购买 nike

我有一个 Spring Boot 应用程序,它使用 resilience4j基于AOP @CircuitBreaker s。

现在我想在 /actuator/health 端点中提供断路器的信息,但我没有看到 details. CircuitBtreakers 对象 described in the docs在 JSON 输出中。

我做错了什么?

<小时/>

相比之下,让动态缓存信息出现在 /actuator/metrics 端点中需要少量的自定义接线,但这就是 well documented 。我想知道是否有类似的技巧可以应用于动态定义的 @CircuitBreaker 注册到 /actuator/health 端点。

MyService.java:

@Service
public class MyService {
@Autowired
private CacheManager cacheManager;
@Autowired
private CacheMetricsRegistrar cacheMetricsRegistrar;

@PostConstruct
public void postConstruct() {
// On-the-fly defined (annotation-based) caches are not auto-registered with micrometer metrics.
final Cache cache = cacheManager.getCache("myCache");
cacheMetricsRegistrar.bindCacheToRegistry(cache);
}

@CircuitBreaker(name = "myCB", fallbackMethod = "fallbackCallAnApi")
public String callAnApi() throws RestClientException {
// ...
}

@Cacheable("myCache")
public String getSomethingCacheable() {
// ...
}
}

application.properties:

resilience4j.circuitbreaker.configs.default.registerHealthIndicator=true
management.endpoints.web.expose=health,metrics
management.endpoints.web.exposure.include=health,metrics
management.endpoint.health.enabled=true
management.endpoint.metrics.enabled=true
management.metrics.enable.resilience4j.circuitbreaker.calls=true
management.health.circuitbreakers.enabled=true

最佳答案

目前无法为 HealthIndicator 端点动态注册 CircuitBreaker。不幸的是你必须配置它们:

resilience4j.circuitbreaker:
configs:
default:
registerHealthIndicator: true
instances:
myCB:
baseConfig: default

你可以说这是一个错误。

https://github.com/resilience4j/resilience4j/blob/master/resilience4j-spring-boot2/src/main/java/io/github/resilience4j/circuitbreaker/monitoring/health/CircuitBreakersHealthIndicator.java#L99-L102

关于java - Spring Boot执行器健康端点+动态弹性4j断路器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60528426/

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