AmazonCloudWatchAsyncClient 线程配置

AmazonCloudWatchAsyncClient Thread Configuration

我正在使用以下两个库将 spring 启动指标发布到 aws cloud watch。

org.springframework.cloud:spring-cloud-starter-aws:2.0.1.RELEASE

io.micrometer:micrometer-registry-cloudwatch:1.1.2

它使用 AmazonCloudWatchAsyncClient 每隔一分钟异步推送一次指标,并为此使用默认配置创建大小为 50 的 fixedThreadPool。我正在寻找一种简单的方法来根据我们的需要覆盖此线程数。是否有一个 属性 控制这个值?或者为 AmazonCloudWatchAsyncClient 配置线程池的替代方法是什么。

CloudWatchExportAutoConfiguration class 使用默认值实例化 AmazonCloudWatchAsyncClient。 bean 工厂方法使用@ConditionalOnMissingAmazonClient(AmazonCloudWatchAsync.class) 注释。因此,我能够通过在我的配置中创建 AmazonCloudWatchAsyncClient 来自定义它 class,使用线程数较少的执行程序服务。

    @Bean
  public AmazonWebserviceClientFactoryBean<AmazonCloudWatchAsyncClient> amazonCloudWatchAsync(
          AWSCredentialsProvider credentialsProvider, RegionProvider regionProvider) {
    AmazonWebserviceClientFactoryBean<AmazonCloudWatchAsyncClient> factoryBean =
            new AmazonWebserviceClientFactoryBean<>(AmazonCloudWatchAsyncClient.class, credentialsProvider);
    factoryBean.setExecutor(Executors.newFixedThreadPool(10));
    factoryBean.setRegionProvider(regionProvider);
    return factoryBean;
  }