Как создать тему Kafka с помощью Docker Compose

1 feb 2024 2 min di lettura
Как создать тему Kafka с помощью Docker Compose
Indice dei contenuti

Введение

Apache Kafka — это распределенная потоковая платформа, которая позволяет создавать конвейеры и приложения потоковой передачи данных в реальном времени. Настройка Kafka может быть сложной, но Docker Compose упрощает процесс, определяя и запуская многоконтейнерные приложения Docker. В этом руководстве представлен пошаговый подход к созданию темы Kafka с помощью Docker Compose, что делает его доступным как для разработчиков, так и для специалистов DevOps.

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

Прежде чем приступить к процессу создания, убедитесь, что в вашей системе установлены следующие необходимые компоненты:

  • Docker — предоставляет возможность создавать, развертывать и запускать приложения с использованием контейнеров.
  • Docker Compose — инструмент для определения и запуска многоконтейнерных приложений Docker.

Шаг 1. Создайте файл компоновки Docker.

Первый шаг включает создание файла docker-compose.yml. Этот файл определяет службы Kafka и Zookeeper, необходимые для запуска экземпляра Kafka. Zookeeper — это централизованный сервис для хранения информации о конфигурации, именования, распределенной синхронизации и предоставления групповых сервисов.


version: '3'
 services:
 zookeeper:
 image: wurstmeister/zookeeper
 container_name: zookeeper
 ports:
 - "2181:2181"
 networks:
 - kafka-net
 kafka:
 image: wurstmeister/kafka
 container_name: kafka
 ports:
 - "9092:9092"
 environment:
 KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9093
 KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
 KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9093
 KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE
 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
 KAFKA_CREATE_TOPICS: "YourTopicName:1:1"
 networks:
 - kafka-net
 networks:
 kafka-net:
 driver: bridge

Замените YourTopicName желаемым именем вашей темы Kafka. Формат переменной среды KAFKA_CREATE_TOPICS — TopicName:NumberOfPartitions:ReplicationFactor.

Шаг 2. Запуск Docker Compose

Перейдите в каталог, содержащий файл docker-compose.yml, и выполните в терминале следующую команду:

docker-compose up -d

Эта команда загрузит образы Docker, необходимые для Kafka и Zookeeper, а затем запустит контейнеры в автономном режиме.

Шаг 3. Подтвердите создание темы.

Чтобы убедиться, что тема Kafka создана, вы можете использовать инструмент командной строки Kafka Topics, который входит в состав Kafka. Выполните следующую команду, чтобы просмотреть список тем и убедиться, что тема создана:

docker-compose exec kafka kafka-topics.sh --list --zookeeper zookeeper:2181

Вы должны увидеть YourTopicName в списке тем.

Шаг 4: Производство и потребление сообщений

Для дальнейшего тестирования вашей настройки вы можете создавать и использовать сообщения с помощью сценариев производителя и потребителя консоли Kafka.

Производство сообщений:

В контейнере Kafka bash запустите:

docker-compose exec kafka kafka-console-producer.sh --broker-list localhost:9092 --topic YourTopicName

После запуска команды вы можете набирать сообщения в консоли. Нажмите Ctrl+D, чтобы отправить сообщение.

Потребление сообщений:

Откройте еще один сеанс терминала, снова получите доступ к контейнеру Kafka и запустите:

docker-compose exec kafka kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic YourTopicName --from-beginning

Вы должны увидеть сообщения, которые вы создали ранее.

Шаг 4. Создайте тему Kafka (необязательно).

По умолчанию Docker создает темы, определенные с помощью переменной KAFKA_CREATE_TOPICS в файле docker-compose.yaml. Но вы все равно можете создавать новые темы Kafka с помощью следующей команды:

docker-compose exec kafka kafka-topics.sh --create --topic NewTopicName --partitions 1 --replication-factor 1 --bootstrap-server kafka:9092

Замените «NewTopicName» названием новой темы. Приведенная выше команда инициализирует новую тему и настраивается с одним разделом и одной репликой через брокер Kafka через порт 9092.

Затем перечислите темы, чтобы убедиться, что тема была создана:

docker-compose exec kafka kafka-topics.sh --list --zookeeper zookeeper:2181

Здесь будут перечислены все темы, включая созданные выше.

ПРИМЕЧАНИЕ. Из-за ограничений в именах метрик аргументы с точкой («.») или подчеркиванием («_») могут конфликтовать. Чтобы избежать проблем, лучше использовать один, а не оба.

Заключение

Теперь вы успешно создали тему Kafka с помощью Docker Compose и проверили ее функциональность, создавая и потребляя сообщения. Эта настройка не только упрощает процесс управления Kafka, но также обеспечивает масштабируемую и легко воспроизводимую среду для ваших потоковых приложений. Независимо от того, занимаетесь ли вы разработкой локально или развертываете в производственной среде, Docker Compose с Kafka предлагает мощный набор инструментов для упрощения конвейеров потоковой передачи данных.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.