İlginizi Çekebilir
  1. Ana Sayfa
  2. ASP.Net
  3. Apache Kafka – C# ile Producer ve Consumer Uygulaması Nasıl Yazılır? – Bölüm 2

Apache Kafka – C# ile Producer ve Consumer Uygulaması Nasıl Yazılır? – Bölüm 2

– C# ile Producer ve Consumer Uygulaması Nasıl Yazılır? – Bölüm-2. Makalemizin ilk bölümünde 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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

https://Kafka.apache.org/

 

TAGs : Apache Kafka, , , , Apache Kafka nedir, , , , , , ,

Yorum Yap

Yazar Hakkında

Mert Yeter, lisans eğitimini Yıldız Teknik Üniversitesi Gemi İnşaatı Mühendisliği bölümünde, yüksek lisans eğitimini ise Bahçeşehir Üniversitesi Bilgi Teknolojileri bölümü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. Şu anda da Done'de Cloud Development Manager olarak Azure, .NET Core, SQL Server, Docker vb güncel teknolojiler üzerinde çalışmaktadır.

Yorum Yap