Очереди с приоритетами, как следует из их названия, предоставляют приоритет более важным сообщениям для потребления.
Важные моменты для очередей с приоритетами в RabbitMQ:
- Очереди с приоритетами начинают работать только в случае недостаточного числа потребителей и невозможности своевременного потребления.
- Очереди с приоритетами поддерживаются только после версии RabbitMQ 3.5.
Шаги для использования очередей с приоритетами RabbitMQ
- Установите максимальный приоритет очереди.
- Установите приоритет сообщения.
Установите Максимальный Приоритет Очереди
При объявлении очереди установите максимальный приоритет через свойство очереди (x-max-priority). Максимальное значение приоритета составляет 255, и рекомендуется установить его от 1 до 10. Установка на языке Golang:
// Свойства очереди
props := make(map[string]interface{})
// Установить максимальный приоритет очереди
props["x-max-priority"] = 10
// Объявление очереди
q, err := ch.QueueDeclare(
"tizi365.hello", // Имя очереди
true, // Долговечность очереди
false, // Удалить при отсутствии использования
false, // Исключительность
false, // Не ждать
props, // Установить свойства очереди
)
Совет: Метод установки на других языках схож.
Установите Приоритет Сообщения
Установка на языке Golang:
err = ch.Publish(
"tizi365", // Обмен
"", // Маршрутный ключ
false,
false,
amqp.Publishing{
Priority:5, // Установите приоритет сообщения
DeliveryMode:2, // Режим доставки сообщения, 1 для непостоянного, 2 для постоянного
ContentType: "text/plain",
Body: []byte(body),
})