Apache Kafka Kurulumu

apache kafka cpynet

Apache Kafka, yüksek verimlilik, ölçeklenebilirlik ve dayanıklılık özelliklerine sahip, dağıtık bir olay akışı platformudur. Kafka, veri akışlarını gerçek zamanlı olarak işlemek ve yönetmek için kullanılan bir mesajlaşma sistemidir. Genellikle büyük veri uygulamalarında ve mikro hizmet mimarilerinde veri iletişimi için tercih edilir. Kafka, verileri “topic” adı verilen kategorilerde saklar ve bu kategoriler aracılığıyla farklı sistemler arasında mesaj iletimini sağlar.

Kafka’nın temel bileşenleri şunlardır:

  • Producers: Mesajları belirli bir topic’e gönderen uygulamalar.
  • Consumers: Topic’ten mesajları okuyan uygulamalar.
  • Brokers: Mesajları saklayan sunucular.
  • Zookeeper: Kafka cluster’ını yöneten bir hizmet.

Kafka’nın sağladığı avantajlar arasında şunlar bulunur:

  • Gerçek Zamanlı Veri İşleme: Kafka, verileri hemen işleyebilir ve hızlı yanıt süreleri sunar.
  • Yüksek Verimlilik: Yüksek hacimli verileri sorunsuz bir şekilde işleyebilir.
  • Dayanıklılık ve Ölçeklenebilirlik: Veri kaybını önlemek için veri çoğaltma ve dağıtık mimari ile yüksek ölçeklenebilirlik sunar.

Örnek Senaryolar

  1. Gerçek Zamanlı Analiz: Bir e-ticaret platformu, kullanıcı etkinliklerini izlemek ve analiz etmek için Kafka kullanabilir. Kullanıcıların hangi ürünleri görüntülediğini, sepete hangi ürünleri eklediğini ve satın alma işlemlerini gerçek zamanlı olarak takip ederek pazarlama stratejilerini geliştirebilir.
  2. Mikro Hizmet İletişimi: Mikro hizmet mimarisine sahip bir uygulama, hizmetler arasında veri iletimi için Kafka’yı kullanabilir. Örneğin, bir kullanıcı kaydı işlemi sırasında, bir mikro hizmet kullanıcı verilerini oluştururken, başka bir mikro hizmet bu verileri işleyebilir veya analiz edebilir.
  3. Log Toplama ve İzleme: Farklı sistemlerden gelen log verilerini toplamak ve analiz etmek için Kafka kullanılabilir. Uygulama sunucularından gelen loglar, Kafka üzerinden toplanarak merkezi bir log yönetim sistemine iletilir.
  4. Finansal Veri Akışı: Bir finansal hizmetler şirketi, borsa verilerini ve piyasa hareketlerini izlemek için Kafka kullanabilir. Gerçek zamanlı veri akışları, alım satım kararlarının hızla alınmasına yardımcı olur.

Kurulum ve Yapılandırma

Bu makalede, Kafka’nın 3.8.0 sürümünü üç farklı yöntemle kuracağız: standart kurulum, bir .sh dosyası ile kurulum ve Docker kullanarak kurulum. Ayrıca, yaygın hatalar ve çözümlerini de inceleyeceğiz.

Gereksinimler

  • OpenJDK 11 veya üstü: Kafka’nın çalışması için Java JDK’nın yüklü olması gerekmektedir.
  • Zookeeper: Kafka, cluster yönetimi için Zookeeper’a ihtiyaç duyar. Zookeeper, Kafka ile birlikte gelir ve ayrı olarak yüklenmesine gerek yoktur.

1. Standart Kurulum

1.1. OpenJDK 11 Yükleme

Aşağıdaki komut ile OpenJDK 11’i yükleyin:

sudo apt update
sudo apt install -y openjdk-11-jdk

Kurulumun başarılı olup olmadığını kontrol edin:

java -version

1.2. Apache Kafka İndirme

Apache Kafka 3.8.0 sürümünü indirmek için şu komutu kullanın:

wget https://archive.apache.org/dist/kafka/3.8.0/kafka_2.13-3.8.0.tgz

1.3. İçeriği Çıkarma

İndirdiğiniz dosyayı çıkarın:

tar -xzf kafka_2.13-3.8.0.tgz
mv kafka_2.13-3.8.0 ~/kafka

1.4. Zookeeper’ı Başlatma

Zookeeper’ı başlatmak için şu komutu kullanın:

~/kafka/bin/zookeeper-server-start.sh ~/kafka/config/zookeeper.properties

1.5. Kafka’yı Başlatma

Kafka’yı başlatmak için başka bir terminal penceresi açın ve şu komutu çalıştırın:

~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties

1.6. Konfigürasyon

~/kafka/config/server.properties dosyasını düzenleyerek ayarları yapılandırabilirsiniz. Örneğin, dinleme portunu değiştirmek için şu satırı güncelleyebilirsiniz:

listeners=PLAINTEXT://0.0.0.0:9092

2. .sh Dosyası ile Kurulum

Aşağıda, Kafka’yı kurmak için kullanabileceğiniz bir .sh dosyası örneği bulunmaktadır.

2.1. Kurulum Scripti

install_kafka.sh adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:

#!/bin/bash

# OpenJDK 11 yükleme
sudo apt update
sudo apt install -y openjdk-11-jdk

# Apache Kafka indirme
wget https://archive.apache.org/dist/kafka/3.8.0/kafka_2.13-3.8.0.tgz

# İçeriği çıkarma
tar -xzf kafka_2.13-3.8.0.tgz
mv kafka_2.13-3.8.0 ~/kafka

# Zookeeper'ı başlatma
~/kafka/bin/zookeeper-server-start.sh ~/kafka/config/zookeeper.properties &

# Kafka'yı başlatma
~/kafka/bin/kafka-server-start.sh ~/kafka/config/server.properties

2.2. Scripti Çalıştırma

Scriptin çalıştırılabilir hale gelmesi için aşağıdaki komutu kullanın:

chmod +x install_kafka.sh

Daha sonra scripti çalıştırın:

./install_kafka.sh

3. Docker Kullanarak Kurulum

Kafka’yı Docker kullanarak kurmak için aşağıdaki adımları izleyin.

3.1. Docker Compose Dosyası Oluşturma

docker-compose.yml adında bir dosya oluşturun ve aşağıdaki içeriği ekleyin:

version: '3'

services:
  zookeeper:
    image: wurstmeister/zookeeper:3.4.6
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka:3.8.0
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: INSIDE://kafka:9092,OUTSIDE://localhost:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT
      KAFKA_LISTENERS: INSIDE://0.0.0.0:9092,OUTSIDE://0.0.0.0:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    depends_on:
      - zookeeper

3.2. Docker Compose ile Başlatma

Aşağıdaki komut ile Docker konteynerlerini başlatın:

docker-compose up -d

3.3. Kafka’ya Bağlanma

Kafka konteyneri başlatıldıktan sonra, başka bir terminal penceresinde Kafka’ya bağlanmak için aşağıdaki komutları kullanabilirsiniz.

Topic Oluşturma

docker exec -it <kafka_container_name> kafka-topics.sh --create --topic deneme-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

Mesaj Gönderme

echo "Merhaba Kafka!" | docker exec -i <kafka_container_name> kafka-console-producer.sh --topic deneme-topic --bootstrap-server localhost:9092

Mesaj Alma

docker exec -it <kafka_container_name> kafka-console-consumer.sh --topic deneme-topic --from-beginning --bootstrap-server localhost:9092

Not: <kafka_container_name> kısmını Docker konteyner adınızla değiştirin.

Yaygın Hatalar ve Çözümleri

1. “Connection to node -1 could not be established” Hatası

Çözüm: Bu hata genellikle Zookeeper’ın çalışmadığı veya Kafka’nın doğru ayarlanmadığı durumlarda meydana gelir. Zookeeper’ı kontrol edin ve başlatıldığından emin olun.

2. “Not authorized to access topic” Hatası

Çözüm: Bu hata, kullanıcının belirli bir topic’e erişim izni olmadığı anlamına gelir. Kullanıcı izinlerini kontrol edin ve gerekli izinleri tanımlayın.

3. Yüksek Gecikme Süreleri

Çözüm: Yüksek gecikme süreleri genellikle ağ sorunlarından veya yetersiz kaynaklardan kaynaklanabilir. Sistem kaynaklarınızı gözden geçirin ve gerekirse daha fazla kaynak ekleyin.


Apache Kafka, günümüz veri odaklı uygulamaları için güçlü bir araçtır. Yüksek performansı ve ölçeklenebilirliği ile birçok farklı senaryoda kullanılabilir. Kurulum ve yapılandırma adımlarını takip ederek, Kafka’yı kolayca projelerinizde kullanmaya başlayabilirsiniz.

Önceki Konu

Docker Images, Containers ve Volumes Nasıl Silinir?

Sonraki Konu

phpMyAdmin Kurulumu

Bültenimize Abone Olun 📬

En son gönderilerimizin doğrudan e-posta kutunuza gelmesi için e-posta bültenimize abone olun.
Düşüncelerinizi özgür bırakın ✨