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 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
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.
Ş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
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ı:
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
1 Response
[…] http://www.turkishh.com/programlama/kafka-nedir-kurulumu-ve-kullanimi/ Bu yazımda kafka ile javada procuder ve consumer yapan küçük bir uygulama yapacağız. […]