Apache Kafka Seriyası — Apache Kafka nədir? Nə məqsədlə və harada istifadə olunur?

Valid Akhundov
3 min readMay 25, 2020

--

Bu seriyada Apache Kafka-ya detallı baxış keçirəcəyik. Aşağıdakı məqalələrdə başdan sona bu texnologiyanı anlatmağa çalışacam. Həm nəzəri həm də praktiki mövzulara toxunacayıq.

  1. Apache Kafka nədir? Nə məqsədlə və harada istifadə olunur?
  2. Apache Kafka Arxitekturası
  3. Apache Kafkanın iş prinsipi necədir? Necə çalışır?
  4. Apache Kafka-nın ənənəvi üsulla və Docker-də qurulması
  5. Apache Kafka-nın praktiki tətbiqi. Nümunə proyekt

Başlayaq ilk məqalədən.

Apache Kafka nədir?

Apache Kafka açıq qaynaq kodlu paylanmış axın platformasıdır. Məlumatları sürətli bir şəkildə saxlayıb analiz etmək üçün bir mesajlaşma sistemi (queue) istifadə edir. LinkedIn tərəfindən təməli qoyulan bu texnologiya Java Scala proqramlaşdırma dilləri ilə yazılıb. Əsas yaradıcısı olan Jay Kreps həyat və yaradıcılığını çox sevdiyi — XX əsr ədəbiyyatının görkəmli nümayəndələrindən biri olan almandilli əşkinazi yəhudisi, romançı və hekayə yazarı Frans Kafka-nın şərəfinə adını Kafka qoyub. Hazırda Apache Software Foundation tərəfindən Apache 2.0 lisenziyası altında açıq qaynaq kodlu olaraq dəstəklənməkdədir. Eyni zamanda Confluent şirkəti kommersional məqsədlə istifadə etmək və yardım (support) almaq istəyənlər üçün müxtəlif xidmətlər verir.

Kafka bir axın işləmə platformasıdır. Bu o deməkdir ki, Kafka-ya göndərilən mesajlar bir axın yaradır. Paylanmış olması isə o deməkdir ki, mesajları tək bir yerdə deyil dağınıq şəkildə saxlayır və işləyir.

Nə məqsədlə istifadə olunur?

Hazırda Big Data dövrüdür hər an yeni data-lar yaranır. Ən bəsit nümunə ilə bunu izah etsək hər birimizin istifadə elədiyi sosial şəbəkələri nümunə gətirmək olar. İstifadəçilər hər an yeni paylaşım edir, başqalarının paylaşımlarını bəyənir, komment yazır və s. Bunların hamısı yeni data-ların yaranması deməkdir. Və bunlarla yanaşı həmin məlumatların anlıq olaraq işlənməsinə ehtiyyac vardır. Bu problemə həll olan texnologiyalardan biri də məhz Apache Kafkadır. Kafka-nın təməl istifadə məqsədi big data axışını maksimum kiçik gecikmələrlə (latency) həyata keçirməsidir.

Harada istifadə olunur?

Ani vaxtda məlumatların gecikmə olmadan işlənməsinə bir çox şirkətin ehtiyyacı var. Bank sektorundan misal gətirsək:

Müştəri ödəmə terminalı vasitəsiylə kredit ödənişini həyata keçirdi və bu zaman aşağıdakı nümunə biznes proseslər baş verməlidir:

  1. Ödəniş məlumatları verilənlər bazasına yazılmalı
  2. Ödənişin bank sistemində işlənməsi
  3. Müştəriyə ödəniş və qalıq borc barədə SMS bildirişin göndərilməsi

Bu nümunə proseslər maksimum az gecikmə və etibarlı şəkildə — yəni hər hansı məlumat itkisi olmadan həyata keçməlidir. Və nəzərə almalıyıq ki, hər saniyədə n sayda müştəri ödəniş həyata keçirə bilər. Bu zaman Kafka istifadə edərək bu prosesləri event-lərə ayırıb asinxron şəkildə həyata keçirə bilərik.

Başqa bir nümunə kimi LinkedIn platformasını göstərmək olar. Məsələn LinkedIn bizə müəyyən hesabatlar verir:

  • Profilimiz kimlər tərəfindən nə qədər axtarış edilib
  • Hansı istifadəçilər profilimizə baxıb
  • Postlarımıza nə qədər baxış olub və baxan istifadəçilər hansı şirkətlərdə çalışır və s.

Bütün bunları sonradan bizə göstərmək üçün LinkedIn bu hadisələr baş verən zaman bunları yadda saxlamalıdır. Və əgər istifadəçi kiminsə profilini axtarışa verən zaman həmin vaxt müəyyən log-lamalar aparılıb sonda nəticə istifadəçiyə qaytarılsaydı bu proses xeyli uzun çəkə bilərdi və platformanın performansı aşağı olardı.

Hazırda Kafkanı istifadə edən dünyaca məhşur şirkətlərin bəzilərini nümunə göstərsək:

LinkedIn

Twitter

Netflix

Uber

Cisco

Coursera

Oracle

Necə performansa sahibdir?

Kafka çox yüksək dərəcədə (scalable) ölçülənəbilirdir. Yəni yüzlərlə serverlərdən ibarət bir Kafka şəbəkəsi qurmaq mümkündür. Eyni zamanda mükəmməl sürətə sahibdir. Belə ki, saniyədə milyonlarca mesajı işləyəbiləcək bir potensialı var.

Apache Kafka haqqında ümumi məlumatlar bu qədər. Ümidvaram faydalı olmuşdur. Kafka haqqında daha detallı məlumatlar üçün izləmədə qalın. Seriyanın növbəti məqaləsi Apache Kafka Arxitekturası olacaq.

--

--