0

Apache Kafka – C# ile Producer ve Consumer Uygulaması Nasıl Yazılır? – Bölüm-2. Makalemizin ilk bölümünde Apache Kafka mimarisine hızlı bir giriş yapmıştık. Bu bölümde ise Kafka kurulumu yapıp, C# ile basit bir Producer ve Consumer uygulaması yazacağız.

NOT: Bilgisayarınızda güncel JRE’nin kurulu olması gerekiyor.

Yazının ilk bölümü için aşağıdaki linki kullanabilirsiniz.

https://www.mshowto.org/apache-kafka-nedir-genel-bakis-bolum-1.html


Resim-1: Java -version

https://Kafka.apache.org/downloads adresinden şu andaki güncel sürüm olan Scala 2.11 – Kafka_2.11-0.10.1.1.tgz dosyasını indirelim.


Resim-2: Kafka tgz dosyası

Sıkıştırılmış dosyayı C dizini altına açalım. Resim-3‘de göreceğiniz üzere bin\windows altında çalıştırabileceğimiz komutlar bat dosyaları halinde yer alıyor. Buradaki komutları kullanarak birçok işlemi yapabilirsiniz.


Resim-3: Kafka bat dosyaları

Öncelikle ZooKeeper’i çalıştırmamız gerekli. Bunun için Resim-4‘te göreceğiniz komutu çalıştıralım.

zookeeper-Server-start.bat ..\..\config\zookeeper.properties


Resim-4: ZooKeeper Server start komutu

Default kurulum işimizi göreceği için ekstra bir konfigurasyon yapmayacağız. Benzer şekilde şimdi de Resim-5‘te göreceğiniz gibi Kafka Server’ı çalıştıralım. Log dosyasını yeniden adlandıramadığı ile ilgili bir hata veriyor ama bu seferlik çok ciddiye almayalım. :)

Kafka-Server-start.bat ..\..\config\Server.properties

,
Resim-5: Kafka Server start komutu

Artık Local ortamda çalışan bir Kafka’ya sahibiz. Kodlamaya başlamadan önce tahmin edeceğiniz üzere bir Library ihtiyacımız var. Bunun için en sevdiğimiz tool NuGet Package Manager’a başvuralım. Bu makalede James Roland tarafından yazılmış Kafka-net‘in güncel versiyonu 0.9.0.65’i kullanacağız.


Resim-6: Kafka-net NuGet package

Öncelikle Kafka’ya bağlanacağımız host ve port bilgileri (default 9092) ile KafkaOptions nesnesini oluşturalım. Bunu kullanarak da BrokerRouter ve de asıl nesnemiz Producer‘ı oluşturuyoruz. Producer class’ı içerisinde yer alan asenkron SendMessageAsync methodu ile “MyTopic” içerisine 2 adet mesaj gönderelim. (bkz.Resim-7)


Resim-7: Producer

Mesajları gönderen kodumuz hazır, şimdi de mesajları alacak console uygulamasını yazalım. Burada da benzer şekilde KafkaOptions, BrokerRouter ve Consumer nesnelerimizi oluşturuyoruz. (bkz.Resim-8)


Resim-8: Consumer

Burada gördüğünüz Offset değerini, Partiton içerisindeki mesaja ait ID değeri olarak düşünebilirsiniz. Uygulamamızı çalıştırdığımızda ise Resim-9‘da göreceğiniz çıktı ile karşılaşıyoruz. Gönderdiğimiz mesajlar 0. Partiton’da 0. ve 1. Offset üzerinde bulunuyor.


Resim-9: Consumer output

Kullanabileceğiniz diğer Kafka Library’leri için https://cwiki.apache.org/confluence/display/KAFKA/Clients#Clients-.NET adresini inceleyebilirsiniz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://Kafka.apache.org/

 

TAGs : Apache Kafka, Apache Kafka nedir, Apache Kafka uygulama yazma, Apache Kafka uygulama gelistirme, Apache Kafka nedir, Apache Kafka tutorial, Apache Kafka spark streaming, Apache Kafka flume, Apache Kafka storm, Apache Kafka ayarlar, Apache Kafka application development, Apache Kafka java

Bu İçeriğe Tepkin Ne Oldu?
  • 3
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 1
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi'nde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi'nde tamamlamıştır. Yazılım dünyasına üniversitenin ilk yıllarında aldığı QBasic ile başlayan Mert, .NET ve SQL Server gibi Microsoft teknolojileri ile devam etmiş; yüksek lisans tezini ise Linux konusunda yapmıştır. Netaş ve Ziraat Teknoloji gibi sektörün önde gelen firmalarında C#, .NET, SQL Server, Cisco Contact Center ürünleri ve Linux üzerine çalışmış, bir çok firmaya da bu konularda danışmanlık vermiştir.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir