Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
9 yazı bulundu #rabbitmq
Client Sürüm Geçişleri: RabbitMQ.Client 6→7 (IModel'dan IChannel'a) ve MassTransit 8→9
Backend SERİ 14

Client Sürüm Geçişleri: RabbitMQ.Client 6→7 (IModel'dan IChannel'a) ve MassTransit 8→9

RabbitMQ.Client 7'ye geçiş ilk derlemede 5, ikinci dalgada 10 hata verdi; asıl riskler derleyicinin göstermediği body ömrü, timeout'un iptale dönmesi ve eşzamanlılık. RabbitMQ 4.x'te mirroring policy'sinin reddi, queue tipi uyuşmazlığı, AMQP 1.0 client'ı, MassTransit 9'un lisanssız açılmaması ve v8 desteğinin 31 Aralık 2026'da bitmesi, eski Service Bus SDK'sının karşılıkları.

8 Kas 2026 13 dk 6
Dead-Letter Queue Yönetimi: Poison Message'ı Bulmak, İncelemek ve Yeniden İşlemek
Backend SERİ 09

Dead-Letter Queue Yönetimi: Poison Message'ı Bulmak, İncelemek ve Yeniden İşlemek

DLQ'yu bir iş listesi gibi yönet: mesajın neden düştüğünü header'lardan oku, büyümesini alarma bağla, düzeltmeden sonra dry-run, filtre, üst sınır ve kendi replay sayacınla geri gönder. RabbitMQ'da x-death'in client'ın geri yayınladığı mesajda ilerlemediği, Service Bus DLQ sebep kodları, Kafka DLT'de yanlış orijinal topic hatası ve MassTransit _error header'ları gerçek çıktılarla.

8 Kas 2026 12 dk 4
Consumer'da Retry ve Redelivery: Immediate, Delayed ve Exponential Backoff
Backend SERİ 08

Consumer'da Retry ve Redelivery: Immediate, Delayed ve Exponential Backoff

Geçici hatayı kısa in-memory retry'la, uzun beklemeyi broker'la çöz; kalıcı hatayı hiç deneme, DLQ'ya gönder. RabbitMQ 4.4'te nack ile requeue'nun 5 saniyede 8036 teslimlik döngüsü, TTL + DLX bekleme queue'ları, quorum queue'nun yerleşik delayed retry'ı, Service Bus'ta scheduled retry, Kafka retry topic'leri ve MassTransit UseMessageRetry gerçek çıktılarla.

8 Kas 2026 17 dk 4
MassTransit ile Mesajlaşma: Consumer, Publish/Send ve Broker Topology'si — v9 Lisansı ve Alternatifler
Backend SERİ 07

MassTransit ile Mesajlaşma: Consumer, Publish/Send ve Broker Topology'si — v9 Lisansı ve Alternatifler

MassTransit, connection, ack, serialization ve topology'yi üstlenip consumer'ı tek bir IConsumer<T>'ye indirir; bedeli kendi exchange convention'ı, zarf formatı ve v9'da ticari lisans. Billing'i MassTransit 8.5.12'ye taşıyıp publish/send farkını, oluşan RabbitMQ topology'sini ve zarfı gösteriyor, v9'un lisanssız açılmadığını gerçek çıktıyla görüp v8, Wolverine, Rebus, NServiceBus ve Brighter arasında karar tablosu kuruyoruz.

8 Kas 2026 11 dk 5
RabbitMQ Topology'si Kodda: Exchange Tipleri, Binding, Quorum Queue ve Stream
Backend SERİ 03

RabbitMQ Topology'si Kodda: Exchange Tipleri, Binding, Quorum Queue ve Stream

Kalıcı iş mesajları için quorum queue ve topic exchange kullan, topology'yi startup'ta idempotent declare et, değişebilecek limitleri (TTL, max-length, delivery-limit, DLX) queue argümanı yerine policy'ye bırak. Dört routing key'den dokuz kopya, PRECONDITION_FAILED hatası, fanout ile cache invalidation, stream replay ve reject-publish gerçek çıktılarla.

8 Kas 2026 11 dk 3
RabbitMQ.Client 7 ile İlk Producer ve Consumer: Async API, Connection/Channel Yaşam Döngüsü ve Manual Ack
Backend SERİ 02

RabbitMQ.Client 7 ile İlk Producer ve Consumer: Async API, Connection/Channel Yaşam Döngüsü ve Manual Ack

IConnection'ı uygulama ömrü boyunca tek tut, IChannel'ı thread'ler arasında paylaşma, publish'i publisher confirmation ve mandatory ile doğrula, consumer'ı BackgroundService içinde autoAck=false ve prefetch ile çalıştır. Prefetch'siz consumer'ın 498 mesajı belleğe çekmesi, autoAck ile 17 mesajın kaybolması, automatic recovery ve graceful shutdown gerçek çıktılarla.

8 Kas 2026 13 dk 5
.NET'te Message Queue ile Çalışmaya Giriş: RabbitMQ, Azure Service Bus ve Kafka Client'ları, Hangi Durumda Hangisi
Backend SERİ 01

.NET'te Message Queue ile Çalışmaya Giriş: RabbitMQ, Azure Service Bus ve Kafka Client'ları, Hangi Durumda Hangisi

Esnek yönlendirme ve mesaj bazında ack/retry için RabbitMQ, Azure'da yönetilen servis için Azure Service Bus, yüksek hacim ve replay için Kafka; seri raw client ile başlayıp abstraction'lara geçiyor. Üç broker'ın modeli, pratik karşılaştırma tablosu, aynı OrderPlaced'ı üç client ile gönderip okuyan program, Docker Compose ortamı ve Amazon SQS/SNS notu.

8 Kas 2026 11 dk 5
Delivery Guarantee'leri: At-Most-Once, At-Least-Once ve "Exactly-Once" Gerçeği
Yazılım Mimarisi SERİ 04

Delivery Guarantee'leri: At-Most-Once, At-Least-Once ve "Exactly-Once" Gerçeği

Delivery guarantee'yi ack ile işin sırası belirler: önce ack at-most-once, önce iş at-least-once demektir; exactly-once yalnızca broker'ın kendi kontrol ettiği işlemlerde mümkündür, dış yan etkilerde at-least-once ile idempotent consumer birlikte effectively-once sağlar. RabbitMQ 4.4 üzerinde yeniden teslim, publisher confirm, duplicate'lerin üç kaynağı ve poison message'ın dead-letter queue'ya düşüşü gerçek çıktılarla.

7 Kas 2026 12 dk 5
Channel'lar: Point-to-Point Queue, Publish/Subscribe Topic ve Competing Consumer'lar
Yazılım Mimarisi SERİ 03

Channel'lar: Point-to-Point Queue, Publish/Subscribe Topic ve Competing Consumer'lar

Point-to-point channel'da her message'ı tek bir consumer alır, publish/subscribe'da her abone grubu kendi kopyasını alır; competing consumer'lar ise aynı channel'ı paylaşarak ölçekler. Aynı OrderPlaced'i RabbitMQ'ya ve Kafka'ya yayınlayan iki adapter, exchange/queue/binding ile topic/partition/consumer group karşılaştırması, Kafka 4.2 share group'ları ve queue ile log arasındaki seçim gerçek çıktılarla.

7 Kas 2026 12 dk 4
Blog Haritası