美文网首页
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