如何在驼峰弹簧靴中将Resilience4j指标集成到测微仪

问题描述

我正在将Camel与Spring Boot和Micrometer一起使用。在我的其中一条路线中,我正在使用带有Resilience4j的断路器:

.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自动连接到测微计:

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

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

因此,我的问题是,在将Camel与Spring结合使用时,如何将CircuitBreakerRegistry绑定到Micrometer上,或更抽象地将Resilience4j中的指标抽象化?

我想到的唯一其他可能的解决方案是手动管理所有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并允许进行外部配置。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...