RabbitMQ 消息该如何插队

52次阅读
没有评论

共计 827 个字符,预计需要花费 3 分钟才能阅读完成。

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

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

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

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

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

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

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

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

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计827字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)