Kafka nedir , kurulumu ve kullanımı

Merhaba arkadaşlar, Apache Kafka  en basitten anlıyacağımız tabiri ile verileri log kayıdına benzer bir yapıda tutar ve mesajlaşma kuyruğu şeklinde kendine subscribe olan client lara sunar. Bu yapı en başta […]

Merhaba arkadaşlar,

Apache Kafka  en basitten anlıyacağımız tabiri ile verileri log kayıdına benzer bir yapıda tutar ve mesajlaşma kuyruğu şeklinde kendine subscribe olan client lara sunar. Bu yapı en başta Linkedin bünyesinde geliştirildi daha sonrasında açık kaynak olarak gelitiricilere sunuldu. Malum günümüzde verilerin  çığ gibi büyümesi ve bunların yönetilmesi , verilere anlık(real-time) daha hızlı nasıl ulaşılabilir sorusuna iyi bir çözüm  getiren kafka’nın windows üzerinde kurulumunu , mesajların nasıl gönderildiğini ve clientlar tarafından nasıl okunduğuna değiniceğim.

İlk önce bazı kavramlar var bunları bilelim ;

Topic                          :  Kafka bütün mesajları topicler altında tutar , twitterdaki hastagleri düşünebilirsiniz.

Producer                  : Her bir topic için gönderilen mesaja prodecur denir.
Consumer                : Her bir topic altındaki mesajları okuyan ise consumer olarak adlanır.

Broker                       : Kafka’nın çalıştığı sunuculara broker adı verilir.

Consumer Group  : Her consumer bir gruba aittir , procuder edilen her mesaj için her grup ayrı ayrı okur.

 

Şunada değinmek lazım kafka tcp protokolünde haberleştiği için platformdan bağımsız bir şekilde piyasadaki çoğu programlama dillerinde apileri mevcuttur.

Kurulum :

Apache Kafka link :
https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka_2.10-0.10.0.0.tgz

Apache Zookepeer link :
http://ftp.itu.edu.tr/Mirror/Apache/zookeeper/zookeeper-3.3.6/

 

İlk önce indirdiğimiz dosyaları zip dosyasını açabilen bir tool ile C: dizinin altına çıkartalım.
Bende dizinler şöyle :

C:\kafka_2.11-0.9.0.0
C:\zookeeper-3.3.6

Sonrasında  system environment olarak zookeeper dizinini tanımlıyoruz

kafka 1 kafka 2

 

Sonrasında
C:\zookeeper-3.3.6\conf    dizinin altında  “zoo_sample.cfg” adındaki dosyanın ismini “zoo.cfg”
yapalım ve dosya’yı açıp şunları düzenleyelim .

dataDir=/tmp/zookeeper silip yerine  dataDir=C:/zookeeper-3.3.6/data

Görüldüğü üzere alt satırlarda clientPort=2181 olduğu yazıyor buda consumer yapacak clientların bağlanacağı port’u belitrir.

Yukarıdaki değişikliği yaptıktan zookeeper’e açmak için sonra komut satırı açarak “zkserver”  yazmanız yeterli olacaktır.

kafka 3_1

Şimdi ise apache kafka konfigurasyonumuzu yapalım.

C:\kafka_2.11-0.9.0.0\config  altındaki “server.properties”  dosyasını açıyoruz ve şu adımları yapıyoruz:

log.dirs=/tmp/kafka-logs  silip yerine log.dirs=C:/kafka_2.11-0.9.0.0/kafka-logs

Bu arada kafka 9092 portu dinler property dosyamızdada tanımlıdır.

Şimdi iste kafkamızı ayağa kaldıralım komut satırında C:\kafka_2.11-0.9.0.0\  dizinine gelelim ve şu komutu çalıştıralım.

.\bin\windows\kafka-server-start.bat .\config\server.properties

 

kafka 4

 

Kurulumlar tamam ise artık procuder ve consumer yapabiliriz iki tane komut satırı açalım çünkü birinde procuder yapacağız birinde ise consumer :

bir satırda producer için bunu çalıştıralım :

bu dizine gidelim :  C:\kafka_2.11-0.9.0.0\bin\windows>
kafka-console-producer.bat –broker-list <ip_adresimiz>:<port> –topic <yazacağımız_topic_ismi>

kafka-console-producer.bat –broker-list localhost:9092 –topic turkishh.com

şimdi ise consumer yapacağımız ekranda

bu dizine gidelim tekrar: C:\kafka_2.11-0.9.0.0\bin\windows>

kafka-console-consumer.bat –zookeeper <ip_adresimiz>:<port> –topic <okuyacağımız_topic_ismi>
kafka-console-consumer.bat –zookeeper localhost:2181 –topic turkishh.com

Evet herşey tamam şimdi geçelim denemeye ekranı ikiye bölün daha iyi anlaşılması için bi tarafa producer yapan ekranı bi tarafa ise consumer yapan ekranı yerleştirin

Producer yapan ekranda yazdıgınız her mesaj consumer ekranında beliricektir.

Çıktısı:

resim 5

Gerekli bazı komutlar

topic oluşturmak:

kafka-topics.bat –create –zookeeper localhost:2181 –replication-factor 1 –partitions 1 –topic turkishh.com

topic ile ilgili bilgi:

kafka-topics.bat –describe –zookeeper localhost:2181 –topic turkishh.com

aktif topic listesi:

kafka-topics.bat –list –zookeeper localhost:2181

 

Umarım yararlı olmuştur.
İyi Çalışmalar

About Mehmet KILIÇ

Bilgisayar Mühendisi