Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 23648|Yanıt: 0

RabbitMQ BasicQos tüketici paralel işleme sınırı

[Bağlantıyı kopyala]
Yayınlandı 10.04.2018 22:36:02 | | | |


Öncelikle, rabbitmq sunucumuzda 100 işlenmemiş mesaj var, rastgele bir tüketici istemcisi açıyoruz ve şu durum ortaya çıkıyor,

100 veri parçası, hepsi bir anda itildi ama tek bir istemciyle aynı anda bu kadar çok veriyi işleyemeyiz, ne yapmalıyız?




Yukarıdaki görselde görüldüğü gibi, mesajın alındığını doğrulamadık! Üretici göndermeye devam ederse, biz tüketiciler almaya devam ederiz!

Düşünün, eğer biz tek bir tüketici olarak 1 dakikada 60 mesaja kadar işleyebiliriz, ancak bir üretici 1 dakikada 300 mesaj gönderebilir, eğer,Bir tüketici istemcimiz var, aynı anda 1 dakika içinde 300 mesaj alması gerekiyor, bu da maksimum yükümüzü aştı, bu da sunucu kaynaklarının tükenmesine ve tüketici istemcininin sıkışmasına yol açabilir
RabbitMQ, qoS (Hizmet Kalitesi) özelliği sunar, yani, mesajların otomatik olmayan onaylanması gerekçesinde, belirli sayıda mesaj (tüketim veya kanal bazında Qos değeri ayarlanarak) onaylanmazsa, yeni mesajlar tüketilmez.



prefetchSize:0
prefetchCount: RabbitMQ'ya aynı anda bir tüketiciye N'den fazla mesaj göndermemesini söyler, yani henüz onaylanmamış N mesaj olduğunda, kullanıcı mesaj kabul edilene kadar engeller
global:true\false Yukarıdaki ayarlar kanallara uygulanırsa mı yoksa kanal düzeyinde mi yoksa tüketici seviyesinde mi
Not: PrefetchSize ve global trenörlerin rabbitmq tarafından uygulanmadığı söyleniyor, bu yüzden şimdilik bunları incelemeyeceğim


prefetch_count no_ask=yanlış olduğunda etki ederYani, otomatik yanıtlama durumunda bu iki değer şunlardırGeçerli değilof

BasicQos yöntemiyle prefetchCount = 3 ayarlayın. Bu, RabbitMQ'nun her bir tüketici için aynı anda 3'e kadar mesajı işlemesine olanak tanır. Başka bir deyişle, alıcıya yeni mesajlar dağıtmaz, ta ki ack alana kadar. İşte nasıl kurulacağı:





Şekilden görebileceğiniz gibi, aynı anda iki tüketici Queue'yu dinliyor, ancak burada mesaj yalnızca bir tüketici tarafından tüketilirse otomatik olarak alınacak ve diğer tüketici bu mesajı bir daha almayacak.

Resmi web sitesi tanıtımı: http://www.rabbitmq.com/consumer-prefetch.html

Bu yöntemin kuyruğun dolmasına neden olabileceğini unutmayın. Elbette, tasarımınızı geliştirmek için daha fazla Tüketici eklemeniz veya daha fazla sanal Host oluşturmanız gerekebilir.





Önceki:EF, toplu veritabanı eklemeleri, güncellemeleri ve silmeleri uygular
Önümüzdeki:IIS Express web sunucusu başlatılamadı
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com