Той е неопределен - 3 basicConsume
операции се изпълняват на потребителския канал (ако увеличите concurrentConsumers, това са 3 на потребител). Операциите basicConsume
обикновено се изпълняват в реда, в който са дефинирани опашките (във всички случаи, освен ако една или повече от опашките временно не "липсват").
Брокерът ще изпраща съобщения от всяка опашка до prefetchCount
(basicQos
) за всяка опашка (по подразбиране 1).
Не знам действителния алгоритъм, използван от брокера в този сценарий, но трябва да приемете, че е неопределен - Spring AMQP ще ги достави на слушателя(ите) в реда, получен от брокера.
РЕДАКТИРАНЕ
Току-що проведох тест (2 опашки всяка с 2 съществуващи съобщения) и те бяха доставени кръгово - q1m1, q2m1, q1m2, q2m2, когато предварителното извличане беше 1.
С предварително извличане, зададено на 4, виждам q1m1, q1m2, q2m1, q2m2.
Разбира се, когато опашките са празни, съобщенията обикновено ще пристигат в реда, в който пристигат при брокера.
РЕДАКТИРАНЕ 2
Вижте Потребителско предварително извличане.
Spring AMQP използва варианта basicQos
без глобален аргумент, така че се използва по подразбиране (false
). Това означава, че предварителното извличане е за всеки потребител.
person
Gary Russell
schedule
09.05.2016