Настройка локального контейнера Kafka для приложения Spring Boot

В сегодняшней архитектуре микросервисов и событий, Apache Kafka является де-факто для потоковых приложений. Однако настройка Kafka для локальной разработки в сочетании с вашим приложением Spring Boot может быть сложной, особенно когда речь идет о конфигурации для локального запуска.

Приложение Spring Boot предоставляет поддержку интеграции с Kafka через пакет spring-kafka в Maven. Для работы с spring-kafka нам нужно подключиться к экземпляру Kafka. Обычно, во время разработки, мы просто запускаем локальный экземпляр Kafka и строим против него. Но с Docker Desktop и контейнерами, все намного проще настроить, чем запускать локальный экземпляр Kafka. Эта статья проведет нас через шаги по настройке локального контейнера Kafka с приложением Spring Boot.

Предварительные требования

  1. Нам необходимо установить Docker Desktop. Для этого мы можем обратиться к этой статье.
  2. Приложение Spring Boot с настроенным пакетом spring-kafka.

Запуск контейнера Kafka

Для запуска контейнера Kafka мы сначала используем следующий файл docker-compose:

YAML

 

Этот файл docker-compose содержит конфигурации для загрузки контейнера Kafka и его зависимости, контейнера Zookeeper. Zookeeper управляет узлами брокеров Kafka в кластере; более подробную информацию можно найти в этой статье.

Для регистрации контейнеров с Docker Desktop мы используем следующую команду:

PowerShell

 

Это загрузит необходимые образы и запустит контейнеры, и как только контейнеры будут запущены, вы сможете увидеть их в Docker Desktop, как показано ниже:

Теперь, когда контейнер Kafka запущен, мы можем создать необходимые темы, используя консоль Docker Desktop, с помощью следующей команды:

PowerShell

 

Теперь, когда контейнер запущен и необходимые предварительные условия выполнены, мы можем запустить приложение Spring Boot. Для приложения Spring Boot настройте адрес начальной загрузки Kafka следующим образом:

Properties files

 

Когда мы запустим приложение Spring Boot, мы должны увидеть логи соединения с Kafka, в зависимости от типа приложения Spring Boot, будь то производитель или потребитель.

Следуя шагам, изложенным в статье, мы настроили локальную среду разработки, используя контейнер Kafka и приложение Spring Boot.

Source:
https://dzone.com/articles/setting-up-local-kafka-container-for-spring-boot-application