Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 23648|Válasz: 0

RabbitMQ BasicQos fogyasztói párhuzamos feldolgozási korlát

[Linket másol]
Közzétéve 2018. 04. 10. 22:36:02 | | | |


Először is, 100 feldolgozatlan üzenet van a rabbitmq szerverünkön, véletlenszerűen nyitunk egy fogyasztói klienst, és a következő helyzet jelenik meg,

100 adatdarab, mind egy pillanat alatt átdobva, de egyetlen klienssel nem tudjuk egyszerre ennyi adatot feldolgozni, mit tegyünk?




Ahogy a fenti képen is látható, nem erősítettük meg az üzenet megérkezését! Ha a gyártó továbbra is küldi, mi, fogyasztók továbbra is megkapjuk!

Képzeld el, ha mi, egy fogyasztó, akár 60 üzenetet is feldolgozhatunk egy perc alatt, viszont egy producer 300 üzenetet küldhet egy perc alatt, ha,Van egy fogyasztói kliensünk, amelynek egyszerre 300 üzenetet kell fogadnia egy perc alatt, ami túllépte a maximális terhelésünket, ami a szerver erőforrásainak kimerüléséhez vezethet, és a fogyasztói kliens elakad
A RabbitMQ qoS (Quality of Service) funkciót kínál, vagyis az üzenetek nem automatikus megerősítésének alapja alapján, ha egy bizonyos számú üzenetet (a Qos értékét a fogyasztó vagy csatorna alapján állítva) nem erősítenek meg, akkor új üzenetek nem kerülnek el.



prefetchSize:0
prefetchCount: Azt mondja a RabbitMQ-nak, hogy egyszerre ne küldjön több üzenetet a fogyasztónak, azaz ha van N üzenet, ami még nem érkezett vissza, a felhasználó blokkol, amíg nem érkezik üzenet jóváhagyása
global:true\false Egyszerűen, hogy a fenti beállításokat csatornákra alkalmazzák, akár csatornaszinten, akár fogyasztói szinten vannak-e a korlátozások
Megjegyzés: Azt mondják, hogy a prefetchSize és a global nem implementálják a rabbitmq, ezért egyelőre nem fogom tanulmányozni őket


prefetch_count akkor lép életbe, amikor no_ask=hamisVagyis az automatikus válasz esetén ezek a két érték a következők:Nem hatokof

Állítsuk be prefetchCount = 3-at a BasicQos módszerrel. Ez lehetővé teszi, hogy a RabbitMQ egyszerre akár 3 üzenetet is feldolgozzon fogyasztónként. Más szóval, nem fog új üzeneteket küldeni a fogyasztónak, amíg az nem kapja meg az elutasítást. Íme, hogyan lehet beállítani:





Ahogy az ábrán látható, két felhasználó egyszerre hallgatja a Queue-t, de fontos megjegyezni, hogy az üzenetet csak akkor veszik fel automatikusan, ha az egyik fogyasztó fogyasztja el, és a másik felhasználó nem kapja meg ezt az üzenetet többé.

Hivatalos weboldal bevezetése: http://www.rabbitmq.com/consumer-prefetch.html

Fontos megjegyezni, hogy ez a módszer miatt a sor megtelhet. Természetesen lehet, hogy több Fogyasztót kell hozzáadnod vagy több virtuális Hostet kell létrehoznod a dizájn finomításához.





Előző:Az EF tömeges adatbázis-beillesztéseket, frissítéseket és törléseket valósít meg
Következő:Az IIS Express webszervert nem lehetett elindítani
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com