Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 23648|Odgovoriti: 0

RabbitMQ BasicQos omejitev za potrošniške paralelne procese

[Kopiraj povezavo]
Objavljeno na 10. 04. 2018 22:36:02 | | | |


Najprej imamo na našem rabbitmq strežniku 100 neobdelanih sporočil, naključno odpremo potrošniškega odjemalca in pojavi se naslednja situacija,

100 kosov podatkov, vsi v hipu, a ne moremo obdelati toliko podatkov hkrati z enim odjemalcem, kaj naj storimo?




Kot je prikazano na zgornji sliki, nismo potrdili prejema sporočila! Če bo proizvajalec še naprej pošiljal, ga bomo mi potrošniki še naprej prejemali!

Samo predstavljajte si, če lahko mi posamezni potrošniki obdelamo do 60 sporočil v eni minuti, medtem ko lahko proizvajalec pošlje 300 sporočil v eni minuti, če,Imamo potrošniškega odjemalca, ki mora prejeti 300 sporočil hkrati v eni minuti, kar je preseglo našo največjo obremenitev, kar lahko povzroči izčrpanost strežniških virov in zataknjenje potrošniškega odjemalca
RabbitMQ ponuja funkcijo qoS (Quality of Service), torej pod predpostavko neavtomatskega potrjevanja sporočil, če določeno število sporočil (z nastavitvijo vrednosti Qos na podlagi potrošnje ali kanala) ni potrjeno, novih sporočil ne bomo porabili.



prefetchSize:0
prefetchCount: Pove RabbitMQ, naj ne pošilja več kot N sporočil potrošniku hkrati, tj. ko je N sporočil, ki še niso bila ackirana, bo uporabnik blokiral, dokler ne pride do ACK sporočil
global:true\false Ne glede na to, ali se zgornje nastavitve nanašajo na kanale, preprosto povedano, ne glede na to, ali so zgornje omejitve na ravni kanalov ali na ravni uporabnikov
Opomba: Pravi se, da prefetchSize in global nista implementirana v rabbitmq, zato ju za zdaj ne bom preučeval


prefetch_count začne veljati, ko no_ask=napačnoTo pomeni, da sta pri samodejnem odgovarjanju ti dve vrednostiNi v veljaviod

Nastavi prefetchCount = 3 z metodo BasicQos. To omogoča RabbitMQ, da hkrati obdela do 3 sporočila na uporabnika. Z drugimi besedami, novih sporočil potrošniku ne bo distribuiral, dokler ta ne prejme ACK. Tukaj je, kako to nastaviti:





Kot lahko vidite na sliki, poslušata Queue hkrati dva potrošnika, vendar upoštevajte, da bo sporočilo tukaj samodejno sprejeto le, če ga porabi en uporabnik, drugi potrošnik pa tega sporočila ne bo več prejel.

Uradni uvod na spletno stran: http://www.rabbitmq.com/consumer-prefetch.html

Upoštevajte, da lahko ta metoda povzroči, da je vrsta polna. Seveda boste morda morali dodati več uporabnikov ali ustvariti več virtualnih gostiteljev, da izboljšate svoj dizajn.





Prejšnji:EF izvaja množično vstavljanje, posodabljanje in brisanje podatkovnih baz
Naslednji:Spletnega strežnika IIS Express ni bilo mogoče zagnati
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com