Apache Kafka Nedir?
Apache Kafka, veri akışını yöneten güçlü bir açık kaynaklı sistemdir. İlk başta büyük bir veritabanı yönetim sistemi gibi düşünebilirsiniz, ancak Kafka çok daha fazlasını yapabilir. Verileri hızlıca gönderip alabileceğiniz, yüksek hacimli verileri işleyebileceğiniz bir platformdur. Özellikle zaman serisi verilerini toplamak ve işlemek için mükemmel bir tercihtir. Kafka'yı kullanarak sistemleriniz arasındaki veri akışını yönetebilir, verilerinizi etkin bir şekilde iletebilirsiniz.
Kafka’yı Neden Kullanmalısınız?
Kafka’nın gücünü en iyi, büyük veri sistemlerinin ihtiyaçlarını karşılamak için nasıl kullanıldığını anlamaya çalışarak keşfedebilirsiniz. Geleneksel veri akış sistemleri genellikle veriyi bir noktadan başka bir noktaya taşırken, Kafka bunu gerçek zamanlı ve yüksek verimlilikle yapar. Hem veriyi taşırken hem de işlediği verilerin güvenliğini sağlarken size büyük esneklik sunar.
Eğer ki internet üzerinden veri toplamak, sensör verileri işlemek veya mikro servisler arasında hızlı veri aktarımı yapmak istiyorsanız, Apache Kafka bir “can simidi” olabilir. Bunun yanında Kafka'nın yatay olarak ölçeklenebilir olması ve büyük verilerle mükemmel bir uyum içinde çalışması, onu piyasadaki diğer veri akış yönetim araçlarından ayırır.
Apache Kafka Kurulumu: Adım Adım Rehber
Apache Kafka’yı kurmak aslında düşündüğünüz kadar karmaşık değil. Yalnızca birkaç basit adımda, hem yerel ortamda hem de üretim ortamında Kafka’yı çalıştırmaya başlayabilirsiniz. Hazırsanız, gelin ilk adımlara birlikte göz atalım!
1. Java Kurulumu
Kafka’yı kullanabilmek için ilk olarak Java’nın sisteminizde kurulu olması gerekiyor. Çünkü Kafka Java dilinde yazılmıştır ve çalışabilmesi için Java runtime environment’a ihtiyaç duyar. Eğer Java’yı henüz yüklemediyseniz, aşağıdaki komutla Java’yı yükleyebilirsiniz:
sudo apt install openjdk-11-jre2. Kafka ve Zookeeper İndirme
Kafka’yı indirmek için Apache’nin resmi web sitesini ziyaret etmelisiniz. Zookeeper, Kafka ile birlikte gelir ve Kafka’nın dağıtık sistem yönetimini sağlar. Zookeeper’ı ayrıca kurmanıza gerek yok, çünkü Kafka her şeyi sizin için halleder.
Kafka’yı indirmek için şu komutu kullanabilirsiniz:
wget https://archive.apache.org/dist/kafka/2.8.1/kafka_2.13-2.8.1.tgz3. Kafka’yı Çıkarma ve Başlatma
İndirdiğiniz Kafka dosyasını çıkartarak ilgili dizine geçiş yapabilirsiniz. Şimdi, Kafka ve Zookeeper’ı başlatmak için aşağıdaki komutları sırasıyla çalıştırabilirsiniz.
Kafka’yı çıkartmak için:
tar -xvzf kafka_2.13-2.8.1.tgzKafka dizinine geçmek için:
cd kafka_2.13-2.8.1Zookeeper’ı başlatmak için:
bin/zookeeper-server-start.sh config/zookeeper.propertiesKafka’yı başlatmak için:
bin/kafka-server-start.sh config/server.propertiesBu adımlar, Kafka’yı ve Zookeeper’ı çalıştırarak veri akışına başlamak için ihtiyacınız olan her şeyi sağlar. Şimdi verilerinizi Kafka’ya göndermeye ve almaya hazırsınız!
Apache Kafka Kullanımı: Veri Gönderme ve Alma
Kafka’yı kullanarak veri gönderme ve alma işlemleri oldukça basittir. Kafka, veriyi “topic” adı verilen konularda organize eder. Bu topic’lere mesaj gönderebilir ve oradan mesaj alabilirsiniz.
1. Mesaj Göndermek (Producer)
Kafka’ya veri göndermek için bir “producer” kullanırsınız. Producer, Kafka’ya veri yazan bileşendir. Şimdi bir producer oluşturalım ve verimizi Kafka’ya gönderelim.
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.producer.ProducerRecord;
import java.util.Properties;
public class ProducerExample {
public static void main(String[] args) {
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
KafkaProducer producer = new KafkaProducer<>(props);
producer.send(new ProducerRecord("my-topic", "key", "Hello Kafka!"));
producer.close();
}
} Yukarıdaki kod parçası, “my-topic” adlı bir topic’e "Hello Kafka!" mesajını gönderen basit bir Kafka producer’ıdır.
2. Mesaj Almak (Consumer)
Verileri Kafka’dan almak için bir “consumer” kullanılır. Kafka consumer’ı, bir topic’ten veri alır ve işler.
import org.apache.kafka.clients.consumer.KafkaConsumer;
import java.util.Properties;
import java.util.Arrays;
public class ConsumerExample {
public static void main(String[] args) {
Properties props = new Properties();
props.put("bootstrap.servers", "localhost:9092");
props.put("group.id", "test");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer consumer = new KafkaConsumer<>(props);
consumer.subscribe(Arrays.asList("my-topic"));
while (true) {
consumer.poll(100).forEach(record -> System.out.println(record.value()));
}
}
} Bu kod, Kafka’daki "my-topic" topic’inden verileri alır ve ekrana yazdırır.
Sonuç
Apache Kafka, verilerinizi hızlı ve güvenli bir şekilde yönetmenize yardımcı olacak harika bir araçtır. Adım adım kurulum ve kullanım rehberimize göz attığınızda, Kafka’nın size sunduğu olanakları çok daha rahat bir şekilde kullanmaya başlayacaksınız. Şimdi Kafka’yı keşfetmeye ve veri akışınızı yönetmeye başlayın!