Kafka AdminClient DEFAULT_API_TIMEOUT_MS_CONFIG property not working as expected.

2022-12-19 Thread shruti pandey
Hi,

I have previously send this query.

In my java application for kafkaProducer i created Admin and used this to
list topics.

 Admin admin1 = Admin.create(properties).
ListTopicsResult listTopicResult = admin1.listTopics();

When producer was not able to connect to broker, thread get stucks at
listTopic step.

To avoid this i have added DEFAULT_API_TIMEOUT_MS_CONFIG property and have
set to 2000ms. so after 2s if producer is not able to connect to broker
timeout should happen.
properties.put(AdminClientConfig.DEFAULT_API_TIMEOUT_MS_CONFIG,2000). But
this does not work as expected. even DEFAULT_API_TIMEOUT_MS_CONFIG with
value 2000ms as property timeout didn't happen and thread was struck.

Is there any other way to achieve timeout or do we need to configure it in
any other way? Also is using AdminClient instead of Admin can have any
impact.


Also our Admin creation was successful. Even though we have kept
request.timeout.ms=100 there was no error or exception thrown. We used this
admin to list out topics present in broker and it was successful.

One thing I would like to point out is that we have created Admin not
AdminClient. Will this be having any impact. Let us know about it.

This is how we used it



try (Admin admin1 = Admin.create(properties)) {

   ListTopicsResult listTopicResult
= admin1.listTopics();

   KafkaFuture>
kafkaFuture = listTopicResult.names();



Thanks in advance

Thanks
Shruti


RE: [External] : Re: Kafka AdminClient DEFAULT_API_TIMEOUT_MS_CONFIG property not working as expected

2022-12-12 Thread Shruti Pandey
Hi Luke,

Yes our Admin creation was successful. Even though we have kept 
request.timeout.ms=100 there was no error or exception thrown. We used this 
admin to list out topics present in broker and it was successful.
One thing I would like to point out is that we have created Admin not 
AdminClient. Will this be having any impact. Let us know about it.
This is how we used it

try (Admin admin1 = Admin.create(properties)) {
ListTopicsResult listTopicResult = admin1.listTopics();
KafkaFuture> kafkaFuture = 
listTopicResult.names();

try {
if (kafkaFuture.get().contains(topicName)) {
logger.debug("Required topic is 
present.");
return true;
}

Thanks,
Shruti

-Original Message-
From: Luke Chen  
Sent: Monday, December 12, 2022 3:09 PM
To: dev@kafka.apache.org
Cc: Brahmpal Kauntey 
Subject: [External] : Re: Kafka AdminClient DEFAULT_API_TIMEOUT_MS_CONFIG 
property not working as expected

Hi Shruti,

Are you sure it creates admin client successfully after setting
default.api.timeout.ms=2000 ? It should fail at this check:
https://urldefense.com/v3/__https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java*L618-L621__;Iw!!ACWV5N9M2RV99hQ!IUZrOhRzkwvmXFTWD26OZXoyfDiz7B-fhT01GR-OHbz3oR9CRhisbAc5rq6RtORRbEzUuWonu1NrwvyYtQ$
 

Try also set request.timeout.ms=2000, please.

Thank you.
Luke

On Mon, Dec 12, 2022 at 2:54 PM Shruti Pandey 
wrote:

> Hi,
>
> In my java application for kafkaProducer i created Admin and used this 
> to list topics.
>
>  Admin admin1 = Admin.create(properties).
> ListTopicsResult listTopicResult = admin1.listTopics();
>
> When producer was not able to connect to broker, thread get stucks at 
> listTopic step.
>
> To avoid this i have added DEFAULT_API_TIMEOUT_MS_CONFIG property and 
> have set to 2000ms. so after 2s if producer is not able to connect to 
> broker timeout should happen.
> properties.put(AdminClientConfig.DEFAULT_API_TIMEOUT_MS_CONFIG,2000). 
> But this does not work as expected. even DEFAULT_API_TIMEOUT_MS_CONFIG 
> with value 2000ms as property timeout didn't happen and thread was struck.
>
> Is there any other way to achieve timeout or do we need to configure 
> it in any other way? Also is using AdminClient instead of Admin can 
> have any impact.
>
> Thanks in advance
>
> Thanks
> Shruti
>
>


Re: Kafka AdminClient DEFAULT_API_TIMEOUT_MS_CONFIG property not working as expected

2022-12-12 Thread Luke Chen
Hi Shruti,

Are you sure it creates admin client successfully after setting
default.api.timeout.ms=2000 ? It should fail at this check:
https://github.com/apache/kafka/blob/trunk/clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java#L618-L621

Try also set request.timeout.ms=2000, please.

Thank you.
Luke

On Mon, Dec 12, 2022 at 2:54 PM Shruti Pandey 
wrote:

> Hi,
>
> In my java application for kafkaProducer i created Admin and used this to
> list topics.
>
>  Admin admin1 = Admin.create(properties).
> ListTopicsResult listTopicResult = admin1.listTopics();
>
> When producer was not able to connect to broker, thread get stucks at
> listTopic step.
>
> To avoid this i have added DEFAULT_API_TIMEOUT_MS_CONFIG property and have
> set to 2000ms. so after 2s if producer is not able to connect to broker
> timeout should happen.
> properties.put(AdminClientConfig.DEFAULT_API_TIMEOUT_MS_CONFIG,2000). But
> this does not work as expected. even DEFAULT_API_TIMEOUT_MS_CONFIG with
> value 2000ms as property timeout didn't happen and thread was struck.
>
> Is there any other way to achieve timeout or do we need to configure it in
> any other way? Also is using AdminClient instead of Admin can have any
> impact.
>
> Thanks in advance
>
> Thanks
> Shruti
>
>


Kafka AdminClient DEFAULT_API_TIMEOUT_MS_CONFIG property not working as expected

2022-12-11 Thread Shruti Pandey
Hi,

In my java application for kafkaProducer i created Admin and used this to list 
topics.

 Admin admin1 = Admin.create(properties).
ListTopicsResult listTopicResult = admin1.listTopics();

When producer was not able to connect to broker, thread get stucks at listTopic 
step.

To avoid this i have added DEFAULT_API_TIMEOUT_MS_CONFIG property and have set 
to 2000ms. so after 2s if producer is not able to connect to broker timeout 
should happen. 
properties.put(AdminClientConfig.DEFAULT_API_TIMEOUT_MS_CONFIG,2000). But this 
does not work as expected. even DEFAULT_API_TIMEOUT_MS_CONFIG with value 2000ms 
as property timeout didn't happen and thread was struck.

Is there any other way to achieve timeout or do we need to configure it in any 
other way? Also is using AdminClient instead of Admin can have any impact.

Thanks in advance

Thanks
Shruti