Как добавить встроенную кафку в приложение SpringBoot
Я использую Kafka и Springboot в своем проекте, теперь у меня есть внешний кластер Kafka и проект микросервиса SpringBoot.
Используя файл yml, я успешно создаю Kafka Producer и потребитель, а затем приложение и kafka прекрасно взаимодействуют.
Теперь я хочу использовать встроенный kafka в моем проекте sprintboot. Что-то вроде встроенного после кода Activemq.
spring:
# Embedded ActiveMQ Configuration Example
activemq:
broker-url: vm://embedded?broker.persistent=false,useShutdownHook=false
in-memory: true
non-blocking-redelivery: true
Я погуглил и прочитал много статей о том же, но не смог получить ясную картину. Здесь я не хочу этот встроенный сервер только для тестирования Junit, но
хочу провести функциональное тестирование без установки какого-либо внешнего компонента Kafka в моей экосистеме.
Я действительно не знаю, как это сделать, может ли кто-нибудь помочь мне в том же.
Заранее спасибо
1 ответ
Добавить зависимость
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<scope>test</scope>
</dependency>
Создайте что-то похожее в своем тесте
public static KafkaEmbedded embeddedKafka = new KafkaEmbedded(2, true, 2, "messages");
и вы готовы использовать его - не имеет значения, функциональный или модульный тест.
Вы можете указать количество брокеров, разделов и т. Д.
Вы можете настроить производителя и потребителя так же, как в противном случае.