更新时间:2024-10-29 GMT+08:00

RabbitMQ相关概念

云服务平台使用RabbitMQ作为消息引擎,RabbitMQ是一个生产者和消费者模型,主要负责接收、存储和转发消息。以下概念基于RabbitMQ进行描述。

消息

消息一般分为两部分,消息体和标签,标签主要用来描述这条消息,消息体是消息的内容,是一个JSON体或者数据等。

生产者发送消息,消费者消费消息,生产者与消费者彼此并无直接关系。

生产者(Producer)

即向队列发送消息的一方。发布消息的最终目的在于将消息内容传递给其他系统/模块,使对方按照约定处理该消息。

消费者(Consumer)

接收消息的一方。消费者订阅RabbitMQ的队列,当消费者消费一条消息时,只是消费消息的消息体。在消息路由的过程中,会丢弃标签,存入到队列中的只有消息体。

队列(Queue)

队列是用于存储消息的,生产者将消息送到队列,消费者从队列中获取和消费消息。多个消费者可以同时订阅同一个队列,队列里的消息分配给不同的消费者。

代理(Broker)

消息中间件的服务节点。

Vhost

Vhost是指虚拟主机,用作逻辑隔离,分别管理Exchange、Queue和Binding,使得应用安全地运行在不同的Vhost上,相互之间不会干扰。

Exchange

Exchange用于接收、分配消息。生产者向分布式消息服务RabbitMQ版发送消息时,不会直接将消息发送到Queue,而是先将消息发送到Exchange中,Exchange根据路由键查找Queue,如果查找到,将消息存放到Queue中,如果未查找到,将消息丢弃。更多关于Exchange类型的描述请参见Exchange类型介绍