Əsas məzmuna keç
DevScallix
← ProqramlarPlanlaşdırılır

Kafka və Event-Driven Architecture

Kafka-nın vacib daxili mexanizmləri, çatdırılma semantikası və etibarlı event əsaslı dizayn.

Bu proqram planlaşdırılır və hələ cədvələ salınmayıb. Tarix, qiymət və qrup elan olunmayıb. Maraq bildirsəniz, proqram planlaşdırıldıqda və ya fərdi format müzakirə olunduqda sizinlə əlaqə saxlayarıq.

Məqsəd

Proqram Kafka-nı yalnız istifadə etməyi yox, onun davranışını başa düşərək etibarlı event əsaslı sistem qurmağı hədəfləyir. Sıralama, çatdırılma semantikası, idempotent istehlak, transactional outbox və schema təkamülü real səhvlər üzərindən öyrənilir. Operasiya və monitorinq də dizaynın tərkib hissəsi kimi əhatə olunur.

Kimin üçündür

  • Spring Boot və mesajlaşma ilə artıq tanış olan backend developer-lər
  • Event əsaslı sistemin dizaynında iştirak edən senior namizədlər
  • Mövcud Kafka istifadəsində dublikat, itki və gecikmə problemləri ilə üzləşənlər
  • Mikroservislər arası əlaqəni asinxron qurmalı olanlar

Kimin üçün deyil

  • Mesajlaşma anlayışı ilə ilk dəfə tanış olanlar: əvvəlcə Spring Boot və servis əsaslarını möhkəmləndirin
  • Kafka klasterinin administratorluğunu əsas peşə kimi öyrənmək istəyənlər
  • Sadə növbə ilə həll olunan məsələyə Kafka tətbiq etmək istəyənlər: proqram bu seçimi də sorğulayır

İlkin tələblər

  • Spring Boot ilə servis yazmaq təcrübəsi
  • Transaction və verilənlər bazası uyğunluğu anlayışı
  • Docker ilə lokal mühit qurmaq
  • Mikroservis və ya asinxron kommunikasiya haqqında ümumi biliklər

Proqramın sonunda nə bacaracaqsınız

Proqramın sonunda nə bacaracaqsınız

  • Topic, partition və replication-ın sıralama və throughput-a təsirini izah etmək
  • Açar seçimi ilə sıralamanı qorumaq
  • Consumer group, offset commit və rebalancing davranışını proqnozlaşdırmaq
  • At-most-once, at-least-once və exactly-once semantikasının real mənasını fərqləndirmək
  • Dublikata davamlı (idempotent) consumer yazmaq
  • Transactional outbox ilə verilənlər bazası və Kafka arasında uyğunluğu təmin etmək
  • Schema Registry ilə event schema-sını geriyə uyğun şəkildə dəyişdirmək
  • Consumer lag və digər metriklər üzrə monitorinq və xəbərdarlıq qurmaq

Heç bir təhsil proqramı işə qəbula və ya vəzifə yüksəlişinə zəmanət verə bilməz.

Tədris planı

Tədris planı

  1. 01

    Kafka-nın əsas modeli

    Log əsaslı modelin nə verdiyini və nə vermədiyini başa düşürük.

    • Topic, partition, segment və log modeli
    • Replication, leader və ISR
    • Retention və log compaction
    • Producer batch, acks və gecikmə
    • Kafka queue-dan nə ilə fərqlənir

    Praktik laboratoriya: Lokal klasterdə topic yaradıb partition və retention parametrlərinin davranışa təsirini müşahidə etmək.

  2. 02

    Sıralama və partisiyalaşdırma

    Sıralama yalnız partition daxilində qorunur; bunu dizayn qərarına çeviririk.

    • Message key və partitioner
    • Hot partition və paylanma problemi
    • Partition sayının seçimi və sonradan artırmanın nəticələri
    • Sıralamanın pozulma ssenariləri (retry, çoxlu producer)
    • Açarın domain əsasında seçilməsi

    Praktik laboratoriya: Eyni müştərinin event-lərinin sırasını qoruyan açar seçimi edib sıranın pozulduğu halı təkrarlamaq.

  3. 03

    Consumer group və rebalancing

    İstehlakçıların partition-ları necə bölüşdüyünü və bunun nəyə səbəb ola biləcəyini öyrənirik.

    • Consumer group və partition təyinatı
    • Offset commit strategiyaları
    • Rebalance növləri və cooperative rebalancing
    • max.poll.interval və yavaş consumer problemi
    • Consumer lag və paralelliyin həddi

    Praktik laboratoriya: Consumer-i yavaşladıb rebalance fırtınası yaratmaq, səbəbi log və metriklərdən tapıb düzəltmək.

  4. 04

    Çatdırılma semantikası və idempotent istehlak

    Dublikat qaçılmazdır; ona davamlı consumer yazmağı öyrənirik.

    • At-most-once, at-least-once, exactly-once
    • Idempotent producer və Kafka transactions
    • Consumer tərəfində idempotency: unikal açar və deduplikasiya
    • Retry topic və dead letter topic
    • Poison message ilə davranış

    Praktik laboratoriya: Eyni mesajı iki dəfə qəbul edən consumer yazıb nəticənin təkrar tətbiq olunmadığını testlə sübut etmək.

  5. 05

    Transactional outbox

    Verilənlər bazasına yazmaq və event göndərmək arasındakı uyğunsuzluğu aradan qaldırırıq.

    • Dual write problemi
    • Outbox cədvəli və polling publisher
    • CDC əsaslı yanaşma (Debezium konsepti)
    • Outbox təmizlənməsi və sıralama
    • Inbox pattern

    Praktik laboratoriya: Sifariş servisində outbox qurub servis çökməsi zamanı event-in itmədiyini və dublikatın idarə olunduğunu göstərmək.

  6. 06

    Event modelləşdirməsi və schema təkamülü

    Event-lər uzunömürlü müqavilədir; onları sındırmadan dəyişməyi öyrənirik.

    • Event vs command vs state transfer
    • Event adlandırması və tərkibi
    • Avro/Protobuf və Schema Registry
    • Geriyə və irəliyə uyğunluq qaydaları
    • Versiyalaşdırma və köhnə event-lərlə yaşamaq

    Praktik laboratoriya: Mövcud event schema-sına sahə əlavə və silmə dəyişikliyi edib uyğunluq yoxlamasının hansını rədd etdiyini müşahidə etmək.

  7. 07

    Choreography və orchestration

    Çoxaddımlı biznes axınını event-lərlə koordinasiya etməyin iki yolunu müqayisə edirik.

    • Choreography: üstünlük və gizli coupling
    • Orchestration: mərkəzi nəzarət və onun dəyəri
    • Axının görünürlüyü və debug
    • Kompensasiya və timeout idarəsi

    Praktik laboratoriya: Eyni biznes axınını iki yanaşma ilə qurub izlənilmə və dəyişdirilmə asanlığı baxımından müqayisə etmək.

  8. 08

    Operasiya və monitorinq

    Kafka əsaslı sistemi etibarlı işlətmək üçün nəyi izləməli olduğumuzu müəyyən edirik.

    • Consumer lag və xəbərdarlıq
    • Broker və topic metrikaları
    • Capacity planlaması və retention xərci
    • Replay: event-ləri yenidən emal etmək
    • Təhlükəsizlik: autentifikasiya və ACL əsasları

    Praktik laboratoriya: Consumer lag üçün dashboard və xəbərdarlıq qaydası qurub lag yaradan ssenarini yoxlamaq.

Praktik tapşırıqlar

  • Açar seçimi və sıralama testi
  • Rebalance problemini diaqnoz hesabatı
  • Idempotent consumer və dublikat testi
  • Outbox implementasiyası
  • Schema dəyişikliyi və uyğunluq yoxlaması

Portfolio nəticələri

  • Outbox və idempotent consumer ilə event əsaslı nümunə sistem
  • Dublikat və çökmə ssenarilərini əhatə edən test dəsti
  • Event kataloqu və schema təkamülü qaydaları sənədi
  • Consumer lag dashboard-u və runbook

Necə qiymətləndirilir

  • Event dizaynının müdafiəsi
  • Mentor code review-su
  • Nasazlıq ssenarisinin yazılı təhlili
  • Choreography/orchestration seçimi üzrə qərar qeydi

Alətlər və texnologiyalar

  • Apache Kafka
  • Spring for Apache Kafka
  • Schema Registry
  • Avro və ya Protobuf
  • PostgreSQL
  • Debezium (konseptual)
  • Docker Compose
  • Testcontainers
  • Prometheus və Grafana

Səviyyə ardıcıllığı

Əvvəl
Əvvəl: Microservices və Distributed Systems və ya çoxservisli sistemlərdə təcrübə.
Sonra
Sonra: System Design.
Müddət və format
Müddət və format hələ müəyyən edilməyib; proqram planlaşdırılır və təqvimə salınmayıb.

Tez-tez verilən suallar

Tez-tez verilən suallar

Proqram hazırda açıqdır?

Xeyr. Proqram planlaşdırılır və hələ cədvələ salınmayıb. Tarix və qiymət elan olunmayıb. Maraq bildirə və ya konsultasiya istəyə bilərsiniz.

Əvvəlcədən Kafka təcrübəsi lazımdır?

Tələb olunmur. Mesajlaşmanın ümumi anlayışını və Spring Boot təcrübəsini bilmək kifayətdir; Kafka-nın əsas modeli proqramın birinci modulunda izah olunur.

Exactly-once həqiqətən mümkündür?

Müəyyən şərtlərlə Kafka daxilində mümkündür, amma xarici sistemlərlə bütün zəncirdə yox. Proqram bunun hüdudlarını və praktik alternativ olan idempotent istehlakı izah edir.

Sertifikat və ya iş vədi var?

Xeyr. Sertifikat və ya nəticə vədi yoxdur. Dəyərləndirmə dizayn müdafiəsi və mentor rəyi şəklindədir və tövsiyə xarakteri daşıyır.

Maraq bildirin

Bu, müraciət və ya ödəniş öhdəliyi deyil. Proqram planlaşdırıldıqda və ya sizə uyğun format müzakirə olunduqda əlaqə saxlayırıq.

Sizinlə necə əlaqə saxlayaq?