我有一个使用resilience4j基于AOP的
现在,我想在
我做错了什么?
相比之下,让动态缓存信息在
@CircuitBreaker
的Spring Boot应用程序。现在,我想在
/actuator/health
端点中提供断路器信息,但在JSON输出中没有看到文档中描述的details.circuitBtreakers
对象。我做错了什么?
相比之下,让动态缓存信息在
/actuator/metrics
端点中显示需要一些自定义连接,但这有很好的文档记录。我想知道是否有类似的技巧可以应用于动态定义的@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