针对Java程序连接Kafka访问TimeoutException的问题(楼主亲测成功)

在服务器上启动Kafka程序后,在使用Java去连接访问的时候,报超时的问题

  1. 出现的问题如下
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.
 at org.apache.kafka.clients.producer.KafkaProducer$FutureFailure.
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要测试Java连接Kafka的状态,可以编写一个简单的Java程序连接Kafka集群并发送/接收消息。以下是一个简单示例: ```java import org.apache.kafka.clients.producer.*; import org.apache.kafka.clients.consumer.*; import org.apache.kafka.common.serialization.StringSerializer; import org.apache.kafka.common.serialization.StringDeserializer; import java.util.Properties; public class KafkaTest { public static void main(String[] args) { // 设置生产者属性 Properties producerProps = new Properties(); producerProps.put("bootstrap.servers", "your.kafka.host:9092"); producerProps.put("acks", "all"); producerProps.put("retries", 0); producerProps.put("batch.size", 16384); producerProps.put("linger.ms", 1); producerProps.put("buffer.memory", 33554432); producerProps.put("key.serializer", StringSerializer.class.getName()); producerProps.put("value.serializer", StringSerializer.class.getName()); // 发送一条消息到Kafka Producer<String, String> producer = new KafkaProducer<>(producerProps); producer.send(new ProducerRecord<>("test_topic", "test_key", "test_value")); producer.close(); // 设置消费者属性 Properties consumerProps = new Properties(); consumerProps.put("bootstrap.servers", "your.kafka.host:9092"); consumerProps.put("group.id", "test_group"); consumerProps.put("enable.auto.commit", "true"); consumerProps.put("auto.commit.interval.ms", "1000"); consumerProps.put("key.deserializer", StringDeserializer.class.getName()); consumerProps.put("value.deserializer", StringDeserializer.class.getName()); // 从Kafka消费一条消息 Consumer<String, String> consumer = new KafkaConsumer<>(consumerProps); consumer.subscribe(Collections.singletonList("test_topic")); ConsumerRecords<String, String> records = consumer.poll(1000); for (ConsumerRecord<String, String> record : records) { System.out.println("Received message: " + record.value()); } consumer.close(); } } ``` 在运行这个程序之前,需要先确保Kafka已经在运行,并且主机名和端口号已经正确地设置。程序会发送一条消息到名为"test_topic"的主题,并从该主题中消费一条消息。如果程序能够正常地发送和接收消息,那么Java连接Kafka的状态就是正常的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值