美文网首页
RabbitMQ 之优先级队列

RabbitMQ 之优先级队列

作者: _大叔_ | 来源:发表于2019-07-21 21:53 被阅读0次

设置优先级分为两步:先给队列设置优先级,其次给消息设置优先级。

1.队列设置优先级:

Map<String,Object> args = new HashMap() ; 
args.put( "x-rnax-priority" , 10) ; 
channel.queueDeclare( " queue.priority" , true , fa1se , false , args) ;

2.消息设置优先级:

AMQP.BasicProperties.Bui1der builder = new AMQP.BasicProperties.Builder() ; 
builder.priority(5) ; 
AMQP.BasicProperties properties = builder.buiild () ; 
channel.basicPub1ish( " exchange_priority" , " rk_priority" , properties, ("messages " ) . getBytes () ) ; 

上面的代码中设置消息的优先级为5 。默认最低为0,最高为队列设置的最大优先级(以上我们是10)。优先 级高的消息可以被优先消费,这个也是有前提的:如果在消费者的消费速度大于生产者的速度且Broke 中没有消息堆积的情况下,对发送的消息设置优先级也就没有什么实际意义。因为生 产者刚发送完一条消息就被消费者消费了,那么就相当于 Broker 中至多只有一条消息,对于单 条消息来说优先级是没有什么意义的。

相关文章

网友评论

      本文标题:RabbitMQ 之优先级队列

      本文链接:https://www.haomeiwen.com/subject/wvzvlctx.html