Как остановить и запустить Embedded Kafka в модульном тесте? - PullRequest
1 голос
/ 03 апреля 2020

Я использую Embedded Kafka для проверки отправки сообщения в Kafka, когда отправка не удалась, мой код будет пересылаться автоматически, поэтому я пытаюсь остановить Embedded Kafka, а затем перезапустить его во время повторной отправки. Но я не знаю, как остановить и запустить Embedded Kafka.

1 Ответ

1 голос
/ 12 апреля 2020

Код клиента Kafka управляет повторной отправкой сообщений в случае сбоя. Вам не нужно писать тесты для такого поведения - в результате вы можете go пробить настоящую кроличью нору, протестировав ядро ​​Java поведения класса и т.д. c.

Однако вы можете выключить и перезапустить брокер с помощью

embeddedKafkaBroker.getKafkaServers().forEach(KafkaServer::shutdown);
embeddedKafkaBroker.getKafkaServers().forEach(KafkaServer::awaitShutdown);
// Send messages
embeddedKafkaBroker.getKafkaServers().forEach(KafkaServer::startup);
...