Разположете Apache Kafka с Docker Compose

Razpolozete Apache Kafka S Docker Compose



Docker е безплатен софтуер за контейнеризиране с отворен код, който напълно промени пейзажа на начина, по който разработчиците пакетират и внедряват приложения. Docker ни позволява да пакетираме приложение и всички необходими зависимости в едно цяло. Това означава, че можем да разпространяваме пакета и средата може да бъде копирана в почти всяка машина без конфликт или липсващи пакети.

В този урок ще научим как можем да разположим клъстер Apache Kafka с помощта на докера. Това ни позволява да използваме предоставеното изображение на докер за бързо завъртане на Kafka клъстер в почти всяка среда.

Нека започнем с основите и да обсъдим какво е Кафка.







Какво е Apache Kafka?

Apache Kafka е безплатна, с отворен код, силно мащабируема, разпределена и устойчива на грешки система за публикуване и абониране на съобщения. Той е проектиран да обработва голям обем, висока пропускателна способност и поток от данни в реално време, което го прави подходящ за много случаи на употреба, включително агрегиране на журнали, анализи в реално време и управлявани от събития архитектури.



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



Какво е Docker Compose

Docker compose се отнася до докер плъгин или инструмент за дефиниране и изпълнение на многоконтейнерни приложения. 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 и редактирайте с любимия си текстов редактор:

$ докоснете 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:/bitnami'
заобикаляща среда :
- KAFKA_CFG_ZOOKEEPER_CONNECT = зоологическа градина : 2181
- ALLOW_PLAINTEXT_LISTENER = да
зависи от :
- зоологическа градина
обеми :
zookeeper_data :
шофьор : местен
kafka_данни :
шофьор : местен

Примерният докер файл настройва Zookeeper и Kafka клъстер, където Kafka клъстерът е свързан към услугата Zookeeper за координация. Файлът също така конфигурира портовете и променливите на средата за всяка услуга, за да позволи комуникация и достъп до услугите.

Ние също така настройваме именуваните томове, за да запазват данните на услугите, дори ако контейнерите се рестартират или създават отново.

Нека разделим предишния файл на прости секции:

Започваме с услугата Zookeeper, използвайки изображението bitnami/zookeeper:3.8. След това това изображение картографира порт 2181 на хост машината към порт 2181 на контейнера. Също така задаваме променливата на средата ALLOW_ANONYMOUS_LOGIN на „да“. Накрая задаваме тома, на който услугата съхранява данните като zookeeper_data volume.

Вторият блок определя детайлите за настройка на услугата 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 файла със следната команда:

$ sudo докер съставяне

Командата трябва да намери YAML конфигурационния файл и да стартира контейнера с посочените стойности:

Заключение

Вече научихте как можете да конфигурирате и стартирате Apache Kafka от YAML конфигурационен файл за композиране на докер.