APACHE KAFKA COMPONENTS
3 min readAug 18, 2022
APACHE KAFKA
Herkese merhaba, bu yazıda Apache Kafka’nın bileşenleri konusunu ele alacağım.
Tanımlar
Broker
- Brokerlar, Kafka’ya gönderilen mesajları saklayıp işler.
- Her Kafka clusterında bir veya birden fazla broker bulunur.
- Her broker farklı bir ID’ye sahiptir.
- Failover senaryoları yaşamamak için en az üç ya da beş broker kullanılması gerekir.
Topic
- Verileri saklamak için topicler kullanılır.
- Topicler, brokerlarda saklanır.
- Her topic in farklı bir ismi vardır.
- Kafka’daki mesajları okumak için topicler kullanılır.
- Kafka’ya mesaj yazmak için topicler kullanılır.
Partition
- Topicler, partitionlardan oluşur.
- Topicler için istediğimiz sayıda partition belirleyebiliriz.
- Mesajlar, topiclerin içinde bulunan partitionlara yazılır.
- Her partition için bir sayı vardır.
- Partitionlar sayesinde producerlardaki mesajlar istenilen özelliklere göre toplanabilir.
- Mesajlar sıralı bir şekilde toplanabilir.
- Mesajlar daha efektif bir şekilde saklanır. Bu sayede çok büyük boyutlara sahip olan mesajlar istenilen şekilde saklanabilir.
- Partition sayıları arttıkça performans artışı sağlanır. Parallelism de artar, bu sayede hem mesajları okuyabilir hem de mesaj yazılabilir.
- Partitionlarda bulunan bilgiler sonsuza kadar saklanmaz.
Partition offset
- Mesajların pozisyonlarını belirlemek için kullanılır.
- Her mesaj için bir offset tanımı yapılır. Bu tanımlar, zookeeper’da tutulur.
- Bu offsetler, “Consumer” ın mesajları sıralı bir biçimde okumasını sağlar.
- İki farklı partitionda bulunan offsetler aynı olsa bile içindeki mesajlar aynı değildir. Partition1.offset[5] != Partition3.offset[5]
Zookeeper
- Brokerları yönetir.
- Brokerlarda gönderilen veriler zookeeper üzerinde saklanmaz.
- Apache lisanslı açık kaynak bir yazılımdır.
Producer
- Kafka brokerlara mesaj yazan uygulamadır.
Consumer
- Kafka brokerlarda bulunan mesajları okuyan uygulamadır.
Herkese iyi günler diliyorum!