RabbitMQ
以实战为线索,逐步掌握RabbitMQ
冬瓜闯世界
嘎嘎嘎
展开
-
SpringBoot中集成RabbitMq及使用场景
在前面的博客中我们已经详细的介绍了RabbitMQ的5种模型,接下来让我们来看看在SpringBoot中如何使用RabbitMQ。RabbitMQ5种模型回顾1.点对点模型:生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。生产者和消费者是一一对应关系。如下图所示:2.工作队列模型: 让多个消费者绑定到同一个队列中,共同消费队列中的消息。并且队列中的消息一旦消费,就会消息,因此任务不会被重复执行。如下图所示:3. 广播模型: 可以将一个消息发送给多个消费者。如下图所示:4.路由模原创 2020-12-20 17:09:59 · 1096 阅读 · 0 评论 -
RabbitMQ系列--主题(Topic)
上一篇博客中,我们使用了direct类型的交换机,使得消费者有能力进行选择性的消息。但是仍然存在一些局限性:它不能够基于多重条件进行路由选择。 我们可以使用Topic类型的交换机解决这个问题。Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key的时候可以使用通配符!这种模型的Routingkey一般都是由一共或多个单词组成,多个单词之间以"."分割,例如:item.insert原创 2020-12-19 18:40:41 · 1060 阅读 · 1 评论 -
RabbitMQ系列-- 路由
在上一篇博客中,我们详细的介绍了广播模型,在Fanout模式中,一条消息会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange(交换机)。在Direct模型下队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)消息的发送方在向Exchange发送消息时,也必须指定消息的RoutingKeyExchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的原创 2020-12-19 17:52:44 · 978 阅读 · 1 评论 -
RabbitMQ系列-- 广播
在上一篇博客中,我们实现了工作队列,并且我们的工作队列中的一个任务只会发给一个工作者,除非某个工作者未完成任务意外被杀死,会转发给另外的工作者。 在这篇博客中,我们将实现将一个消息发给多个消费者,这种模式称之为广播。本质上来说,就是发布的消息会转发给所有的接收者。交换机(Exchanges)前面的博客中我们都是通过生产者发送消息给队列,接收者从队列中接收消息。 接下来我们将引入Exchanges。生产者只能将消息发送给Exchanges。 Exchanges一边从生产者接收消息,另一边将消息推送到队原创 2020-12-19 13:13:59 · 2592 阅读 · 2 评论 -
RabbitMQ系列-- 工作队列模型
介绍Work queues,也被称为(Task queues)任务模型。当消息处理比较耗时的时候,可以生产消息的速度会远远大于消息的消费速度。长此以往,消息就会堆积越来越多,无法及时处理。此时就可以使用work模型:**让多个消费者绑定到一个队列,共同消费队列中的消息。**队列中的消息一旦消费,就会消失,因此任务是不会被重复执行的。 如下图所示:角色:P: 生产者:任务的发布者。C1:消费者-1,领取任务并且完成任务,假设完成速度较慢C2:消费者-2,领取任务并完成任务,假设完成速度快。工原创 2020-12-18 20:24:54 · 182 阅读 · 1 评论 -
RabbitMQ系列-- HelloWorld模型
1.介绍RabbitMQ,翻译为消息队列,通过典型的生产者和消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性很高的场景。2.点对点模型在上图的模型中P:生产者,也就是要发送消息的程序C:消费者:消息的接受者,会一直等待消息到来。queue:原创 2020-12-18 17:55:56 · 194 阅读 · 1 评论