İçeriğe atla
Şimdi yükleniyor
AKAşkın KILIÇ
  • 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şkın KILIÇ 29/04/2026 2 Yorumlar

Service Bus Batch İşlemede Mesaj Bazlı Settlement Devrimi

Service Bus Batch İşlemede Mesaj Bazlı Settlement Devrimi
📑 İçindekiler
  1. E sonra? Ek Altyapı Kurmadan Retry Takibi Yapabiliyorsunuz
  2. Saha Tarafında Bu İş Nasıl Dürüyor?
  3. Python ve JavaScript Tarafında Ne Oluyor?
  4. Sıkça Sorulan Sorular
  5. Per-message settlement için Azure Functions'ın hangi versiyonu lazım?
  6. Dead-letter kuyruğundaki mesajları otomatik tekrar işleyebilir mıyım?
  7. Batch mode'da maxMessageCount'u ne kadar yüksek tutmalıyım?
  8. Per-message settlement kullanıyorsam idempotency'ye hâlâ ihtiyaç var mı?
  9. Managed Identity ile per-message settlement çalışıyor mu?
  10. Kaynaklar ve İleri Okuma

⏱️ 8 dk okuma📅 29 Nisan 2026🔄 Güncelleme: 16 Eylül 2026

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ü.

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

🤖Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
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

Azure West Europe'a Kaynak Açılamıyor: Vaka Analizi
Azure West Europe'a Kaynak Açılamıyor: Vaka Analizi21 Eyl 2026
Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü
Microsoft SQL’de Hibrit Arama: Metin ve Vektörün Gücü3 Eyl 2026
.NET Modernizasyonunda Yepyeni Bir Dönem: GitHub Copilot ile İstediğin Yerden
.NET Modernizasyonunda Yepyeni Bir Dönem: GitHub Copilot ile İstediğin Yerden20 Mar 2026
Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi
Kubernetes v1.36 Memory QoS: Katmanlı Bellek Koruması Geldi30 Nis 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
Ö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

GPT-6.1 Terra GitHub Copilot'ta: Terminal ve C# Odağı
Aşkın KILIÇ 0

GPT-6.1 Terra GitHub Copilot’ta: Terminal ve C# Odağı

26/10/2026
Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız
Aşkın KILIÇ 0

Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız

26/10/2026
PHP2Shell: Azure DevOps Ortamlarında Kontrol Listesi
Aşkın KILIÇ 0

PHP2Shell: Azure DevOps Ortamlarında Kontrol Listesi

26/10/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
  • GPT-6.1 Terra GitHub Copilot'ta: Terminal ve C# Odağı
    26/10/2026 GPT-6.1 Terra GitHub Copilot’ta: Terminal ve C# Odağı
  • Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız
    26/10/2026 Azure AI Speech LLM 09-2026: 25 Yeni Dil ve 2x Hız
  • PHP2Shell: Azure DevOps Ortamlarında Kontrol Listesi
    26/10/2026 PHP2Shell: Azure DevOps Ortamlarında Kontrol Listesi
  • Microsoft SQL Agent Skills, Azure SQL'i Agent'a Öğretir
    26/10/2026 Microsoft SQL Agent Skills, Azure SQL’i Agent’a Öğretir
  • .NET Brotli Açığı: 8, 9, 10 ve 11 İçin OOB Yama
    26/10/2026 .NET Brotli Açığı: 8, 9, 10 ve 11 İçin OOB Yama
  • DevOps Güncellemeleri
    09/03/2026 Azure DevOps Server Şubat Güncellemesi: Güvenlik
  • Azure Developer CLI 1.34: azure.yaml Katmanları ve
    04/10/2026 Azure Developer CLI 1.34: azure.yaml Katmanları ve
  • 2026-03-10_15-35-23
    10/03/2026 Microsoft 365 E7: Yapay Zeka ve Güvenlik Bir Arada
  • Artımlı Anlık Görüntü: Anında Geri Yükleme
    09/03/2026 Artımlı Anlık Görüntü: Anında Geri Yükleme
  • Bulut Sunucu Altyapısı
    09/03/2026 Microsoft Sovereign Cloud: İzolasyonda Güvenli Bulut
  • 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

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ı ASP.NET Core Azure azure app service Azure Cosmos DB Azure Developer CLI Azure DevOps Azure Functions Azure OpenAI azure sdk Azure SQL CI/CD CodeQL code review copilot Copilot CLI DevOps Entra ID geliştirici verimliliği GitHub GitHub Actions GitHub Copilot güvenlik Kimlik Doğrulama Kubernetes kurumsal güvenlik kurumsal yapay zeka maliyet optimizasyonu MCP Microsoft Agent Framework Microsoft Azure Microsoft Entra ID Microsoft Foundry MSVC otomasyon performans Pull Request RAG verimlilik veri yönetimi Visual Studio Visual Studio 2026 VS Code yapay zeka 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ı 507 yazı 🏗️ Bulut Altyapı 407 yazı 🤖 Yapay Zeka 331 yazı ☁️ Microsoft Azure 279 yazı 🔧 DevOps 277 yazı 🔒 Güvenlik & Kimlik 223 yazı 🏢 Kurumsal Teknoloji 107 yazı 📊 Veri & Analitik 78 yazı 🐳 Konteyner & Kubernetes 62 yazı 📧 Microsoft 365 22 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