Я реализовал приоритетную очередь в ActiveMQ. Если очередь постоянно заливается сообщениями с высоким приоритетом, сообщения с низким приоритетом никогда не будут обработаны. Как ActiveMQ обрабатывает такие ситуации или как эту ситуацию можно избежать или обработать?Как ActiveMQ предотвращает голодание сообщений с низким приоритетом?
ответ
ActiveMQ не пытается ничего сделать, чтобы предотвратить это, так как вам решать его на основе потребностей вашего приложения. Если у вас есть такая ситуация, вам может потребоваться вместо этого использовать очередь для каждого приоритета, чтобы обеспечить балансировку нагрузки между очередями.
Расширяясь к ответу Тима Биша, в ActiveMQ есть некоторые функции, которые можно использовать для обработки этой ситуации.
Вы можете настроить виртуальный пункт назначения, чтобы отфильтровать сообщения с высоким и низким приоритетом, как это (внутри тега virtualDestinationInterceptor).
<virtualDestinations>
<compositeQueue name="ALL">
<forwardTo>
<filteredDestination selector="JMSPriority < 5" queue="LOW.PRIO"/>
<filteredDestination selector="JMSPriority > 4" queue="HIGH.PRIO"/>
</forwardTo>
</compositeQueue>
</virtualDestinations>
Тогда вы можете следовать предложенной альтернативной стратегии here. Вы помещаете одного потребителя в очередь LOW.PRIO и нескольких потребителей в очередь HIGH.PRIO. Затем будут обрабатываться сообщения LOW.PRIO, но с меньшим количеством потоков, чем сообщения с высоким приоритетом.
Вы также можете читать сообщения непосредственно из очередей «ВСЕ» с указанными селекторами в своем потребительском приложении.
- 1. Приоритетные сообщения JMS, вызывающие голодание сообщения с более низким приоритетом
- 2. Как планировщик процесса Linux предотвращает голодание процесса
- 3. Задачи qsub с низким приоритетом?
- 4. Выдача обновлений с низким приоритетом
- 5. Как запустить процесс с низким приоритетом? C#
- 6. Как завершить прерывание с более низким приоритетом?
- 7. Запуск или установка процесса с низким приоритетом
- 8. Scala, импорт с более низким приоритетом?
- 9. передача файлов с низким приоритетом http?
- 10. matlab системный вызов с низким приоритетом
- 11. Сделать Исполняемые работать на более низким приоритетом
- 12. Сделать привязку/IValueConverter более низким приоритетом
- 13. Как выполнить команду Linux на Android/Java с низким приоритетом?
- 14. Как будет выполняться задача с низким приоритетом в VxWorks
- 15. Запустите процесс (с использованием Runtime.exec/ProcessBuilder.start) с низким приоритетом
- 16. Обработка сообщений с DLQ ActiveMQ
- 17. SCHED_FIFO поток с более высоким приоритетом получает вытеснение потоком с более низким приоритетом SCHED_FIFO?
- 18. Операторы с более низким приоритетом связывают неассоциативные операторы с более высоким приоритетом?
- 19. Окончание группы сообщений ActiveMQ
- 20. Запустите процесс с низким приоритетом. Возможно ли это без попыток?
- 21. Планирование задач для потока пользовательского интерфейса с низким приоритетом
- 22. Запланируйте задачу с низким приоритетом на основной поток
- 23. Как работать с группами сообщений в ActiveMQ
- 24. Управление потоками с высоким/низким приоритетом в .net
- 25. Сохранение сообщений ActiveMQ Blob
- 26. Задание taskDelay (0) даст CPU задаче с более низким приоритетом
- 27. Выполнение задач в фоновом режиме с более низким приоритетом ЦП
- 28. Пересылка сообщений ActiveMQ
- 29. Выявление асинхронных сообщений ActiveMQ?
- 30. быстрое потребление сообщений ActiveMQ