Развертывание Apache Kafka с помощью Docker Compose

Razvertyvanie Apache Kafka S Pomos U Docker Compose



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

В этом руководстве мы узнаем, как мы можем развернуть кластер Apache Kafka с помощью файла docker. Это позволяет нам использовать предоставленный образ докера для быстрого запуска кластера Kafka практически в любой среде.

Давайте начнем с основ и обсудим, что такое Кафка.







Что такое Апач Кафка?

Apache Kafka — это бесплатная, широкомасштабируемая, распределенная и отказоустойчивая система обмена сообщениями типа «публикация-подписка» с открытым исходным кодом. Он предназначен для обработки больших объемов, высокой пропускной способности и потоков данных в реальном времени, что делает его подходящим для многих вариантов использования, включая агрегирование журналов, аналитику в реальном времени и архитектуры, управляемые событиями.



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



Что такое Docker Compose

Docker compose относится к плагину или инструменту Docker для определения и запуска многоконтейнерных приложений. Docker предлагает нам определить конфигурацию контейнера в файле YAML. Файл конфигурации включает спецификации контейнера, такие как службы, сети и тома, которые требуются приложению.





Используя команду docker-compose, мы можем создать и запустить несколько контейнеров с помощью одной команды.

Установка Docker и Docker Compose

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



  • https://linuxhint.com/install_configure_docker_ubuntu/
  • https://linuxhint.com/install-docker-debian/
  • https://linuxhint.com/install_docker_debian_10/
  • https://linuxhint.com/install-docker-ubuntu-22-04/
  • https://linuxhint.com/install-docker-on-pop_os/
  • https://linuxhint.com/how-to-install-docker-desktop-windows/
  • https://linuxhint.com/install-use-docker-centos-8/
  • https://linuxhint.com/install_docker_on_raspbian_os/

На момент написания этого руководства для установки docker compose требуется установка рабочего стола Docker на целевом компьютере. Следовательно, установка docker compose как отдельного модуля не рекомендуется.

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

Настройка Docker-Compose.YAML

Создайте файл docker-compose.yaml и отредактируйте его в своем любимом текстовом редакторе:

$ touch docker-compose.yaml
$ vim docker-compose.yaml

Затем добавьте файл конфигурации докера, как показано ниже:

версия : «3»
услуги :
работник зоопарка :
изображение : bitnami / работник зоопарка : 3,8
порты :
- '2181:2181'
тома :
- 'zookeeper_data:/bitnami'
среда :
- ALLOW_ANONYMOUS_LOGIN '=' да
кафка :
изображение : докер. этот / bitnami / кафка : 3.3
порты :
- '9092:9092'
тома :
- 'kafka_data:/битнами'
среда :
- KAFKA_CFG_ZOOKEEPER_CONNECT '=' работник зоопарка : 2181
- ALLOW_PLAINTEXT_LISTENER '=' да
зависит от :
- работник зоопарка
тома :
zookeeper_data :
Водитель : местный
кафка_данные :
Водитель : местный

В примере файла докера настраиваются Zookeeper и кластер Kafka, где кластер Kafka подключен к службе Zookeeper для координации. Файл также настраивает порты и переменные среды для каждой службы, чтобы разрешить связь и доступ к службам.

Мы также настраиваем именованные тома для сохранения данных служб, даже если контейнеры перезапускаются или создаются заново.

Разобьем предыдущий файл на простые разделы:

Начнем со службы Zookeeper, используя образ bitnami/zookeeper:3.8. Затем этот образ сопоставляет порт 2181 на хост-компьютере с портом 2181 в контейнере. Мы также устанавливаем для переменной среды ALLOW_ANONYMOUS_LOGIN значение «да». Наконец, мы устанавливаем том, на котором служба хранит данные, как том zookeeper_data.

Второй блок определяет детали для настройки службы Kafka. В этом случае мы используем образ docker.io/bitnami/kafka:3.3, который сопоставляет порт хоста 9092 с портом контейнера 9092. Аналогичным образом мы также определяем переменную среды KAFKA_CFG_ZOOKEEPER_CONNECT и устанавливаем ее значение на адрес Zookeeper, как сопоставлено с порт 2181. Вторая переменная среды, которую мы определяем в этом разделе, — это переменная среды ALLOW_PLAINTEXT_LISTENER. Установка для этой переменной среды значения «да» разрешает незащищенный трафик к кластеру Kafka.

Наконец, мы предоставляем том, на котором сервис Kafka хранит свои данные.

Чтобы гарантировать, что докер настроит тома для Zookeeper и Kafka, нам нужно определить их, как показано в разделе томов. Это устанавливает тома zookeeper_data и kafka_data. Оба тома используют локальный драйвер, что означает, что данные хранятся на хост-компьютере.

Вот оно! Простой файл конфигурации, который позволяет за несколько простых шагов развернуть контейнер Kafka с помощью докера.

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

Чтобы убедиться, что докер работает, мы можем запустить контейнер из файла YAML с помощью следующей команды:

$ судо докер сочинять

Команда должна найти файл конфигурации YAML и запустить контейнер с указанными значениями:

Заключение

Теперь вы узнали, как настроить и запустить Apache Kafka из файла конфигурации YAML, созданного докером.