Docker Compose ile Apache Kafka'yı dağıtın

Docker Compose Ile Apache Kafka Yi Dagitin



Docker, geliştiricilerin uygulamaları paketleme ve devreye alma şeklini tamamen değiştiren ücretsiz ve açık kaynaklı bir konteynerleştirme yazılımıdır. Docker, bir uygulamayı ve gerekli tüm bağımlılıkları tek bir varlıkta paketlememize olanak tanır. Bu, paketi dağıtabileceğimiz ve ortamın hemen hemen her makinede çakışan veya eksik paketler olmadan kopyalanabileceği anlamına gelir.

Bu öğreticide, docker'ı kullanarak bir Apache Kafka kümesini nasıl konuşlandırabileceğimizi öğreneceğiz. Bu, hemen hemen her ortamda bir Kafka kümesini hızlı bir şekilde döndürmek için sağlanan docker görüntüsünü kullanmamıza izin verir.

Temel bilgilerle başlayalım ve Kafka'nın ne olduğunu tartışalım.







Apache Kafka Nedir?

Apache Kafka, ücretsiz, açık kaynaklı, yüksek düzeyde ölçeklenebilir, dağıtılmış ve hataya dayanıklı bir yayınla-abone ol mesajlaşma sistemidir. Yüksek hacimli, yüksek verimli ve gerçek zamanlı veri akışını işlemek üzere tasarlanmıştır ve bu da onu günlük toplama, gerçek zamanlı analitik ve olay güdümlü mimariler dahil olmak üzere birçok kullanım durumu için uygun hale getirir.



Kafka, birden çok sunucuda büyük miktarda veriyi işlemesine izin veren dağıtılmış bir mimariye dayanır. Üreticilerin konulara mesaj gönderdiği ve tüketicilerin bunları almak için abone oldukları bir yayınla-abone ol modelini kullanır. Bu, yüksek ölçeklenebilirlik ve esneklik sağlayarak, üreticiler ve tüketiciler arasında ayrıştırılmış iletişime izin verir.



Docker Oluşturma Nedir?

Docker oluşturma, çok kapsayıcı uygulamaları tanımlamak ve çalıştırmak için bir docker eklentisi veya aracı anlamına gelir. Docker, bizi bir YAML dosyasındaki kapsayıcı yapılandırmasını tanımlamamız için oluşturur. Yapılandırma dosyası, bir uygulamanın gerektirdiği hizmetler, ağlar ve birimler gibi kapsayıcı belirtimlerini içerir.





docker-compose komutunu kullanarak, tek bir komutla birden çok container oluşturabilir ve başlatabiliriz.

Docker ve Docker Compose'u Yükleme

İlk adım, liman işçisini yerel makinenize kurduğunuzdan emin olmaktır. Daha fazla bilgi edinmek için aşağıdaki kaynakları kontrol edebilirsiniz:



  • 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/
  • 0CE485D339926C718DC100EF344BB17AF0132KÖTÜ
  • https://linuxhint.com/install-use-docker-centos-8/
  • https://linuxhint.com/install_docker_on_raspbian_os/

Bu öğreticiyi yazarken, docker oluşturmanın yüklenmesi, Docker masaüstünün hedef makinenize yüklenmesini gerektirir. Bu nedenle, liman işçisi oluşturmanın bağımsız bir birim olarak yüklenmesi kullanımdan kaldırılmıştır.

Docker'ı kurduktan sonra YAML dosyasını yapılandırabiliriz. Bu dosya, bir liman konteyneri kullanarak bir Kafka kümesi oluşturmak için ihtiyacımız olan tüm ayrıntıları içerir.

Docker-Compose.YAML'yi kurma

docker-compose.yaml dosyasını oluşturun ve favori metin düzenleyicinizle düzenleyin:

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

Ardından, docker yapılandırma dosyasını aşağıda gösterildiği gibi ekleyin:

sürüm : '3'
Hizmetler :
hayvan bekçisi :
görüntü : bitnami / hayvan bekçisi : 3.8
bağlantı noktaları :
- '2181:2181'
birimler :
- 'zookeeper_data:/bitnami'
çevre :
- ALLOW_ANONYMOUS_LOGIN = Evet
kafka :
görüntü : liman işçisi. Bu / bitnami / kafka : 3.3
bağlantı noktaları :
- '9092:9092'
birimler :
- 'kafka_data:/bitnami'
çevre :
- KAFKA_CFG_ZOOKEEPER_CONNECT = hayvan bekçisi : 2181
- ALLOW_PLAINTEXT_LISTENER = Evet
bağlıdır :
- hayvan bekçisi
birimler :
zookeeper_data :
sürücü : yerel
kafka_data :
sürücü : yerel

Örnek liman işçisi dosyası, koordinasyon için Kafka kümesinin Zookeeper hizmetine bağlı olduğu bir Zookeeper ve bir Kafka kümesi kurar. Dosya ayrıca, iletişim ve hizmetlere erişim sağlamak için her hizmet için bağlantı noktalarını ve ortam değişkenlerini yapılandırır.

Ayrıca, kapsayıcılar yeniden başlatılsa veya yeniden oluşturulsa bile hizmetlerin verilerini sürdürmek için adlandırılmış hacimleri ayarladık.

Önceki dosyayı basit bölümlere ayıralım:

Bitnami/zookeeper:3.8 görüntüsünü kullanarak Zookeeper hizmetiyle başlıyoruz. Bu görüntü daha sonra ana makinedeki 2181 numaralı bağlantı noktasını kapsayıcıdaki 2181 numaralı bağlantı noktasına eşler. ALLOW_ANONYMOUS_LOGIN ortam değişkenini de “yes” olarak ayarladık. Son olarak servisin verileri sakladığı hacmi zookeeper_data volume olarak ayarlıyoruz.

İkinci blok, Kafka hizmetini kurmak için ayrıntıları tanımlar. Bu durumda, ana bilgisayar bağlantı noktası 9092'yi kapsayıcı bağlantı noktası 9092 ile eşleyen docker.io/bitnami/kafka:3.3 görüntüsünü kullanıyoruz. Benzer şekilde, KAFKA_CFG_ZOOKEEPER_CONNECT ortam değişkenini de tanımlıyoruz ve değerini Zookeeper'ın adresine eşlendiği şekilde ayarlıyoruz. port 2181. Bu bölümde tanımladığımız ikinci ortam değişkeni ALLOW_PLAINTEXT_LISTENER ortam değişkenidir. Bu ortam değişkeninin değerinin 'evet' olarak ayarlanması, Kafka kümesine güvenli olmayan trafiğe izin verir.

Son olarak, Kafka hizmetinin verilerini depoladığı birimi sağlıyoruz.

Docker'ın Volume'ları Zookeeper ve Kafka için yapılandırmasını sağlamak için, Volumes bölümünde gösterildiği gibi tanımlamamız gerekiyor. Bu, zookeeper_data ve kafka_data birimlerini ayarlar. Her iki birim de yerel sürücüyü kullanır, bu da verilerin ana makinede depolandığı anlamına gelir.

İşte aldın! Docker kullanarak basit adımlarla bir Kafka kapsayıcısını döndürmenizi sağlayan basit bir yapılandırma dosyası.

Kapsayıcıyı Çalıştırma

Docker'ın çalıştığından emin olmak için, kapsayıcıyı YAML dosyasından aşağıdaki komutla çalıştırabiliriz:

$ sudo liman işçisi oluştur

Komut, YAML yapılandırma dosyasını bulmalı ve kapsayıcıyı belirtilen değerlerle çalıştırmalıdır:

Çözüm

Artık bir docker compose YAML yapılandırma dosyasından Apache Kafka'yı nasıl yapılandırabileceğinizi ve çalıştırabileceğinizi öğrendiniz.