如何将Resilience4j指标集成到Camel Spring Boot中的Micrometer



我使用的是带弹簧靴和千分尺的Camel。在我的一条路线上,我使用了一个带有弹性4j:的断路器

.circuitBreaker()
.resilience4jConfiguration()
.timeoutEnabled(true)
.timeoutDuration(2000)
.end()

我正在使用Spring管理的千分尺。在使用Hystrix转到resilience4j之前,我可以简单地将其绑定到我的Micrometer注册表:

@Configuration()
public class MetricsRegistryBuilder {
@Bean
HystrixMetricsBinder registerHystrixMetricsBinder() {
return new HystrixMetricsBinder();
}
}

不幸的是,对于Resilience4j,不存在绑定器。有一些关于如何将Resilience4j CircuitBreakerRegistry绑定到Micrometer的文档:https://resilience4j.readme.io/docs/micrometer以及如何使用Spring:https://resilience4j.readme.io/docs/getting-started-3

我试着简单地将Resilience4j CircuitBreakerRegistry自动连接到Micrometer:

@Configuration()
public class MetricsRegistryBuilder {
@Autowired
private CircuitBreakerRegistry circuitBreakerRegistry;
}

不幸的是,Spring没有找到CircuitBreakerRegistry Bean。

因此,我的问题是,当使用Camel with Spring时,如何将CircuitBreakerRegistry,或者更抽象地将Resilience4j的度量绑定到Micrometer?

我能想到的唯一其他可能的解决方案是手动管理所有Resilience4j配置,定义bean,并将其移交给我的Camel配置。不过,在我看来,考虑到绑定我的Resilience4j指标这一简单任务,这似乎是大量工作和样板代码的结果。

我正在使用以下版本:

  • 骆驼3.4.3
  • 弹簧2.3.3.释放
  • 麦克风1.5.4

此外,我正在使用骆驼弹簧启动程序依赖项:

<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-micrometer-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.springboot</groupId>
<artifactId>camel-resilience4j-starter</artifactId>
</dependency>

为什么不能使用我们的Spring Boot 2 Starter?启动器自动配置CircuitBreakerRegistry、MeterRegistry,并允许外部配置。

最新更新