Не удается установить номер пула подключений Amazon при использовании пожарного шланга? - PullRequest
0 голосов
/ 26 апреля 2019

Я использую java sdk для подключения к AWS firehose для отправки журналов. Но каждый раз при отправке журнала создается новый поток. Вот как я создаю клиента.

  ClientConfiguration conf = new ClientConfiguration();
  conf.setMaxConnections(2);
  conf.withMaxConnections(2);
  conf.setConnectionMaxIdleMillis(2000);
  AmazonKinesisFirehoseAsyncClient firehoseClient = (AmazonKinesisFirehoseAsyncClient) AmazonKinesisFirehoseAsyncClientBuilder
            .standard()
            .withRegion(Regions.fromName("us-east-1"))
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
            .withClientConfiguration(conf)
            .build();

Так я вызываю функцию putrecord.

   PutRecordRequest putRecordRequest = new PutRecordRequest()
            .withDeliveryStreamName("teststream")
            .withRecord(record);
   return firehoseClient.putRecordAsync(putRecordRequest, asyncHandler());

         private AsyncHandler<PutRecordRequest, PutRecordResult> asyncHandler() {
        return new AsyncHandler<PutRecordRequest, PutRecordResult>() {

            public void onError(Exception e) {
                System.out.println("Exception async handler {}");
            }

            public void onSuccess(PutRecordRequest request, PutRecordResult putRecordResult) {
                System.out.println(Thread.currentThread().getName()) ;
            }
        };
    }

Здесь проблема очевидна, хотя я указывал maxconnection как «2» каждый раз, когда вызываю функцию - example.putRecord (), она создает новый поток, который я подтверждаю, просматривая jconsole. и нити тоже не умирают сами по себе.

Итак, как мне поддерживать количество потоков, и потоки должны умирать после получения каждого ответа.

...