介绍
RabbitMQ是一个消息中间件,接受并转发消息。它接收、存储和转发消息数据。
四大核心概念:
1.生产者
产生数据发送消息的程序是生产者。
2.消费者
3.队列
每一个队列对应一个消费者。
如果两个消费者对应同一个队列,那么队列中的消息只有一个消费者可以收到。
4.交换机
一个交换机可以对应多个队列。交换机与队列是绑定关系。
六大模式
1.简单模式
2.工作模式
3.发布订阅模式
4.路由模式
5.主题模式
6.发布确认模式
RabbitMQ中名词解释
Broker表示接收和分发消息的应用,RabbitMQ Server就是Message Broker。
Exchange交换机
Queue队列
binding 绑定,交换机与队列之间的虚拟连接,binding包含routing key, binding信息被保存在exchange的查询表中,用于message的分发依据。
Producer生产者
Consumer消费者
Channel信道(发消息的通道)
Connection连接:生产者、消费者与broker之间的TCP连接。
每个Connection连接里可以有多个信道Channel。
为什么在Connection中会有多个channel信道:
建立TCP Connection是开销巨大的,效率也低下,Channel是在Connection内部建立逻辑连接Channel,如果应用程序支持多线程,通常每个thread创建单独的channel进行通信,channel之间是完全隔离的,channel作为轻量级Connection极大的减少了操作系统建立TCP Connection的开销。
Virtual host:出于多租户和安全因素设计,把amqp的基本组件划分到一个虚拟的分组中,类似于网络中的namespace概念。当多个不同的用户使用同一个RabbitMQ server的时候,可以划分多个vhost,每个用户在自己的vhost创建exchange/queue等。