【RabbitMQ】RabbitMQ队列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26545305/article/details/80427212

一、前言

       之前的博客中提及的消息抽象模型,就是简单队列。

       简单队列的不足时:耦合性高。生产者和消费者一 一对应,如果我想有多个消费者消息队列中消息,这时简单队列就不能满足啦,如果队列名更改,这时候得同时变更。

       本篇博客将谈一谈其他队列。

二、工作队列

首先谈一谈工作队列:

             

       为什么会出现工作队列?Simple队列是一 一对应的,而在我们实际开发中,生产者发送消息是毫不费力的(时间可以忽略不计),而消费者一般是要和业务结合,消费者接收到消息之后就需要大量时间(相对生产者发送消息而言)进行处理,这时队列就会积压很多消息。

      因此工作队列应运而生,工作队列完美解决了消费方积压消息的问题

      MQ中一个消息只能被消费一次,即消息要么被C1获取,要么被C2获取,感觉有点像集群。

      有两种:Round-robin、Fair dispatch


   三、订阅模式  

        接下来谈一谈publish_subscribe订阅模式

        比如我们订阅  微信公众号,就能收到公众号推送的消息

       

        特点如下:

       

    1个生产者,多个消费者

     每一个消费者都有自己的队列

     生产者没有直接把消息发送对队列,而是发给了Exchange(交换机、转发器)

     每个队列都要绑定到交换机上

     生产者发送的消息经过交换机,到达队列,就能够实现一个消息被多个消费者消费啦。

四、路由模式

       

     解读:

     路由模式是在订阅模式基础上的完善,可以在生产消息的时候,加入Key值,与key值匹配的消费者消费消息。


猜你喜欢

转载自blog.csdn.net/qq_26545305/article/details/80427212