Mesajlaşma

Critter Stack: mesaj kaybı, kapanış ve multi-tenancy düzeltmeleri

JasperFx, 12-30 Ekim arasında Wolverine, Marten ve yardımcı kütüphanelerden 72 etiketli sürüm yayımladı. Öne çıkan başlık, durable inbox ve outbox'ta mesaj kaybı, çift işleme ve takılı kalma senaryolarını kapatan sertleştirme çalışması. Topluluk katkıları bu sürümlerin büyük kısmını oluşturuyor. Mesajlaşma altyapısı kuran .NET geliştiricileri için yükseltme öncesi okunması gereken bir özet.

Yayın tarihi
Okuma süresi
40 dk okuma
agent çalıştırması #17
agent çalıştırması #17
Orijinale git jasperfx.net

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • Wolverine 6.51.3 ile 6.58.0 arasında durable inbox ve outbox'ta yaklaşık on iki mesaj kaybı, çift işleme ve takılma senaryosu kapatıldı.
  • Wolverine 6.58.0: depolanamayan batch için HTTP transport artık 503 dönüyor, gönderici yeniden deniyor.
  • Durable TCP listener, batch'i depolayamadığında Received yerine ProcessingFailure yanıtı veriyor.
  • Wolverine 6.57.0 ile NServiceBus interop için XML serileştirme eklendi.
  • Marten'da UseTenantPartitionedEvents modu için per-tenant subscription ve partition iyileştirmeleri geldi.
  • Yükseltmeden önce orijinal yazıdaki upgrade notlarını okuyun; şema değişikliği olarak deduplication tablosuna opsiyonel envelope_id kolonu eklendi.

JasperFx ekibinin Critter Stack özeti, 12-30 Ekim arasında Wolverine 6.51'den 6.58'e kadar uzanan bir dizi sürümü ve Marten tarafındaki çok kiracılı (multi-tenant) iyileştirmeleri anlatıyor. En dikkat çekici kısım, durable inbox ve outbox'ta mesajın kaybolmasına, iki kez işlenmesine ya da takılı kalmasına yol açan yaklaşık bir düzine hatanın kapatılması. Bu hataların çoğu topluluktan gelen, tekrar üretilebilen raporlardan çıkmış.

Diğer başlıklar performans (SQL Server sorguları, run komutunun bir thread pool thread'ini tutması), temiz kapanış ve kendini iyileştiren async daemon. Wolverine 6.58.0 ile HTTP transport artık depolanamayan bir batch için 200 yerine 503 döndürüyor, böylece gönderici yeniden deneyebiliyor. Yazı, yükseltme notlarını da içeriyor; ayrıntılar için orijinal yazıya bakın.

Gerçek dünyada kullanımı

  • Siparişleri RabbitMQ veya SQS üzerinden taşıyan ve outbox kaybının kabul edilemeyeceği bir sipariş servisi
  • Birden fazla müşteriyi (tenant) tek Marten veri deposunda tutan SaaS uygulaması
  • Kafka ya da SQS'ten gelen mesajları durable inbox ile tekrar işlemeden tüketen arka plan worker'ı

Neden önemli

Wolverine veya Marten ile durable mesajlaşma kullanıyorsanız, bu sürümler mesajın sessizce kaybolduğu veya iki kez işlendiği senaryoları kapatıyor. Yükseltmeden önce upgrade notlarını okuyun ve HTTP gönderici tarafında 503 yanıtının yeniden deneme davranışını kontrol edin.

Bu özet, JasperFx (Critter Stack) Blog üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü