Broker'a bilgi gönderen Producer ve bu bilgiyi okuyan Consumer olmak üzere iki taraf vardır. Producer bilgiyi broker'a gönderir ve broker bu bilgiyi alır,işler ve belli bir sıraya koyup diske yazar. Consumer subscrine olduğu topic(kuyruk)'i dinlemeye başlar. Subscribe olduğu topic'e bir mesaj düştüğünde o mesajı alır ve yapması gereken işlemleri yapar. Kafka'da topic, mesajların kategorize edildiği bir "konu"dur. Üreticiler (producers) bu topic'e mesaj (event) gönderir, tüketiciler (consumers) bu topic'ten mesajları okur.
Her topic’in kendine ait bir adı vardır (örneğin:
user-created
, order-events
gibi). Topicler, Güvenliği ve performansı(paralel okuma/yazma için) sağlamak için partition denilen parçalara bölünür. Bu partitionlar Kafka cluster içerisinde bulunan brokerlara üzerine replikalarıyla birlikte dağıtılır. Böylece her bir partititon birden fazla broker üzerinde bulunur.(aynı şekilde her partitionun replikasıda diğer brokerlara dağıtılır). Herhangi bir broker down olduğunda diğer broker üzerinde bulunan partition replikalar görev alır. APACHE KAFKA KURULUM
Apache Kafka kurulumu yaparken bir tane node'un tüm istekleri karşılaması ve bunu diğer nodelara dağıtması gerekiyor. Bütün istekler tek bir noktadan girecek ve tek bir noktadan çıkacak şekilde ayarlanması gerekir. Bunu sağlamak içinde Kafka Cluster içerisindeki node'lardan bir tanesinin master olması gerekiyor ve yapıyı yönetmesi gerekiyor. Gelen istekler hangi brokerlara nasıl dağıtılacak,replikaları nasıl olacak, partitionlara giden bilgiler nasıl toplanacak gibi konfigurasların bir broker tarafından yönetilmesi gerekir. Burada Zookeeper yada Kraft'ın yaptığı şey kafta cluesrer'ın içerisindeki brokerların bir birleriyle aynı networkd üzerinde haberleşebilmesi, ayaktalar mı, çökmüşler mi, hangisi primary,hangisi replika olmalı gibi durumları yönetiyorlar.
1- Single Node
Bir tane broker ve bir tanede bu broker'ı görüntüleyebileceğimiz UI olacak. Bu UI zorunlu değil. Connection işlemleri, bir topic'e bilgi gönderildiği durumları vs. görebilmemizi sağlıyor. Ayrıca bu brokerin yönetilmeye ihtiyacı olduğu için zookeeper yada kraft bir tanesinin olması gerekiyor
1- Multi Node
Birden fazla broker olacak ve bu brokerların organize edilebilmesi için mutlaka bir zookeeper yada kraft gerekmektedir.
Not:
Kafkada bir producer tarafından gönderilen mesajlar topic denen kuyruklara yazılır. Bu topiclerde bir den fazla partitiona bölünüp farklı brokerlara dağıtılır.
Kafka da Group mantığı vardır. Bir grup altında oluşturulan consumerlar aynı partitionı dinleyemez. Her partition sadece bir consumer tarafından dinlenebilir. Fakat diyelimki 2 adet partition var ve tek bir consumer var. Bu tek consumer bu iki partition altındaki mesajları tüketebilir.
örneğin 3 adet consumer var 3 adette partion varsa her bir partition sadece bir consumer tarafından dinlenir.
örneğin 4 adet consumer var 3 adette parttion varsa 3 tane consumer kendilerine bir tane partitionı alır ve onu dinler. 4. kalan consumer ise boşta bekler. Diğer partitionlardan okuma yapamaz
Diyelimkli 2 farklı group oluşturduk. Bu iki grupta bir birinden bağımsız olarak aynı partitionları dinleyebilir. Yani broadcast mantığı devreye girer.
Hiç yorum yok:
Yorum Gönder