RabbitMQ系列教程(二)RabbitMQ中一些重要概念

RabbitMQ简介

RabbitMQ是用Erlang编写的一个开源消息代理和队列服务器,可以通过协议在不同的应用程序之间共享数据。

一些重要的概念

server

也叫broker,它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指定的方式进行传输。

Connection

应用程序与broker的网络链接

Channel(网络信道)

Channel是进行消息读写的通道,几乎所有的操作都在Channel中进行,客户端可以建立多个Channel,每个Channel代表一个会话任务

Message(消息)

生产者和消费者之间传送的数据。由Properties和Body组成,其中Properties可以对消息进行修饰,比如可以设置消息的优先级、过期时间延迟等特性。

Exchange(交换机)

用于指定消息按什么规则,路由到哪个队列。rabbitmq中有四种类型的exchange:direct、topic、fanout、header。

Routing Key(路由关键字)

Exchange根据Routing Key进行消息投递

Queue(消息队列)

消息的载体,每个消息都会被投到一个或多个队列

Binding(绑定)

它的作用就是把exchange和queue按照路由规则绑定起来,

Virtual Host (虚拟主机)

用于进行逻辑隔离,一个 Virtual Host可以有多个Exchange和Queue。
PS:可以简单理解为就像java中的包名,用于逻辑区分。

RabbitMQ消息流转图

通过下面这张图,能更好的理解上面的概念
RabbitMQ系列教程(二)RabbitMQ中一些重要概念