İçeriğe atla
Şimdi yükleniyor
  • Anasayfa
  • Azure & Bulut
    • Microsoft Azure
    • Bulut Altyapı
    • Microsoft 365
  • Yazılım
    • DevOps
    • Geliştirici Araçları
    • Konteyner & K8s
  • AI & Veri
    • Yapay Zeka
    • Veri & Analitik
  • Güvenlik
    • Güvenlik & Kimlik
    • Kurumsal Teknoloji
  • Hakkımda
    • İletişim
×
  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka
  • Başlangıç
  • DevOps
  • Service Bus Batch İşlemede Mesaj Bazlı Settlement Devrimi
Bulut Altyapı DevOps Geliştirici Araçları Azure Functions, Azure Service Bus, batch işleme, idempotency, message settlement, retry stratejisi, zehirli mesaj A.KILIÇ 29/04/2026 2 Yorumlar

Service Bus Batch İşlemede Mesaj Bazlı Settlement Devrimi

Service Bus Batch İşlemede Mesaj Bazlı Settlement Devrimi
Ana Sayfa › Bulut Altyapı › Service Bus Batch İşlemede Mesaj Bazlı Settlement Devrimi
⏱️ 8 dk okuma📅 29 Nisan 2026🔄 Güncelleme: 15 Temmuz 2026👁️ görüntülenme

Ne yalan söyleyeyim, Bir finans müşterisinde geçen ay yaşadığımız olay tam olarak şuydu: Azure Functions üzerinde Service Bus trigger’ı batch modda çalışıyordu, 50 mesajlık bir batch geliyordu ve içinden bir tanesi — sadece bir tanesi — bozuk formatlı olduğu için tüm batch başarısız oluyordu. 49 mesaj tekrar kuyruğa düşüyordu. Sonra yine işleniyordu. Sonra aynı bozuk mesaj tekrar geliyordu. Döngü başa sarıyordu. Peki bunu neden söylüyorum? Kısacası, sınır bozucu bir kısır döngüydü.

📋 İçindekiler

  1. E sonra? Ek Altyapı Kurmadan Retry Takibi Yapabiliyorsunuz

    Ama şu küçük detay baya önemli: abandon yaparken application properties’i değiştirebilmeniz güzel çalışıyor.
    RetryCount gibi bir property ekleyip her abandon’da artırabiliyorsunuz; sonra fonksiyonun başında bu değeri kontrol edip mesela 5’ten fazla retry olan mesajı direkt dead-letter’a gönderebiliyorsunuz.

    Mesaj bazlı settlement ile exponential backoff, retry tracking ve poison message handling’i tek bir Function içinde ek altyapıya gerek kalmadan yapabilirsiniz.
    Bu da serverless mesaj işlemenin nihayet düzgün davranması demek.

    Saha Tarafında Bu İş Nasıl Dürüyor?

    Peki Türkiye’deki kurumsal yapılarda durum nasıl? Hmm… açıkçası global dokümantasyonda okuduğunuz kadar pürüzsüz gitmiyor her zaman. Daha fazla bilgi için

    Maliyet tarafını da unutmayın.
    Batch mode + per-message settlement kullandığınızda Function invocation sayısı düşüyor çünkü aynı anda çok kayıt işliyorsunuz — valla güzel iş çıkarmışlar —. Her kayıt için ayrı settlement API çağrısı yapıyorsunuz.
    Çok yüksek throughput senaryolarında — saniyede binlerce ileti gibi — bunun maliyetini hesaba katmak lazım.
    Küçük-orta ölçekte pek hissettirmez ama günde milyonlarca ileti varsa TL bazında fark yaratabilir.
    Neyse uzatmayayım; nokta net zaten.

    Böyle event-driven yapılarda agent’lar arası iletişim de ayrı mesele tabiî.
    Farklı platformlardaki agent’ların haberleşmesi gerekiyorsa,
    A2A v1 ile.NET’te Çapraz Platform Agent İletişimi
    // kod değil tabiî :)
    yazımda bunu ayrıca anlatmıştım.
    Sız ne dersiniz?

    Python ve JavaScript Tarafında Ne Oluyor?

    Yanı, This özellik sadece.NET’e özel değil;
    Python. JavaScript/TypeScript tarafında da kullanılabiliyor.
    Ama burada küçük bir not düşeyim: her dil SDK’sının olgunluk seviyesi aynı değil,
    yanı görünürde benzer duran şeylerin altında ufak farklar çıkabiliyor.

    .NET tarafı en oturmuş olan kısım gibi dürüyor;
    settlement aksiyonları temiz ilerliyor,
    daha tip güvenli diyelim doğrudan type-safe demeyeyim...

    Sıkça Sorulan Sorular

    Per-message settlement için Azure Functions’ın hangi versiyonu lazım?

    Isolated worker model (out-of-process) kullanıyorsanız.NET için Microsoft.Azure.Functions.Worker.Extensions.ServiceBus 5.x veya üzeri gerekiyor. In-process model’de de destekleniyor aslında, (yanlış duymadınız). Microsoft yeni projelerde isolated model’i önerdiğini söylüyor — bunu aklınızın bir köşesinde tutun. Python ve Node.js için de en güncel extension bundle’ları kullanmanız yeterli.

    Dead-letter kuyruğundaki mesajları otomatik tekrar işleyebilir mıyım?

    Evet, dead-letter kuyruğuna ayrı bir Function trigger bağlayabilirsiniz. Ama bence bunu hemen otomatikleştirmek yerine, önce mesajın neden dead-letter’a düştüğünü analiz eden bir mekanizma kurmanız çok daha mantıklı. Sız hiç denediniz mi? Yoksa aynı bozuk mesajı sürekli tekrar işlemeye çalışırsınız — yanı tam da kaçınmak istediğimiz o kısır döngüye girmiş olursunuz.

    Batch mode’da maxMessageCount’u ne kadar yüksek tutmalıyım?

    Dürüst olmak gerekirse, Bu tamamen iş yükünüze bağlı. Tecrübeme göre 16-32 arasında başlayıp monitöring verilerine göre ayarlamak en sağlıklısı. Çok yüksek tutarsanız (belki yanılıyorum ama) — mesela 100+ gibi — lock timeout sorunları yaşayabilirsiniz, hani tüm mesajları işlemeniz lock süresi içinde bitmeyebilir. Çok düşük tutarsanız da batch kullanmanın avantajını kaybedersiniz zaten.

    Per-message settlement kullanıyorsam idempotency’ye hâlâ ihtiyaç var mı?

    Kısa cevap: evet, ama çok daha az. Complete edilen mesajlar kuyruktan siliniyor, yanı normal akışta duplicate gelmiyor. Açıkçası nadir bir senaryo, ama network partition gibi durumlarda mesaj complete edilmiş olsa bile SDK tarafında onay alınamayıp tekrar işlenebiliyor. Bu yüzden kritik iş süreçlerinde yine de temel seviyede bir idempotency koruması bulundurun.

    Peki neden?

    Managed Identity ile per-message settlement çalışıyor mu?

    Evet, çalışıyor. Ama connection string yerine managed identity kullanıyorsanız, Service Bus namespace’ine doğru RBAC rollerini atadığınızdan emin olun. En azından “Azure Service Bus Data Receiver” rolü gerekiyor — settlement işlemleri için de bu rol ya da “Azure Service Bus Data Owner” yeterli oluyor.

    Kaynaklar ve İleri Okuma

    Azure Functions Service Bus Trigger — Resmî Dokümantasyon

    Per-message Settlement in Azure Service Bus — Azure SDK Blog

    Azure Service Bus Message Sessions ve Settlement — Microsoft Learn

    Aşkın KILIÇ
    Aşkın KILIÇYazar

    20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

    AZ-305AZ-104AZ-500AZ-400DP-203AI-102

    İlgili Yazılar

    PowerShell 7.6 Neden Geç Geldi? Perde Arkası ve Dersler
    PowerShell 7.6 Neden Geç Geldi? Perde Arkası ve Dersler2 Nis 2026
    Azure DocumentDB ile Bankalarda Customer 360: Dağınık Veriden Net Resme
    Azure DocumentDB ile Bankalarda Customer 360: Dağınık Veriden Net Resme2 May 2026
    Visual Studio'da Yerleşik Agent Skills: .NET ve Azure
    Visual Studio'da Yerleşik Agent Skills: .NET ve Azure20 Tem 2026
    MCP C# SDK 1.0 Yayınlandı: Yetkilendirme, İkonlar ve Gerçek Dünya Notları
    MCP C# SDK 1.0 Yayınlandı: Yetkilendirme, İkonlar ve Gerçek Dünya Notları21 Mar 2026

    Bu içerik işinize yaradı mı?

    Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

    YouTube GitHub

    Haftalık Bülten

    Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

Etiket Azure Functions Azure Service Bus batch işleme idempotency message settlement retry stratejisi zehirli mesaj
A.KILIÇ

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

view all posts
Önceki yazı

A2A v1 ile .NET’te Çapraz Platform Agent İletişimi

Sonraki yazı

Gateway API v1.5: Altı Özellik Stable Oldu, Ne Değişiyor?

İlginizi Çekebilir

GitHub Actions Şüpheli Workflow'ları Onaya Alıyor
A.KILIÇ 0

GitHub Actions Şüpheli Workflow’ları Onaya Alıyor

28/07/2026
.NET'te MCP Sunucularından Agent Skill Keşfi
A.KILIÇ 0

.NET’te MCP Sunucularından Agent Skill Keşfi

28/07/2026
Azure App Service Linux'ta Startup Log Komutları
A.KILIÇ 0

Azure App Service Linux’ta Startup Log Komutları

28/07/2026

2 comments

comments user
Merve Ş. 29/04/2026 18:02

Tam da geçen hafta bu sorunla boğuştuğum için yazı çok yerinde geldi. Batch içinde bir mesaj patladığında başarılı olanların da tekrar işlenmesi gerçekten can sıkıcı bir durum, mesaj bazlı settlement ile çözüm mantıklı görünüyor. Bu arada şu yazınız da güzeldi: GPT-5.5 ve Microsoft Foundry: Kurumsal AI Artık Ciddi — https://www.askinkilic.com.tr/gpt-55-ve-microsoft-foundry-kurumsal-ai-artik-ciddi/

comments user
Cenk B. 29/04/2026 23:43

Bunu acı tecrübeyle öğrendim, production’da bir mesaj yüzünden tüm batch’in tekrar işlenmesi ciddi sorun yaratıyor. Mesaj bazlı settlement’a geçince gerçekten fark yaratıyor mu peki, latency açısından bir etkisi oluyor mu?

Yorumlar kapalı.

Yazı Ara

Takip Edin

  • Takipçi
  • Takipçi
  • Takipçi
  • Abone
  • Takipçi
  • GitHub Actions Şüpheli Workflow'ları Onaya Alıyor
    28/07/2026 GitHub Actions Şüpheli Workflow’ları Onaya Alıyor
  • .NET'te MCP Sunucularından Agent Skill Keşfi
    28/07/2026 .NET’te MCP Sunucularından Agent Skill Keşfi
  • Azure App Service Linux'ta Startup Log Komutları
    28/07/2026 Azure App Service Linux’ta Startup Log Komutları
  • VS Code'da MSBuild Binlog'ları Copilot ile Analiz Etme
    27/07/2026 VS Code’da MSBuild Binlog’ları Copilot ile Analiz Etme
  • How AI is expanding what people do at work
    27/07/2026 How AI is expanding what people do at work
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
    30/04/2026 Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
  • Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
    11/04/2026 Copilot Cloud Agent Metriği: Kullanımı Ölçmek Kolaylaştı
  • Azure MCP Server 2.0: Kendi Sunucunuzda Ajan Otomasyonu
    10/04/2026 Azure MCP Server 2.0: Kendi Sunucunuzda Ajan Otomasyonu
  • .NET 11 Preview 2: Deneyimlerim, Yenilikler ve Gerçek Hayat Notları
    21/03/2026 .NET 11 Preview 2: Deneyimlerim, Yenilikler ve Gerçek Hayat Notları
  • GitHub Copilot Pro Denemeleri Neden Durdu?
    11/04/2026 GitHub Copilot Pro Denemeleri Neden Durduruldu?
  • vcpkg'de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
    06/04/2026 vcpkg’de Paralel Kurulum ve Güvenlik Yaması: Neler Değişti?
  • MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
    08/04/2026 MCP Apps’i Kolaylaştıran Fluent API: Sahada Ne Değişiyor?
  • Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
    06/04/2026 Yapay Zekâ Çağında Sanayi Politikası: Asıl Mesela Ne?
  • Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler
    10/04/2026 Microsoft Foundry Mart 2026: Sahadan İlk İzlenimler

SİZİN İÇİN DERLEDİK

GitHub Actions Şüpheli Workflow'ları Onaya Alıyor
DevOps Güvenlik & Kimlik

GitHub Actions Şüpheli Workflow’ları Onaya Alıyor

28/07/2026 A.KILIÇ
.NET'te MCP Sunucularından Agent Skill Keşfi
Geliştirici Araçları Microsoft Azure Yapay Zeka

.NET’te MCP Sunucularından Agent Skill Keşfi

28/07/2026 A.KILIÇ
Azure App Service Linux'ta Startup Log Komutları
Bulut Altyapı DevOps Geliştirici Araçları

Azure App Service Linux’ta Startup Log Komutları

28/07/2026 A.KILIÇ
VS Code'da MSBuild Binlog'ları Copilot ile Analiz Etme
DevOps Geliştirici Araçları Microsoft Azure

VS Code’da MSBuild Binlog’ları Copilot ile Analiz Etme

27/07/2026 A.KILIÇ
How AI is expanding what people do at work
Kurumsal Teknoloji Yapay Zeka

How AI is expanding what people do at work

27/07/2026 A.KILIÇ
Dependabot'ta Bekleme Süresi: Neden Üç Gün?
DevOps Güvenlik & Kimlik

Dependabot’ta Bekleme Süresi: Neden Üç Gün?

27/07/2026 A.KILIÇ
cgroup v1 CPU Shares'ten v2 CPU Weight'e Yeni Dönüşüm
Bulut Altyapı DevOps Konteyner & Kubernetes

cgroup v1 CPU Shares’ten v2 CPU Weight’e Yeni Dönüşüm

27/07/2026 A.KILIÇ
Azure Cosmos DB'de Partition Key Değiştirme Yolları
Bulut Altyapı Veri & Analitik

Azure Cosmos DB’de Partition Key Değiştirme Yolları

26/07/2026 A.KILIÇ
Kudu'da Log Görüntüleme: Linux App Service için Yeni Sayfa
DevOps Microsoft Azure

Kudu’da Log Görüntüleme: Linux App Service için Yeni Sayfa

26/07/2026 A.KILIÇ
GitHub Projects ve Issues'ta Multi-Select Alanlar
Bulut Altyapı Geliştirici Araçları

GitHub Projects ve Issues’ta Multi-Select Alanlar

26/07/2026 A.KILIÇ
Azure Cosmos DB Design Patterns: Çalışan Örnekler
Bulut Altyapı DevOps Veri & Analitik

Azure Cosmos DB Design Patterns: Çalışan Örnekler

26/07/2026 A.KILIÇ
TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız
Bulut Altyapı Geliştirici Araçları

TypeScript 7.0 Yayınlandı: Go ile 10 Kat Hız

25/07/2026 A.KILIÇ

Hakkımda

Aşkın KILIÇ

Microsoft Azure Çözüm Uzmanı. Bulut bilişim, yapay zekâ, DevOps ve kurumsal güvenlik üzerine yazılar yazıyorum.

Devamını Oku →

Kategoriler

  • Azure
  • Bulut Altyapı
  • DevOps
  • Geliştirici Araçları
  • Güvenlik & Kimlik
  • Konteyner & Kubernetes
  • Kurumsal Teknoloji
  • Microsoft 365
  • Microsoft Azure
  • Veri & Analitik
  • Yapay Zeka

Popüler Etiketler

AI ajanları Azure Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL açık kaynak bulut bilişim C++ CI/CD copilot Copilot CLI DevOps DevSecOps geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes Kurumsal geliştirme kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu Microsoft Agent Framework Microsoft Azure Microsoft Foundry OpenAI otomasyon performans Pull Request Python RAG SEO uyumlu verimlilik veri yönetimi Visual Studio VS Code yapay zeka yapay zeka ajanları Yazılım geliştirme
  • Gizlilik Politikası
  • Çerez Politikası
  • Kullanım Koşulları
  • Hakkımda
  • İletişim

© 2026 Aşkın KILIÇ | Tüm hakları saklıdır. | Powered By SpiceThemes

Çerez tercihleri Zorunlu çerezler sitenin çalışması için kullanılır. Analitik çerezler yalnız açık izninizden sonra Google Analytics ve Microsoft Clarity için etkinleştirilir. KVKK ve Çerez Politikası
✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Ana Sayfa
Kategoriler
💻 Geliştirici Araçları 301 yazı 🏗️ Bulut Altyapı 256 yazı 🤖 Yapay Zeka 218 yazı 🔧 DevOps 175 yazı ☁️ Microsoft Azure 169 yazı 🔒 Güvenlik & Kimlik 154 yazı 🏢 Kurumsal Teknoloji 64 yazı 📊 Veri & Analitik 55 yazı 🐳 Konteyner & Kubernetes 44 yazı 📧 Microsoft 365 19 yazı 📁 Azure 1 yazı
Ara
Popüler
Yapay Zeka Azure Kubernetes DevOps Copilot Docker
Paylaş
WhatsApp
İçindekiler
    ← A2A v1 ile .NET’te Çapra...
    Gateway API v1.5: Altı Özellik... →
    📩

    Gitmeden önce!

    Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

    🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

    📬 Haftalık bülten: Teknoloji + AI haberleri
    Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.
    GitHub RSS