Bu doküman, .NET Core kullanarak Kafka tabanlı Producer/Consumer sisteminin mimarisi ve işlevselliği hakkında daha derinlemesine bilgi sağlar.
Bu proje, Kafka kullanarak gerçek zamanlı mesajlaşma sistemleri nasıl oluşturulacağını gösterir. Kafka üreticileri, Kafka konularına mesaj gönderirken, tüketiciler bu mesajları işler.
-
Mesaj Üretimi:
- Producer çeşitli türde mesajlar gönderir. Basit mesajlar, başlıklı karmaşık mesajlar ve zaman damgalı mesajlar gibi farklı mesaj türlerini Kafka'ya gönderir.
-
Mesaj Tüketimi:
- Consumer Kafka konularını dinler ve gelen mesajları işler. Basit ve karmaşık mesajları, belirli başlıklarla veya belirli bölümlerden gelen mesajları işleyebilir.
- Kafka: Mesaj gönderimi ve tüketimi için kullanılan dağıtık mesajlaşma sistemi.
- .NET Core: API ve mesajlaşma mantığı .NET Core ile geliştirilmiştir.
- Docker & Docker Compose: Kafka, Zookeeper ve Kafka UI gibi servislerin container'lar ile yönetimi.
- Confluent Kafka .NET: Kafka üretici ve tüketici oluşturmak için kullanılan .NET kütüphanesi.
- Olay Tabanlı Mimari (EDA): Sistem olay tabanlı mimariye dayanır. Olaylar (mesajlar) producer tarafından üretilir ve consumer tarafından işlenir.
- Modüler Tasarım: Proje, producer ve consumer mantığını farklı servislerde ayırarak modüler bir yapı sunar.
- Kafka Kümesi: Tek broker veya çoklu broker Kafka kümesiyle çalıştırılabilir, bu da yüksek kullanılabilirlik ve hata toleransı sağlar.
- Basit Mesajlar: Kafka konularına düz metin mesajları gönderir.
- Başlıklı Karmaşık Mesajlar: Ek meta verilerle (başlıklar) ve karmaşık nesnelerle mesaj gönderir.
- Basit Mesaj Tüketimi: Düz metin mesajlarını tüketir.
- Karmaşık Mesaj İşleme: Karmaşık nesneleri ve mesaj başlıklarındaki meta verileri işler.
Projede Kafka'yı çalıştırmak için Docker Compose dosyaları bulunmaktadır:
-
Tek Broker:
docker-compose up -d -
Çoklu Broker Kümesi:
docker-compose -f docker-compose-cluster.yml up -d
-
Mesaj Üretimi:
- Producer,
order.created.eventgibi Kafka konularına mesaj gönderir.
- Producer,
-
Mesaj Tüketimi:
- Consumer, Kafka konularını dinler ve gelen mesajları asenkron olarak işler.