Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 23648|Atsakyti: 0

"RabbitMQ BasicQos" vartotojų lygiagrečiojo apdorojimo riba

[Kopijuoti nuorodą]
Paskelbta 2018-04-10 22:36:02 | | | |


Visų pirma, savo rabbitmq serveryje turime 100 neapdorotų pranešimų, atsitiktinai atidarome vartotojo klientą ir pasirodys tokia situacija:

100 vienetų duomenų, visi perkelti akimirksniu, bet mes negalime apdoroti tiek daug duomenų vienu metu su vienu klientu, ką turėtume daryti?




Kaip parodyta aukščiau esančiame paveikslėlyje, mes nepatvirtinome pranešimo gavimo! Jei gamintojas ir toliau jį siųs, mes, vartotojai, ir toliau jį gausime!

Įsivaizduokite, jei mes, vienas vartotojas, galime apdoroti iki 60 pranešimų per 1 minutę, tačiau gamintojas gali išsiųsti 300 pranešimų per 1 minutę, jei,Turime vartotojų klientą, kuriam reikia gauti 300 pranešimų vienu metu per 1 minutę, o tai viršijo maksimalią apkrovą, todėl serverio ištekliai gali būti išeikvoti ir vartotojas gali įstrigti
"RabbitMQ" teikia qoS (paslaugų kokybės) funkciją, tai yra, remiantis neautomatinio pranešimų patvirtinimo prielaida, jei tam tikras pranešimų skaičius (nustatant Qos vertę pagal vartojimą ar kanalą) nebus patvirtintas, nauji pranešimai nebus vartojami.



išankstinio paėmimo dydis:0
prefetchCount: liepia RabbitMQ nesiųsti vartotojui daugiau nei N pranešimų tuo pačiu metu, t. y. kai yra N pranešimų, kurie dar nebuvo užfiksuoti, vartotojas užblokuos, kol bus pranešimas ack
global:true\false Ar aukščiau nurodyti parametrai taikomi kanalams, paprasčiau tariant, ar aukščiau nurodyti apribojimai yra kanalo, ar vartotojo lygiu
Pastaba: Sakoma, kad prefetchSize ir global nėra įgyvendinti rabbitmq, todėl kol kas jų nestudijuosiu


prefetch_count įsigalioja, kai no_ask=falseTai yra, automatinio atsakymo atveju šios dvi reikšmės yraNegalioja

Nustatykite prefetchCount = 3 naudodami BasicQos metodą. Tai leidžia "RabbitMQ" vienu metu apdoroti iki 3 pranešimų vienam vartotojui. Kitaip tariant, jis neplatins naujų pranešimų vartotojui, kol negaus ack. Štai kaip jį nustatyti:





Kaip matote paveikslėlyje, vienu metu "Queue" klausosi du vartotojai, tačiau atkreipkite dėmesį, kad pranešimas čia bus automatiškai užfiksuotas tik tuo atveju, jei jį sunaudos vienas vartotojas, o kitas vartotojas nebegaus šios žinutės.

Oficialus svetainės pristatymas: http://www.rabbitmq.com/consumer-prefetch.html

Atkreipkite dėmesį, kad dėl šio metodo eilė gali būti pilna. Žinoma, jums gali tekti pridėti daugiau vartotojų arba sukurti daugiau virtualHosts, kad patobulintumėte savo dizainą.





Ankstesnis:EF įdiegia masinius duomenų bazių įterpimus, naujinimus ir naikinimus
Kitą:IIS Express žiniatinklio serverio paleisti nepavyko
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com