05 应用技术

RabbitMQ核心概念以及工作原理

2019-01-06  本文已影响0人  Itluobo

RabbitMQ核心概念以及工作原理

我们来看看流行的RabbitMQ消息系统以及它是如何让你的系统之间进行解耦的。

英文原文

RabbitMQ

在这篇短文里,我们会介绍什么是RabbitMQ,它是如何工作的以及RabbitMQ的核心概念。

RabbitMQ是一个开源的消息代理软件。它接收生产者发布的消息并发送给消费者。它扮演中间商的角色,可以用来降低web服务器因发送消息带来的负载以及延时。

RabbitMQ如何工作的?

我们来简单看看RabbitMQ是如何工作的。

首先来看看RabbitMQ里的几个重要概念:

生产者(Producer)发送/发布消息到代理->消费者(Consumer)从代理那里接收消息。哪怕生产者和消费者运行在不同的机器上,RabbitMQ也能扮演代理中间件的角色。

当生产者发送消息时,它并不是直接把消息发送到队列里的,而是使用交换机(Exchange)来发送。下面的设计图简单展示了这三个主要的组件之间是如何连接起来的。

交换机代理(exchange agent)负责把消息分发到不同的队列里。这样的话,消息就能够从生产者发送到交换机,然后被分发到消息队列里。这就是常见的“发布”方法。

Producer

然后,消息会被消费者从队列里读取并消费,这就是“消费”。

往多个队列里发送消息

对一个复杂的应用而言,往往会有多个消息队列,所以消息也会被发往多个队列。


Multiple queues

给带有多个队列的交换机发送的消息是通过绑定和路由键来进行分发的。绑定是你设置的用来连接一个队列和交换机的连接。路由键是消息的一个属性。交换机会根据路由键来决定消息分发到那个队列里(取决于交换机的类型)。

交换机(Exchange)

消息并不是直接发布到队里里的,而是被生产者发送到一个交换机上。交换机负责把消息发布到不同的队列里。交换机从生产者应用上接收消息,然后根据绑定和路由键将消息发送到对应的队列里。绑定是交换机和队列之间的一个关系连接。


Exchange

RabbitMQ里的消息流程

交换机类型

Exchange Type
  1. 直接(Direct):直接交换机通过消息上的路由键直接对消息进行分发。
  2. 扇出(Fanout):一个扇出交换机会将消息发送到所有和它进行绑定的队列上。
  3. 主题(Topic):这个交换机会将路由键和绑定上的模式进行通配符匹配。
  4. 消息头(Headers):消息头交换机使用消息头的属性进行消息路由。

RabbitMQ核心概念

如果你已经熟悉了RabbitMQ的核心概念以及它的工作原理,我们接下来就可以通过下面的文章来进行实战了:
RabbitMQ Java HelloWorld Example - 这篇文章会讲解如何在Java里实现RabbitMQ的HelloWorld例子.

RabbitMQ Tutorial with Publish/Subscribe Example - 这篇文章里会讲解RabbitMQ,并一步一步来搭建一个”生产者/消费者“的实例。

参考

上一篇下一篇

猜你喜欢

热点阅读