我正在使用以下两个库将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配置线程池的替代方法是什么。
答案 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;
}