Подтвердить что ты не робот

Является ли приоритет сообщений неотъемлемо несущественным в системах очереди сообщений?

Похоже, что большинство систем обмена сообщениями, на которые я смотрел, имеют базовую, если таковые имеются, поддержку приоритетных очередей сообщений. Например, только AMQP задает минимум 2 приоритета. RabbitMQ, реализация AMQP, не поддерживает каких-либо приоритетов. ActiveMQ будет получать поддержку для 10 приоритетов сообщений в версии 5.4 через пару дней. 10 уровней приоритета - это спецификация приоритетная очередь в смысле отсутствия сообщений слово упорядочивает его содержимое на основе произвольного поля с неограниченным диапазоном приоритетов. Почему такая реализация не существует как часть системы обмена сообщениями? Как я спросил в заголовке, является ли приоритет неотъемлемой концепцией без обмена сообщениями?

Я понимаю, что один ответ может заключаться в том, что концепция приоритета вводит возможность бесконечно томящихся сообщений в очереди при обработке сообщений с более высоким приоритетом. Существуют ли другие причины?

4b9b3361

Ответ 1

В общем случае системы очереди сообщений используются для обеспечения доставки сообщений между разрозненными системами.

Обычно существует некоторая гарантия один раз и только один раз, и часто это еще одно обещание, что сообщения придут в порядок.

В общем, тогда он информирует о конструкции системы (систем), которую вы строите и соединяете вместе.

Концепции приоритета между развязанными системами часто не имеют большого смысла.

Тем не менее, одним из распространенных способов решения проблемы является наличие двух очередей, один высокий приоритет и один приоритет фона. Однако неотъемлемая проблема становится очевидной, поскольку, конечно, принимающая система, вероятно, не может остановить обработку запроса низкого уровня, когда приходит запрос с более высоким приоритетом, поэтому они обычно выполняются последовательно на этом уровне детализации.

Ответ 2

BTW ActiveMQ теперь поддерживает приоритетный обмен сообщениями в 5.4.x через заголовки JMSPriority.

Вместо того, чтобы заставить брокера сообщений повторно заказывать сообщения в каком-то буфере по мере их поступления, часто используются лучшие методы для реализации приоритетного потребления, такие как имеющий выделенный пул потребителей для высоких приоритетные сообщения. Тогда, независимо от того, сколько шума существует из сообщений с низким приоритетом, сообщения с высоким приоритетом всегда получатся.

Учитывая асинхронный характер обмена сообщениями с его легкими для заполнения буферами, сетевыми каналами и очередями предварительной выборки с сообщениями с низким приоритетом при использовании таких вещей, как заголовки JMSPriority и т.д.

Ответ 3

Мне кажется, что идея, вероятно, более сродни "приоритету процесса", чем значения приоритета в очереди приоритетов. Разумеется, это согласуется с предложением или двумя о нем в спецификации JMS, и, очевидно, с использованием спецификации AMQP.

Ответ 4

Следует быть осторожным в том, что слишком много приоритетов не используются до того момента, когда использование программы становится более обременительным, чем просмотр каждого сообщения.