I-deploy ang Apache Kafka gamit ang Docker Compose

I Deploy Ang Apache Kafka Gamit Ang Docker Compose



Ang Docker ay isang libre at open-source na containerization software na ganap na nagbago sa tanawin kung paano nag-package at nag-deploy ng mga application ang mga developer. Pinapayagan kami ng Docker na mag-package ng isang application at lahat ng kinakailangang dependencies sa isang entity. Nangangahulugan ito na maaari naming ipamahagi ang pakete, at ang kapaligiran ay maaaring kopyahin sa halos bawat makina nang walang sumasalungat o nawawalang mga pakete.

Sa tutorial na ito, malalaman natin kung paano tayo makakapag-deploy ng Apache Kafka cluster gamit ang docker. Nagbibigay-daan ito sa amin na gamitin ang ibinigay na docker na imahe upang mabilis na paikutin ang isang Kafka cluster sa halos anumang kapaligiran.

Magsimula tayo sa mga pangunahing kaalaman at talakayin kung ano ang Kafka.







Ano ang Apache Kafka?

Ang Apache Kafka ay isang libre, open-source, lubos na nasusukat, distributed, at fault-tolerant publish-subscribe messaging system. Idinisenyo ito upang mahawakan ang isang mataas na volume, mataas na throughput, at real-time na stream ng data, na ginagawa itong angkop para sa maraming mga kaso ng paggamit kabilang ang pagsasama-sama ng log, real-time na analytics, at mga arkitektura na hinimok ng kaganapan.



Ang Kafka ay batay sa isang ipinamamahaging arkitektura na nagbibigay-daan dito na pangasiwaan ang malalaking halaga ng data sa maraming server. Gumagamit ito ng publish-subscribe na modelo kung saan ang mga producer ay nagpapadala ng mga mensahe sa mga paksa at ang mga mamimili ay nag-subscribe sa kanila upang matanggap ang mga ito. Nagbibigay-daan ito para sa decoupled na komunikasyon sa pagitan ng mga producer at consumer, na nagbibigay ng mataas na scalability at flexibility.



Ano ang Docker Compose

Ang docker compose ay tumutukoy sa isang docker plugin o tool para sa pagtukoy at pagpapatakbo ng mga multi-container na application. Binubuo kami ng Docker upang tukuyin ang configuration ng container sa isang YAML file. Kasama sa configuration file ang mga detalye ng container gaya ng mga serbisyo, network, at volume na kinakailangan ng isang application.





Gamit ang docker-compose command, maaari tayong gumawa at magsimula ng maraming container gamit ang isang command.

Pag-install ng Docker at Docker Compose

Ang unang hakbang ay tiyaking na-install mo ang docker sa iyong lokal na makina. Maaari mong suriin ang mga sumusunod na mapagkukunan upang matuto nang higit pa:



  • 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/

Sa pagsulat ng tutorial na ito, ang pag-install ng docker compose ay nangangailangan ng pag-install ng Docker desktop sa iyong target na makina. Samakatuwid, hindi na ginagamit ang pag-install ng docker compose bilang isang standalone unit.

Kapag na-install na namin ang Docker, maaari naming i-configure ang YAML file. Ang file na ito ay naglalaman ng lahat ng mga detalye na kailangan namin upang paikutin ang isang Kafka cluster gamit ang isang docker container.

Pagse-set up ng Docker-Compose.YAML

Lumikha ng docker-compose.yaml at mag-edit gamit ang iyong paboritong text editor:

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

Susunod, idagdag ang docker configuration file tulad ng ipinapakita sa sumusunod:

bersyon : '3'
mga serbisyo :
zookeeper :
larawan : bitnami / zookeeper : 3.8
mga daungan :
- '2181:2181'
mga volume :
- 'zookeeper_data:/bitnami'
kapaligiran :
- ALLOW_ANONYMOUS_LOGIN = oo
kafka :
larawan : docker. ito / bitnami / kafka : 3.3
mga daungan :
- '9092:9092'
mga volume :
- 'kafka_data:/bitnami'
kapaligiran :
- KAFKA_CFG_ZOOKEEPER_CONNECT = zookeeper : 2181
- ALLOW_PLAINTEXT_LISTENER = oo
depende sa :
- zookeeper
mga volume :
zookeeper_data :
driver : lokal
kafka_data :
driver : lokal

Ang halimbawang docker file ay nagse-set up ng Zookeeper at Kafka cluster kung saan nakakonekta ang Kafka cluster sa serbisyo ng Zookeeper para sa koordinasyon. Kino-configure din ng file ang mga port at mga variable ng kapaligiran para sa bawat serbisyo upang payagan ang komunikasyon at pag-access sa mga serbisyo.

Ise-set up din namin ang mga pinangalanang volume upang ipagpatuloy ang data ng mga serbisyo kahit na ang mga container ay na-restart o muling ginawa.

Hatiin natin ang nakaraang file sa mga simpleng seksyon:

Nagsisimula kami sa serbisyo ng Zookeeper gamit ang bitnami/zookeeper:3.8 na imahe. Ang larawang ito ay nagmamapa ng port 2181 sa host machine sa port 2181 sa container. Itinakda rin namin ang ALLOW_ANONYMOUS_LOGIN na environment variable sa “oo”. Sa wakas, itinakda namin ang volume kung saan iniimbak ng serbisyo ang data bilang zookeeper_data volume.

Tinutukoy ng pangalawang bloke ang mga detalye para i-set up ang serbisyo ng Kafka. Sa kasong ito, ginagamit namin ang docker.io/bitnami/kafka:3.3 na imahe na nagmamapa ng host port 9092 sa container port 9092. Katulad nito, tinutukoy din namin ang variable na kapaligiran ng KAFKA_CFG_ZOOKEEPER_CONNECT at itinakda ang halaga nito sa address ng Zookeeper bilang nakamapa sa port 2181. Ang pangalawang environment variable na aming tinukoy sa seksyong ito ay ang ALLOW_PLAINTEXT_LISTENER na environment variable. Ang pagtatakda ng value ng environment variable na ito sa 'oo' ay nagbibigay-daan para sa hindi secure na trapiko sa Kafka cluster.

Sa wakas, ibinibigay namin ang dami kung saan iniimbak ng serbisyo ng Kafka ang data nito.

Upang matiyak na kino-configure ng docker ang mga volume para sa Zookeeper at Kafka, kailangan nating tukuyin ang mga ito tulad ng ipinapakita sa seksyon ng volume. Ise-set up nito ang mga volume ng zookeeper_data at kafka_data. Ang parehong mga volume ay gumagamit ng lokal na driver na nangangahulugan na ang data ay naka-imbak sa host machine.

Ayan na! Isang simpleng configuration file na nagbibigay-daan sa iyong iikot ang isang Kafka container gamit ang docker sa mga simpleng hakbang.

Pagpapatakbo ng Lalagyan

Para matiyak na tumatakbo ang docker, maaari naming patakbuhin ang container mula sa YAML file gamit ang sumusunod na command:

$ sudo mag-compose ng docker

Dapat mahanap ng command ang YAML configuration file at patakbuhin ang container na may mga tinukoy na value:

Konklusyon

Natutunan mo na ngayon kung paano mo maaaring i-configure at patakbuhin ang Apache Kafka mula sa isang docker compose YAML configuration file.