Начало работы с Apache Kafka в Docker: пошаговая инструкция
Apache Kafka, платформа потоковой передачи данных, является мощным инструментом для создания конвейеров данных и приложений в режиме реального времени. Docker упрощает процесс локальной установки Kafka, позволяя разработчикам импровизировать и экспериментировать с непревзойденной легкостью. В этой статье мы рассмотрим шаги по загрузке, установке и запуску Apache Kafka с помощью Docker.
Необходимые условия:
Прежде чем мы приступим к работе, убедитесь в том, что у Вас уже есть Docker. Вы можете скачать его с официального сайта.
Шаг 1: Создание файла Docker Compose
Создайте файл docker-compose.yml в новом каталоге для того, чтобы определить сервисы Kafka и Zookeeper. Скопируйте и вставьте следующее:
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper:latest
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka:latest
ports:
- "9092:9092"
expose:
- "9093"
environment:
KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9093,OUTSIDE://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
KAFKA_LISTENERS: INSIDE://0.0.0.0:9093,OUTSIDE://0.0.0.0:9092
KAFKA_INTER_BROKER_LISTENER_NAME: INSIDE KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "my-topic:1:1"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
В этом файле docker-compose.yml определены два сервиса: zookeeper и kafka. Служба Kafka настроена на открытие портов 9092 и 9093.
Шаг 2: Запуск Docker Compose
Откройте терминал в каталоге, в котором находится файл docker-compose.yml, для запуска контейнеров Kafka и Zookeeper выполните следующую команду:
docker-compose up -d
Эта команда загрузит необходимые образы Docker и запустит сервисы Kafka и Zookeeper в отсоединенном режиме (-d).
Шаг 3: Проверка работы контейнера Kafka
Проверьте, запущен ли контейнер Kafka, выполнив следующую команду:
docker ps
В списке должны появиться контейнеры для Kafka и Zookeeper.
Шаг 4: Создание топика Kafka
Создайте новый топик Kafka:
docker exec -it <kafka-container-id> /opt/kafka/bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic my-topic
Замените <kafka-container-id> на фактический идентификатор контейнера Kafka (его можно найти с помощью docker ps).
Шаг 5: Создание и потребление сообщений
Для тестирования настройки Kafka используйте консоль продюсеров и консюмеров Kafka:
Создание сообщений:
docker exec -it <kafka-container-id> /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic my-topic
Потребление сообщений:
docker exec -it <kafka-container-id> /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my-topic --from-beginning
Замените <kafka-container-id> на фактический идентификатор контейнера Kafka.
Шаг 6: Остановка и удаление контейнеров
Для остановки и удаления контейнеров Kafka и Zookeeper выполните следующую команду:
docker-compose down
Это остановит и удалит контейнеры, созданные командой docker-compose up.
Заключение
Поздравляем! Вы успешно настроили и запустили Apache Kafka в Docker. Это практическое руководство дает возможность создать простую, но мощную среду для экспериментов с Kafka. Продолжая изучать Kafka, обязательно рассмотрите возможность ее интеграции в свои приложения для того, чтобы использовать все ее возможности для создания конвейеров данных в режиме реального времени.
Успехов!




