Hi Team, We are using Apache Kafka 3.3.1 in our application.
Scenario - 1 --> We have created an Kafka admin client from our java application and have not configured the property "connections.max.idle.ms" so its default value which is 5 minutes is used. In the above scenario we see a port being established every 5 mins towards Kafka and an old port being dropped. 9:46 :30 --> process starts.. using default property Every 1.0s: netstat -plant | grep 9092 | grep 3455069 seliiuvd07797: Thu Dec 7 09:47:16 2023 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:46182 127.0.0.1:9092 ESTABLISHED 3455069/java 9:51:00 ---------------------------------> Every 1.0s: netstat -plant | grep 9092 | grep 3455069 seliiuvd07797: Thu Dec 7 09:51:38 2023 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:36866 127.0.0.1:9092 ESTABLISHED 3455069/java 9:59:00 ---------------------------------> Every 1.0s: netstat -plant | grep 9092 | grep 3455069 seliiuvd07797: Thu Dec 7 09:59:05 2023 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:51096 127.0.0.1:9092 ESTABLISHED 3455069/java 10:01:00 ----------------------------------------> Every 1.0s: netstat -plant | grep 9092 | grep 3455069 seliiuvd07797: Thu Dec 7 10:01:40 2023 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:38202 127.0.0.1:9092 ESTABLISHED 3455069/java 10:06:32 --------------------------------------------> Every 1.0s: netstat -plant | grep 9092 | grep 3455069 seliiuvd07797: Thu Dec 7 10:06:32 2023 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:50450 127.0.0.1:9092 ESTABLISHED 3455069/java Scenario - 2 --> However, if we create a Apache Kafka admin client using the property "connections.max.idle.ms" to a value greater than 5 mins. for eg. 10 mins. Initially when our process starts (Process started at 18:19:10) we have one connection established with the Apache Kafka broker as shown below. Time : 18:19:10 Every 1.0s: netstat -plant | grep 9092 | grep 2860979 seliiuvd07797: Wed Dec 6 18:19:35 2023 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:44280 127.0.0.1:9092 ESTABLISHED 2860979/java After 5 minutes, we observed one more connection was established ( though we only created one single admin client from the code. so this connection is being established internally by Apache Kafka) Time : 18:24:10 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:48526 127.0.0.1:9092 ESTABLISHED 2860979/java tcp6 0 0 127.0.0.1:44280 127.0.0.1:9092 ESTABLISHED 2860979/java After further 5 minutes, i.e. 10 minutes since the process started ( 18:29 Hrs.) , we observed that connection from the old port was dropped. Time : 18:29:10 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp6 0 0 127.0.0.1:48526 127.0.0.1:9092 ESTABLISHED 2860979/java After this there were no further disconnections or new connections being established. So the question basically is why Kafka admin client not getting disconnected every 10 minutes which was observed when the default value of "connections.max.idle.ms = 300000" property is being used for creating admin client.? Secondly why a new connection in Scenario 2 was established at the end of 5th minutes as shown above?? Regards, Ankit Nigam