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消息流转图
通过下面这张图,能更好的理解上面的概念