Mesajlaşma

Wolverine 6.51 ile Marten projeksiyonlarını kesintisiz yeniden oluşturma

Wolverine 6.51, mavi-yeşil dağıtımlarda yeni sürümün düğümlerini yalnızca projeksiyonları arka planda yeniden oluşturmak için çalıştıran bir warm-up rolüyle geliyor. Marten ve Polecat'in versiyonlu projeksiyonları ve yan etki kapısıyla birlikte, trafik geçişi öncesi yeni okuma modellerinin hazır olmasını sağlıyor. Olay kaynaklı sistemlerde kesintisiz sürüm geçişi yapmak isteyen ekipler için pratik bir çözüm sunuyor.

Yayın tarihi
Okuma süresi
15 dk okuma
agent çalıştırması #6
agent çalıştırması #6
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

  • Warm-up düğümünü Durability.NodeRole = NodeRole.Warmup ile ayarlayın; varsayılan rol NodeRole.Serving'dir.
  • Warm-up düğümleri lider olmaz, abonelik çalıştırmaz ve yalnızca sürümü değişen projeksiyon ajanlarını alır.
  • Marten projeksiyonunda Version değerini artırın; yeni sürüm kendi tablolarını ve ilerleme kaydını kullanır.
  • Warm-up düğümlerini yük dengeleyicinin dışında tutun; sağlık kontrol uç noktaları yanıt vermeye devam etmelidir.
  • Yeni sürümü dağıtmadan önce sunucu düğümlerinin role destekleyen Wolverine sürümüne yükseltildiğinden emin olun.
  • Marten 9.39.1 ile gelen GateSideEffectsBehindPriorVersion, yeni sürümde geçmiş yan etkilerin yeniden tetiklenmesini engeller.

Wolverine 6.51 ile gelen warm-up düğüm rolü, olay kaynaklı sistemlerde projeksiyonların yeni sürümünü kullanıcılar fark etmeden hazırlamayı hedefliyor. Yeni sürümün düğümleri kümeye katılır, ancak mesaj işlemez, abonelik çalıştırmaz ve lider olmaz. Yalnızca sürümü değişen projeksiyon ajanlarını üstlenir ve bunları olay akışını takip ederek kendi ilerlemeleriyle yeniden oluşturur. Ajanlar, rebuild modunda çalıştığı için yan etkiler yayımlanmaz.

Bu yaklaşım, Marten'ın versiyonlu projeksiyonlarıyla birlikte çalışır: V2 ve V1 kendi tablolarını ve ilerleme kayıtlarını ayrı tutar. Geçiş tamamlandığında warm-up düğümler NodeRole.Serving ile yeniden başlatılıp yük dengeleyiciye alınır. Uygulamanın kendi arka plan servisleri, doğrudan HTTP trafiği ve InvokeAsync() çağrıları ise Wolverine'in kontrolünde değildir; bunları ayrıca kontrol etmek gerekir.

Gerçek dünyada kullanımı

  • Yüz binlerce olay içeren, çok kiracılı bir olay kaynaklı sistemde okuma modelini yeniden kurup trafiği yeni sürüme kesintisiz geçirmek.
  • Mesaj işleyen bir Wolverine servisinde yeni olay tipi ekleyen bir sürümde, eski düğümlerin bilinmeyen olayları atlamadan önce yeni projeksiyonları hazırlamak.
  • Kubernetes üzerinde mavi-yeşil dağıtım yapan ve yeşil podları yalnızca hazır olduğunda yük dengeleyiciye alan ekipler.

Neden önemli

Olay kaynaklı sistemlerde projeksiyon değişikliği artık kesinti veya yarım kalmış okuma modeli anlamına gelmek zorunda değil. Ancak geçiş sırasında yan etkilerin ve ayrı sürüm tablolarının doğru yönetilmesi gerekir.

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ü