Docker Compose ile Apache Kafka, Zookeeper, Redis ve AKHQ Kurulumu
Docker Compose, birden fazla servisi aynı anda kolayca yönetmenizi sağlayan bir araçtır. Bu yazıda, Apache Kafka, Zookeeper, Redis ve Kafka için güçlü bir yönetim aracı olan AKHQ’yi Docker Compose kullanarak nasıl yapılandıracağınızı anlatacağım.
Ön Gereksinimler
Docker ve Docker Compose sisteminizde yüklü olmalıdır. Kurulumlar tamamlandıktan sonra aşağıdaki adımları takip edebilirsiniz.
1. Docker Compose Dosyasının Oluşturulması
Proje dizininizde bir docker-compose.yml
dosyası oluşturun ve aşağıdaki yapılandırmayı ekleyin:
version: "3"
services:
## Zookeeper Service ##
urfet_zookeeper:
container_name: urfet_zookeeper
image: bitnami/zookeeper:latest
restart: unless-stopped
ports:
- '2181:2181'
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
## Kafka Service ##
urfet_kafka:
container_name: urfet_kafka
image: bitnami/kafka:latest
restart: unless-stopped
environment:
- KAFKA_BROKER_ID=1
- KAFKA_LISTENERS=PLAINTEXT://:9092
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://urfet_kafka:9092
- KAFKA_ZOOKEEPER_CONNECT=urfet_zookeeper:2181
- ALLOW_PLAINTEXT_LISTENER=yes
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
ports:
- '9092:9092'
depends_on:
- urfet_zookeeper
## Redis Service ##
urfet_redis:
container_name: urfet_redis
image: redis:latest
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- "./../../DockerDataFiles/redis_data:/data"
## AKHQ (Kafka HQ) Service ##
urfet_akhq:
image: tchiotludo/akhq
container_name: urfet_akhq
ports:
- "8080:8080"
environment:
AKHQ_CONFIGURATION: |
akhq:
server:
access-log: true
connections:
kafka:
properties:
bootstrap.servers: "urfet_kafka:9092"
depends_on:
- urfet_kafka
2. Yapılandırma Açıklamaları
- Zookeeper Servisi
- Zookeeper, Kafka gibi dağıtık sistemlerde koordinasyon ve durum yönetimi için kullanılan bir hizmettir. Bu yapılandırmada, Bitnami'nin Zookeeper imajı kullanılarak 2181 portu üzerinden çalıştırılıyor.
- Kafka Servisi
- Apache Kafka, dağıtık mesajlaşma ve akış platformu olarak yaygın bir şekilde kullanılır. Zookeeper ile entegre bir şekilde çalışır ve 9092 portu üzerinden dış dünyaya açılır. Konfigürasyonlar arasında otomatik konu oluşturma ve plaintext bağlantılarının izin verilmesi gibi ayarlar bulunmaktadır.
- Redis Servisi
- Redis, hafif ve hızlı bir veri depolama çözümüdür. Kalıcı veri depolama için bir yerel dizin Redis'e bağlanmıştır. Redis, önbellekleme veya mesajlaşma sistemi olarak kullanılabilir.
- AKHQ Servisi
- AKHQ (Kafka HQ), Kafka’yı yönetmek için kullanıcı dostu bir web arayüzüdür. Kafka kümelerini, topic’leri ve tüketici gruplarını görselleştirir. Bu yapılandırma ile Kafka’ya 9092 portu üzerinden bağlanır ve 8080 portu ile dış dünyaya açılır.
3. Servislerin Çalıştırılması
Docker Compose dosyasını hazırladıktan sonra, terminal veya komut istemcisinde aşağıdaki komutu çalıştırarak tüm servisleri başlatabilirsiniz:
docker-compose up
Bu komut, Zookeeper, Kafka, Redis ve AKHQ hizmetlerini arka planda çalıştırmaya başlayacaktır. AKHQ ile Kafka kümelerinizi kolayca yönetebilir, mesajları takip edebilir ve kümelerinizin genel durumunu izleyebilirsiniz.
Sonuç
Bu yapılandırma, Kafka, Zookeeper ve Redis gibi dağıtık sistemlerde kritik öneme sahip hizmetleri aynı anda yönetmeyi mümkün kılar. AKHQ ise Kafka'nın yönetimini büyük ölçüde kolaylaştırarak operasyonel yükünüzü azaltır. Mikroservis veya büyük ölçekli sistemlerde mesajlaşma altyapınızı bu servislerle kurarak güvenilir ve performanslı bir yapı elde edebilirsiniz.
Apache Kafka Nedir? Kim Tarafından Geliştirilmiştir ve Amacı Nedir?