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;
}
我正在使用以下两个库将 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;
}