RabbitMQ到3.5.0版本实现队列 优先级
RabbitMQ到3.5.0版本之前,官方没有实现优先级队列,只实现了Consumer的优先级处理。但是社区已经有相关优先级队列插件了,并且这个插件被列在RabbitMQ官方网站中了。
RabbitMQ3.5.0之后官方版本已经实现了优先级队列。数值越大则优先级越高。
Java代码设置队列优先级
Channel ch = ...;
Map<String, Object> args = new HashMap<String, Object>();
args.put("x-max-priority", 10);
ch.queueDeclare("my-priority-queue", true, false, false, args);
Spring文件中设置:
<rabbit:queue name="ad_google_dfa_reporting_queue">
<rabbit:queue-arguments>
<entry key="x-max-priority">
<value type="java.lang.Integer">10</value> <!-- MUST specifically define java.lang.Integer to get it to work -->
</entry>
</rabbit:queue-arguments>
</rabbit:queue>
3.5.0之前版本实现队列优先级
具体可以参考
http://stackoverflow.com/questions/26838803/spring-amqp-rabbitmq-implementing-priority-queue/26845642
http://www.cnblogs.com/aarond/p/rabbitmq.html
http://www.cnblogs.com/aarond/p/MessageBus.html
http://blog.sina.com.cn/s/blog_6ffa25ae0101atd7.html