AmazonCloudWatchAsyncClient线程配置

时间:2019-03-21 16:02:32

标签: aws-sdk

我正在使用以下两个库将spring boot指标发布到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配置线程池的替代方法是什么。

1 个答案:

答案 0 :(得分:0)

CloudWatchExportAutoConfiguration类使用默认值实例化AmazonCloudWatchAsyncClient。 Bean工厂方法使用@ConditionalOnMissingAmazonClient(AmazonCloudWatchAsync.class)进行注释。因此,我可以通过使用更少线程数的执行程序服务在我的配置类中创建AmazonCloudWatchAsyncClient来对其进行自定义。

    @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;
  }