Hàng đợi ưu tiên, như tên gọi của nó, ưu tiên việc tiêu thụ các tin nhắn có mức ưu tiên cao hơn.

Những điểm cần lưu ý về hàng đợi ưu tiên của RabbitMQ:

  • Hàng đợi ưu tiên chỉ có hiệu lực khi có số lượng người tiêu thụ không đủ và việc tiêu thụ không thể thực hiện đúng thời hạn.
  • Hàng đợi ưu tiên được hỗ trợ chỉ sau phiên bản RabbitMQ 3.5.

Các Bước Sử Dụng Hàng Đợi Ưu Tiên của RabbitMQ

  1. Thiết lập mức ưu tiên tối đa của hàng đợi.
  2. Thiết lập mức ưu tiên của tin nhắn.

Thiết Lập Mức Ưu Tiên Tối Đa Của Hàng Đợi

Khi khai báo hàng đợi, thiết lập mức ưu tiên tối đa của hàng đợi thông qua thuộc tính hàng đợi (x-max-priority). Giá trị tối đa cho mức ưu tiên là 255, và nên thiết lập giữa 1 và 10. Thiết lập trong Golang:

	// Thuộc tính của hàng đợi
	props := make(map[string]interface{})
	// Thiết lập mức ưu tiên tối đa của hàng đợi
	props["x-max-priority"] = 10

// Khai báo hàng đợi
q, err := ch.QueueDeclare(
	"tizi365.hello", // Tên hàng đợi
	true,  // Hàng đợi bền vững
	false, // Xóa khi không sử dụng
	false, // Độc quyền
	false, // Không chờ
	props, // Thiết lập thuộc tính hàng đợi
)

Mẹo: Phương pháp thiết lập trong các ngôn ngữ khác tương tự.

Thiết Lập Mức Ưu Tiên Của Tin Nhắn

Thiết lập trong Golang:

err = ch.Publish(
	"tizi365",     // Trao đổi
	"", // Đích đến
	false,
	false,
	amqp.Publishing{
		Priority:5, // Thiết lập mức ưu tiên của tin nhắn
		DeliveryMode:2,  // Chế độ giao tin nhắn, 1 cho không bền, 2 cho bền
		ContentType: "text/plain",
		Body:        []byte(body),
	})