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

  1. Establecer la máxima prioridad de la cola.
  2. 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),
	})