/ / Spravodlivé poradie vydavateľov v autobusoch Azure Service - azure, azureservicebus, azure-servicebus-queues

Spravodlivé riadenie vydavateľov v službe Azure Bus - azur, azureservicebus, azure-servicebus-fronts

Hľadám spôsob, ako spravovať toky správ od viacerých vydavateľov.

Vymyslený príklad je tento.

Každý z mojich vydavateľov odosiela úlohy, ktoré je možné rozdeliť na menšie komponenty, ktoré je možné spracovať v ľubovoľnom poradí. Spracovanie každej súčasti trvá niekoľko sekúnd.

Vydavateľ A odošle úlohu do frontu, ktorý pozostáva z 1 000 menších komponentov. Spotrebiteľ X sa prihlási na odber do frontu a začne spracovávať správy z frontu a odosiela výsledky do frontu výsledkov.

V polovici úlohy vydavateľ B odošle úlohu s 1 000 komponentmi.

Bol by som rád, keby sa spotrebiteľ X medzi nimi striedalsprávy od vydavateľa A a vydavateľa B, aby vydavateľ B nemusel čakať na dokončenie prvej úlohy pred prijatím výsledkov a / vydavateľ A teraz dostane výsledky pomalšie, keď vydavateľ B má úlohu. (Podobné ako spravodlivé fronty v sieťach)

Malo by sa to týkať ľubovoľného počtu vydavateľov.

Ak potom rozšírím spotrebiteľov, každý spotrebiteľ by sa mal správať rovnako. Na zabezpečenie spravodlivého poradia nemusia koordinovať svoje kroky, iba hrubá aproximácia je v poriadku.

Existuje spôsob, ako to vyriešiť v servisnej zbernici? Existuje ešte jedna azúrová technológia, ktorú by som mal namiesto toho používať?

odpovede:

1 pre odpoveď č. 1

Mohli by ste vytvoriť tému, do ktorého sa budú posielať správy menších komponentov.

V tomto téme vytvorte viac odberov. Napríklad 2 a nakonfigurujte každú tak, aby filtrovala 50% správ. Odber 1 by obsahoval správy od vydavateľa A a odber 2 by obsahoval správy od vydavateľa B. (tu ako)

Potom vytvorte čítačku pre každý odber, čo bude mať za následok možnosť spracovávať správy od viacerých vydavateľov súčasne pomocou viacerých odberateľov.