【问题标题】:Getting Kafka error- java.util.concurrent.ExecutionException: org.springframework.kafka.core.KafkaProducerException: Failed to send获取 Kafka 错误 - java.util.concurrent.ExecutionException: org.springframework.kafka.core.KafkaProducerException: 发送失败
【发布时间】:2023-04-07 02:14:01
【问题描述】:

我在 Kafka 中遇到错误。在发送关于主题的消息时

这是发送主题消息的代码。

@Override
    public void sendMessage(User user) {
        
        ListenableFuture<SendResult<String, Object>> future = kafkaTemplate.send(user);
        future.addCallback(new ListenableFutureCallback<SendResult<String, Object>>() {
            @Override
            public void onSuccess(SendResult<String, Object> result) {
            }
            
            @Override
            public void onFailure(Throwable e) {
            }
        });
        
        try {
            future.get();
        } catch (InterruptedException | ExecutionException e) {
            throw new SystemException("Error sending message to topic " + channelConfiguration.getTopic(), e);
         **Getting following error here**
        }
    }

这是我在发送有关主题的消息时遇到的错误

Caused by: java.util.concurrent.ExecutionException: org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Topic user_event not present in metadata after 60000 ms.
    at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[na:na]
    at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[na:na]
    at org.springframework.util.concurrent.SettableListenableFuture.get(SettableListenableFuture.java:119) ~[spring-core-5.2.4.RELEASE.jar:5.2.4.RELEASE]
    at com.test.common.messenger.kafka.sender.KafkaMessageSender.sendMessage(KafkaMessageSender.java:60) ~[classes/:na]
    ... 55 common frames omitted
Caused by: org.springframework.kafka.core.KafkaProducerException: Failed to send; nested exception is org.apache.kafka.common.errors.TimeoutException: Topic loyalty_event not present in metadata after 60000 ms.
    at org.springframework.kafka.core.KafkaTemplate.lambda$buildCallback$4(KafkaTemplate.java:424) ~[spring-kafka-2.3.6.RELEASE.jar:2.3.6.RELEASE]
    at org.apache.kafka.clients.producer.KafkaProducer.doSend(KafkaProducer.java:930) ~[kafka-clients-2.3.1.jar:na]
    at org.apache.kafka.clients.producer.KafkaProducer.send(KafkaProducer.java:856) ~[kafka-clients-2.3.1.jar:na]
    at org.springframework.kafka.core.DefaultKafkaProducerFactory$CloseSafeProducer.send(DefaultKafkaProducerFactory.java:592) ~[spring-kafka-2.3.6.RELEASE.jar:2.3.6.RELEASE]
    at org.springframework.kafka.core.KafkaTemplate.doSend(KafkaTemplate.java:404) ~[spring-kafka-2.3.6.RELEASE.jar:2.3.6.RELEASE]
    at org.springframework.kafka.core.KafkaTemplate.send(KafkaTemplate.java:254) ~[spring-kafka-2.3.6.RELEASE.jar:2.3.6.RELEASE]
    at com.test.common.messenger.kafka.sender.KafkaMessageSender.sendMessage(KafkaMessageSender.java:45) ~[classes/:na]
    ... 55 common frames omitted
Caused by: org.apache.kafka.common.errors.TimeoutException: Topic user_event not present in metadata after 60000 ms.

有人知道吗?

【问题讨论】:

    标签: spring-boot apache-kafka kafka-consumer-api spring-kafka kafka-producer-api


    【解决方案1】:

    主题 user_event 在 60000 毫秒后不存在于元数据中。

    你有主题user_event吗?

    如果不需要,您需要创建它,或者配置 Kafka 管理员自动创建主题。

    【讨论】:

    • 在 Spring Boot 中,它会在 kafka 中自动创建主题。所以@Rohit Naik 如何配置 kafka 以在嵌入式 kafka 中自动创建主题
    • 您能否更新一下您是如何配置嵌入式 Kafka 的?通过@EmbededKafka 注解或通过 ClassRule
    • 各种类型的代理配置(@EmbeddedKafkanew EmbeddedKafkaBroker(...) 等)都提供了创建测试主题的机制;只需将它们添加到代理配置中即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 2014-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多