Skip to main content

Mesaj Aracısı / Olay Veriyolu (Message Broker / Event Bus)

Sistem Analizi

MesajlaşmaPRODUCTION

Normal Davranış

Üreticiler (producers), yapılandırılmış mesajları veya olayları konulara (topics) yayınlar. Aracı (broker), iletileri bölümlenmiş (partitioned) günlükler (logs) aracılığıyla dayanıklı depolamada (durable storage) tutar, tüketici ofsetlerini (consumer offsets) koordine eder ve yapılandırılabilir teslim garantileri (en az bir kez (at-least-once), en fazla bir kez (at-most-once), tam olarak bir kez (exactly-once) anlambilimi) ile iletileri tüketici gruplarına (consumer groups) ulaştırır.

Çöküş Davranışı

Aşağı akış (downstream) tüketicileri çöker veya yavaşlarsa, tüketilmemiş mesajlar devasa tüketici gecikmesine (consumer lag) birikerek aracı disklerini doldurur. Zehirli hap (poison pill) mesajları tüketici bölmelerini (pods) defalarca çökertirse, işlenmeyen istisnalar (unhandled exceptions) bölümleri kilitler (deadlock) ve binlerce kullanıcı için işlemeyi durdurur.

İş Sonuçları

Bir Mesaj Aracısı (Message Broker - RabbitMQ veya Kafka gibi) çöktüğünde, mikro hizmet mimarisinin asenkron (eşzamansız) sinir sistemi kopar. Bağlantı havuzları (connection pools) doldukça yukarı akış (upstream) hizmetleri engellenir, yayınlanan olaylar (published events) boşluğa düşer ve aşağı akış tüketicileri (consumers) açlıktan ölür. Bu durum, düşen (dropped) müşteri siparişlerine, gönderilmeyen bildirim e-postalarına ve dağıtılmış veritabanlarında büyük veri tutarsızlığına yol açar.

Görsel Tezahür

"İzleme grafikleri 'Kuyruk Derinliği'nin (Queue Depth) dikey olarak fırladığını, 'Tüketici İşleme Oranı'nın (Consumer Processing Rate) ise sıfıra düştüğünü gösterir. Uygulama günlükleri 'Bağlantı Reddedildi' (Connection Refused) ve 'Aracı Kullanılamıyor' (Broker Unavailable) yığın izleriyle (stack traces) dolar."

Satirical Behavior

"The magical black box where developers dump all their data and say 'it's asynchronous now', completely ignoring the fact that when it inevitably fills up and crashes, every single microservice will burn to the ground simultaneously."

Bilinen İsimler

Event BusPub/Sub

Teknik Terminoloji

Publishing eventConsuming messagesTopic routing

Hata Göstergeleri

Queue backed upDead letteredConsumer lag

Sistem Mimarisi

Click or hover to interact

Kullanan Karakterler

FAQ

Normalde nasıl davranır?

Üreticiler (producers), yapılandırılmış mesajları veya olayları konulara (topics) yayınlar. Aracı (broker), iletileri bölümlenmiş (partitioned) günlükler (logs) aracılığıyla dayanıklı depolamada (durable storage) tutar, tüketici ofsetlerini (consumer offsets) koordine eder ve yapılandırılabilir teslim garantileri (en az bir kez (at-least-once), en fazla bir kez (at-most-once), tam olarak bir kez (exactly-once) anlambilimi) ile iletileri tüketici gruplarına (consumer groups) ulaştırır.

Nasıl çöker?

Aşağı akış (downstream) tüketicileri çöker veya yavaşlarsa, tüketilmemiş mesajlar devasa tüketici gecikmesine (consumer lag) birikerek aracı disklerini doldurur. Zehirli hap (poison pill) mesajları tüketici bölmelerini (pods) defalarca çökertirse, işlenmeyen istisnalar (unhandled exceptions) bölümleri kilitler (deadlock) ve binlerce kullanıcı için işlemeyi durdurur.

İş sonuçları nelerdir?

Bir Mesaj Aracısı (Message Broker - RabbitMQ veya Kafka gibi) çöktüğünde, mikro hizmet mimarisinin asenkron (eşzamansız) sinir sistemi kopar. Bağlantı havuzları (connection pools) doldukça yukarı akış (upstream) hizmetleri engellenir, yayınlanan olaylar (published events) boşluğa düşer ve aşağı akış tüketicileri (consumers) açlıktan ölür. Bu durum, düşen (dropped) müşteri siparişlerine, gönderilmeyen bildirim e-postalarına ve dağıtılmış veritabanlarında büyük veri tutarsızlığına yol açar.

What causes consumer group rebalance storms in partition-based brokers like Apache Kafka and how do you resolve them?

A rebalance storm occurs when a consumer takes longer to process a batch of records than the configured max.poll.interval.ms. The group coordinator assumes the consumer died, evicts it, and triggers a group-wide partition rebalance, pausing message consumption across all consumers. As queues back up, other consumers also exceed timeouts, causing an infinite rebalance cycle. This is resolved by increasing max.poll.interval.ms, reducing batch sizes (max.poll.records), and ensuring asynchronous message processing.

What is the Dead Letter Queue (DLQ) pattern and why is it essential for message broker reliability?

A Dead Letter Queue is a dedicated secondary queue where messages that fail processing repeatedly (e.g., due to corrupt schemas or bad payloads known as poison pills) are automatically routed after exhausting a retry threshold. Without a DLQ, a poison pill message causes consumers to crash repeatedly, blocking the entire partition and preventing healthy subsequent messages from being processed.

AI özeti

Message Broker / Event Bus is a MESSAGING system in TinyCTO.tv. Producers publish structured messages or events to topics. The broker persists messages to durable storage across partitioned logs, coordinates consumer offsets, and delivers messages to consumer groups with configurable delivery guarantees (at-least-once, at-most-once, exactly-once semantics).