Kartaca Çekirdekten Yetişenler 2021

Java Spring Boot - MySQL - Apache Kafka - Docker

Anahtar Kod:

gAAAAABgUH5-8nF5PJBTXf_qjrJngiImF5R-UfDdhsGr6gcpBfcfbLojoT_XbrBt4bLlsHW83JPLjZZng7lgCugKOdBmSgktE6HcccN5Z-LbZqzIQZH3VEMHwYF5TQNhnLz8736a5QVdMt0KJCBynP9h-ul2eGSgYUEkrnfumDRaskUOe3OFc3YPDm3q55Maq3WP8wvcopNKz8ZvAMf7p_WwUvxWzk-r8w==

Zip Görev Çözümü

Zip Çözüm Dosyası
Zip İçeriği

Uygulamanın Kullanımı

Spring boot uygulaması başlatılmadan önce kafkanın logları okuyabilmesi için zookeeper ile kafkanın çalıştırılmış olması gerekmektedir.
Kullanıcının Windows kullanıcısı olduğunu ve Kafka dosyasının "D:\kafka_2.13-2.7.0" adresine kurulu olduğunu varsayarak:
zookeeper başlatmak için
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties

kafkayı başlatmak için
.\bin\windows\kafka-server-start.bat .\config\server.properties
komutlarını girmesi gereklidir.

Uygulamayı başlatma adımları:

Arayüz adresi: localhost:8080

Servis Endpoint'lerine İstek Atma:

Endpoint adresine istek atmanın yolları:

Tüm bu request işlemleri gerçekleşirken arkada gerçekleşen işlemler:

  • Loglar istenen şekilde ( "{metot tipi},{istek cevaplama ms},{timestamp}" ) local bir dosyaya kaydedilir ![log_dosyası](https://github.com/basarYargici/Kartaca/blob/master/assets/(13)%20LogContent.log%20file.png)
  • Loglar istenen şekilde ( "{metot tipi},{istek cevaplama ms},{timestamp}" ) veritabanına kaydedilir ![log_veritabanı](https://github.com/basarYargici/Kartaca/blob/dev/assets/(14)%20log%20table.png)
  • Bu sırada kafka requestleri real time dinler ve topic'e logları kaydeder ![topic](https://github.com/basarYargici/Kartaca/blob/dev/assets/(6)%20consumer%20real%20time%20logs2.png)
  • http://localhost:8080/api/graph adresine atılan istek sonucunda grafiğe ulaşılır. ![grafik](https://github.com/basarYargici/Kartaca/blob/dev/assets/(15)%20graph.png)

    Uygulamayı Çalıştırma

    Docker implementasyonu için gereken zamanı sağlık sorunlarımdan kaynaklı bulamadım. Veritabanı bağlantısında sorun yaşadım ve daha fazla üzerinde duramadım. Bundan dolayı uygulamayı kendi programınızda derleyip çalıştıramazsınız. Ancak kendi bilgisayarımda çalışır halde olduğu için ekran görüntüleri ile burada anlatmaya çalıştım.

    Proje hakkında

    Verilen bu görev ile birlikte 2 hafta içerisinde daha önce edinmediğim tecrübeler edindim. Kendi adıma ilkler dizisi oldu bu görev.

    • Spring Boot ile ilk kez bir proje çıkardım ve JAVA ile ilk kez REST API yazdım
    • Apache Kafka'yı bu proje ile birlikte ilk kez duydum ve projemde kullanarak producer-consumer yapısını kurdum
    • Her ne kadar tamamlayamasam da Docker ile de ilk tanışmam ve üzerinde kafa yormam bu proje ile gerçekleşti