Редактировать FYI: пример работы с gitHub
Я искал в интернете и не смог найти работающего и простого примера встроенного теста Кафки.
Моя настройка:
- Весенний ботинок
- Несколько @KafkaListener с разными темами в одном классе
- Встроенный Кафка для теста, который начинается нормально
- Тест с Kafkatemplate, который отправляет в тему, но методы @KafkaListener ничего не получают даже после большого времени сна
- Предупреждения или ошибки не отображаются, в журналах только информационный спам от Kafka
Пожалуйста, помогите мне. Есть в основном переконфигурированные или слишком сильные примеры. Я уверен, что это можно сделать просто. Спасибо, парни!
@Controller
public class KafkaController {
private static final Logger LOG = getLogger(KafkaController.class);
@KafkaListener(topics = "test.kafka.topic")
public void receiveDunningHead(final String payload) {
LOG.debug("Receiving event with payload [{}]", payload);
//I will do database stuff here which i could check in db for testing
}
}
private static String SENDER_TOPIC = "test.kafka.topic";
@ClassRule
public static KafkaEmbedded embeddedKafka = new KafkaEmbedded(1, true, SENDER_TOPIC);
@Test
public void testSend() throws InterruptedException, ExecutionException {
Map<String, Object> senderProps = KafkaTestUtils.producerProps(embeddedKafka);
KafkaProducer<Integer, String> producer = new KafkaProducer<>(senderProps);
producer.send(new ProducerRecord<>(SENDER_TOPIC, 0, 0, "message00")).get();
producer.send(new ProducerRecord<>(SENDER_TOPIC, 0, 1, "message01")).get();
producer.send(new ProducerRecord<>(SENDER_TOPIC, 1, 0, "message10")).get();
Thread.sleep(10000);
}