RabbitMQ消息该如何插队

RabbitMQ消息该如何插队,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

消息中间件在各个大厂都有使用,算是现在面试过程中必问的一个知识点了。群里一直同意和谐社会、拒绝插队。但是在特殊情况下是可以插队的,比如医院里的急诊等。那么RabbitMQ消息该如何插队呢?,

这个问题很简单,RabbitMQ有优先队列,所以,RabbitMQ消息队列优先级就可以用来解决“插”队问题。

生产者生成消息打到交换机里面(如果没有声明交换机,会打到默认交换里面),交换机绑定一个或多个队列,消息进入队列里面,消费者一直在监听队列,发现队列里面有消息就开始消费,这里就是一个消息传递的过程,队列是一个栈队列,队列是先进先出的,就是说消息来了依次排的队,一个队列并不能实现消息的插队和优先推送的功能。但是如果说我们的多个队列有不同的优先级,不同优先级的消息通过roatingkey进入不同的队列,优先级高的队列消息被优先消费,这样也能形成一个相对意义上的优先级,所以说这里不是消息的优先级而是队列的优先级。

RabbitMQ的消息是不能插队的,但是它提供的有优先队列。插队就是要靠高优先级的队列来实现。

在RabbitMQ中,设置消息的优先级一共有2个步骤:设置队列的x-max-priority参数,设置消息的优先参数。

 RabbitMQ消息该如何插队

就这么简单,做完这个之后就可以验证优先级队列的作用。当然,需要注意的是,在消费端速度大于生产端速度,且代理中没有消息堆积的话,对发送的消息设置优先级也没什么实际意义,因为发送端刚发送完一条消息就被消费端消费了,那么就相当于代理至多只有一条消息,那么对于单条消息来说优先级是没有什么意义的。

看完上述内容,你们掌握RabbitMQ消息该如何插队的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

RabbitMQ消息该如何插队