Arşivler

Docker ile Apache Kafka Kurulumu ve Kullanımı

Docker Apache Kafka Broker Kurulumu
Docker Apache Kafka Broker Kurulumu

Bu yazıda Docker aracılığı ile bilgisayarımızda Apache Kafka nasıl kurulur? Topic nasıl oluşturulur, Broker’ı başlatma ve Broker’a mesaj gönderip, mesajı okuma işlemleri nasıl olmaktadır gibi konulardan bahsedeceğim.

İlgini Çekebilir: Spring Boot Apache Kafka Uygulaması

Docker Dosyası Oluşturma ve Kurulumu

version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:7.0.1
    container_name: zookeeper
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
  broker:
    image: confluentinc/cp-kafka:7.0.1
    container_name: broker
    ports:
      - "9092:9092"
    depends_on:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_INTERNAL:PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092,PLAINTEXT_INTERNAL://broker:29092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
Code language: JavaScript (javascript)

docker-compose.yml adında bu docker dosyamızı kayıt edelim.

Ardından docker compose up -d diyerek Kafka Broker’ımızın inmesini bekliyoruz. Ve sonunda aşağıdaki mesajı aldıktan sonra tamamlanmış olduğunu anlıyoruz.

Creating zookeeper ... done
Creating broker    ... done

Apache Kafka Docker’ımızı çalıştırdık.

docker ps

yazarak şu an çalışıp çalışmadığını kontrol edebiliriz. Eğer çalışıyor olarak gözüküyorsa diğer işlemlere devam edebiliriz.

Topic Oluşturmak

Kafka Broker’imize topic oluşturmak için ise çalışan Docker imajının içerisine girerek kafka cli üzerinden topic oluşturacağız. Çalışan Kafka imajımızın içerisine girebilmek için exec komutundan faydalanıyoruz.

docker exec broker \                                                                                                                                                ✔  17:21:10
kafka-topics --bootstrap-server broker:9092 \
             --create \
             --topic exampletopicCode language: CSS (css)

exampletopic adında bir topic oluşturmak için çalışan ilgili broker’a create etmek için yukarıdaki komutu kullanıyoruz.

Topic’in oluştuğunu anlamak için ise aşağıdaki mesajı almalıyız.

Created topic exampletopic.

Kafkayı Durdurmak

Çalışan Kafka Broker Docker imajımızı durdurmak için ise aşağıdaki komutu yazmamız yeterli olmaktadır. Bu komutu yazarken docker dosyamızın içerisinde bulunduğu konumda yazmalıyız. Aksi takdirde container id’ye göre kapatmamız gerekir.

docker-compose down