1.什么是RabbitMQ
RabbitMQ是基于Erlang语言开发的开源消息通信中间件
2.RabbitMQ对应的架构如图
- Publisher(生产者) :指的是生成消息并将其发送到消息队列系统的应用程序或服务。生产者并不直接将消息发送给队列,而是通过交换机。
- Consumer(消费者) :指的是从队列接收消息并处理它们的应用程序或服务。一个队列可以有多个消费者,但每条消息只会被其中一个消费者获取和处理(除非配置了不同的行为,比如消息复制)。
- Queue(队列) :是存储消息的地方。当消息被发布到某个队列时,它会被持久化或者缓存起来直到被消费者取走。队列可以设置为持久化的,这样即使服务器重启,消息也不会丢失。
- Exchange(交换机) :在消息到达队列之前,它首先会经过交换机。交换机根据预先定义的规则来决定消息应该投递到哪个队列。
- Virtual Host(虚拟主机) :是一种逻辑上的隔离机制,用来将不同的用户、交换机、队列等资源进行分组。通过使用虚拟主机,可以在同一台物理服务器上创建多个独立的消息环境。这对于多租户场景特别有用,因为它允许不同用户或应用拥有自己独立的一套资源,而不会互相干扰。