检查kafka是否正常连接状态

本文简单记录了利用java代码判断kafka是否正常工作。原理就是配置参数之后,连接kafka,看是否可以在规定的时间 (超时时间)内获取到topics.

一、依赖包.

<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka_2.12</artifactId>
  <version>3.0.0</version>
</dependency>

二、判断逻辑

KtenSue警告:案例中超时时间是5秒,实际开发中5秒太短了,一般设置30秒合适,否则会报错说【连接超时】!实际上kafka是连通的,只是查询耗时超过了5秒而已!

public boolean kafkaAlive(){
   Properties properties = new Properties();
   properties.put("bootstrap.servers", "192.168.2.200:9092");
   properties.put("connections.max.idle.ms", 10000);
   properties.put("request.timeout.ms", 5000);
   try (AdminClient client = KafkaAdminClient.create(properties)) {
       ListTopicsResult topics = client.listTopics(new ListTopicsOptions().timeoutMs(5000));
       Set<String> names = topics.names().get();
       System.out.println("connect to kafka cluster success");
       return true;
  } catch (Exception e){
       return false;
  }
}

三、真正的超时,是这一句起了重要作用。

new ListTopicsOptions().timeoutMs(5000)
 
posted @ 2022-10-17 10:26  KtenSue  阅读(4768)  评论(0)    收藏  举报