知识卡片

优先级队列只在消息堆积时才有意义

专业/工作 · 592.d

内容

通过x-max-priority参数可以让队列支持优先级消费,发送消息时用priority属性设置其优先级,数值越高越先被消费。但这个特性有一个容易被忽略的前提:只有当消费速度慢于生产速度、Broker中出现消息堆积时,优先级排序才有意义——如果消费者消费得比生产者发得还快,Broker里几乎不会同时存在多条消息,单挑消息谈”优先级”毫无意义。发散:这提醒我们,任何”排序类”特性的价值都依赖于”有足够多待排序的对象同时存在”这个前提,脱离这个前提启用排序机制只是徒增开销而无实际收益。

参考来源

《RabbitMQ实战指南》第4章《RabbitMQ进阶》