Las colas de prioridad, como su nombre indica, dan prioridad a los mensajes con mayor prioridad para ser consumidos.
Puntos a tener en cuenta para las colas de prioridad de RabbitMQ:
- Las colas de prioridad solo entran en efecto cuando hay consumidores insuficientes y el consumo no se puede realizar de manera oportuna.
- Las colas de prioridad son compatibles solo después de la versión 3.5 de RabbitMQ.
Pasos para usar colas de prioridad de RabbitMQ
- Establecer la máxima prioridad de la cola.
- Establecer la prioridad del mensaje.
Establecer la Máxima Prioridad de la Cola
Al declarar la cola, establece la máxima prioridad de la cola a través de la propiedad de la cola (x-max-priority). El valor máximo para la prioridad es 255, y se recomienda establecerlo entre 1 y 10. Configuración en Golang:
// Propiedades de la cola
props := make(map[string]interface{})
// Establecer la máxima prioridad de la cola
props["x-max-priority"] = 10
// Declarar la cola
q, err := ch.QueueDeclare(
"tizi365.hello", // Nombre de la cola
true, // Duradera
false, // Eliminar cuando no se use
false, // Exclusiva
false, // No esperar
props, // Establecer propiedades de la cola
)
Consejo: El método de configuración en otros lenguajes es similar.
Establecer la Prioridad del Mensaje
Configuración en Golang:
err = ch.Publish(
"tizi365", // Intercambio
"", // Clave de enrutamiento
false,
false,
amqp.Publishing{
Priority:5, // Establecer la prioridad del mensaje
DeliveryMode:2, // Modo de entrega del mensaje, 1 para no persistente, 2 para persistente
ContentType: "text/plain",
Body: []byte(body),
})