不使用注释时将 resilience4j 与 spring-boot 2 执行器集成?
Integrating resilience4j with spring-boot 2 actuator when not using annotations?
我的 spring 基于 boot 2.1 的 webflux 应用程序(来自 project reactor)正在使用一个库(L),它公开了一个 Mono
包裹在来自 Resilience4j 1.0 的 CircuitBreakerOperator
中.0(它是 而不是 使用 @CircuitBreaker
等注释)。
我真的很想在 Spring 执行器 http 管理控制台(例如在健康端点)中显示此断路器的指标。我已经添加了 io.github.resilience4j:resilience4j-spring-boot2:1.0.0
依赖项,但是当我加载健康页面时,我只看到这个:
{
"status": "UP",
"refreshScope": {
"status": "UP"
},
"rateLimiters": {
"status": "UNKNOWN"
},
"circuitBreakers": {
"status": "UNKNOWN"
}
}
}
即似乎没有检测到库 L 中的断路器。所以我的问题是,如何让 Spring Actuator 知道 resilience4j 的断路器(最好还有速率限制器等),当它们 not 使用注释应用时?
问题是库实例化了 CircuitBreakerRegistry
。这需要更改,因为 resilience4j-spring-boot2
会自动创建一个用于公开指标的托管 CircuitBreakerRegistry
。将此注册表注入库时,一切都开始工作了。
我的 spring 基于 boot 2.1 的 webflux 应用程序(来自 project reactor)正在使用一个库(L),它公开了一个 Mono
包裹在来自 Resilience4j 1.0 的 CircuitBreakerOperator
中.0(它是 而不是 使用 @CircuitBreaker
等注释)。
我真的很想在 Spring 执行器 http 管理控制台(例如在健康端点)中显示此断路器的指标。我已经添加了 io.github.resilience4j:resilience4j-spring-boot2:1.0.0
依赖项,但是当我加载健康页面时,我只看到这个:
{
"status": "UP",
"refreshScope": {
"status": "UP"
},
"rateLimiters": {
"status": "UNKNOWN"
},
"circuitBreakers": {
"status": "UNKNOWN"
}
}
}
即似乎没有检测到库 L 中的断路器。所以我的问题是,如何让 Spring Actuator 知道 resilience4j 的断路器(最好还有速率限制器等),当它们 not 使用注释应用时?
问题是库实例化了 CircuitBreakerRegistry
。这需要更改,因为 resilience4j-spring-boot2
会自动创建一个用于公开指标的托管 CircuitBreakerRegistry
。将此注册表注入库时,一切都开始工作了。