Получение ошибки Kafka- java.util.concurrent.ExecutionException: org.springframework.kafka.core.Исключение KafkaProducerException: не удалось отправить

#spring-boot #apache-kafka #kafka-consumer-api #spring-kafka #kafka-producer-api

#весенняя загрузка #apache-кафка #кафка-потребитель-api #spring-кафка #kafka-producer-api

Вопрос:

Я получаю ошибку в 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.
  

Кто-нибудь знает об этом?

Ответ №1:

Тема user_event отсутствует в метаданных после 60000 мс.

У вас есть тема user_event?

Если нет, вам нужно создать его или настроить администратора Kafka на автоматическое создание темы.

Комментарии:

1. При весенней загрузке автоматически создается тема в kafka. Итак, @Rohit Naik Как настроить kafka для автоматического создания темы во встроенной kafka

2. не могли бы вы обновить, как вы настроили встроенную Kafka? Через аннотацию @EMBEDDEDKAFKA или через ClassRule

3. Различные стили конфигурации брокера ( @EmbeddedKafka , new EmbeddedKafkaBroker(...) и т.д.) Все предоставляют механизмы для создания тестовых тем; просто добавьте их в конфигурацию брокера.