第二篇:RabbitMQ的工作模式

105 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


这里只讨论5前五种工作模式,实际官网上共7种工作模式,详情大家可以看官网。如下是RabbitMQ的基础架构图,相关名词在上篇文章中有解释。

工作模式

模式一:你好,世界!(Hello World!)

这是最简单的模式,生产者生产消息,放到队列中,消费者从队列中消费消息。该模式下生产者,消费者都只有一个。下方gif图演示一个消费者一个生产者案例。

动图封面

模式二:工作队列(Work queues)

工作队列模式与helloworld模式类似,区别在于工作队列模式可以有多个消费者,多个消费者共同消费一个队列。下方gif图演示三个消费者共同消费一个生产者生产的消息。

动图封面

模式三:发布/订阅(Publish/Subscribe)

发布/订阅模式与前两个工作模式相比,引入了新的组件交换机(exchange)。该模式下消费者都有自己的队列,比如生产者生产100条消息,那么所有的消费者都可从队列中拿到100条消息。举个例子,公众号中,号主发布一篇文章,所有的关注者都会收到消息。 交换机只用于消息的转发,它并没有存储消息的能力,因此队列需要和交换机需要和队列做绑定,要不就收不到消息。交换机需要在web端自己先配置\

动图封面

模式四:路由(Routing)

路由模式在发布/订阅模式下引入了routing key,我的理解是可以将不同的业务消息通过路由key分发消息,不需要消费者再去判断是否消费消息。 同样的,路由模式的交换机也需要提前配置好。

动图封面

模式五:主题(Topics)

主题模式也叫通配符模式,它与路由模式相似,但比路由模式灵活很多,它可以通过xx.#,*.xx等模式匹配的形式来分发消息。

动图封面

思维导图