02-RabbitMQ
一、四大核心概念
1、生产者
产生数据发送消息的对象成为生产者
2、交换机
交换机一方面接收来自生产者的消息,另一方面它将消息推送到队列中,交换机像个中转站
3、队列
队列是RabbitMQ内部使用的一种数据结构,尽管消息流经 RabbitMQ 和 应用程序,但他们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓存区。
3、消费者
消费与接收具有相似的含义。消费者大多时候是一个等待接收消息的程序
二、RabbitMQ工作原理
RabbitMQ工作原理.png
1、Producer
生产者,产生消息
2、Connection
publisher / consumer 和 broker 之间的TCP连接
3、Channel
如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立TCP Connection的开销将是巨大的,效率也较低。Channel是在Connection内部建立的逻辑连接,如果应用程序支持多线程,通常每个 Thread 创建单独的Channel进行通讯,AMQP Method 包含了 Channel id帮助客户端和 Message Broker 识别 Channel,所以Channel之间是完全隔离的。Channel作为轻量级的Connection极大减少了操作系统建立TCPConnection的开销
4、Broker
接收和分发消息的应用,RabbitMQ Server就是 Message Broker
5、Exchange
Message到达Broker的第一站,根据分发规则,匹配查询表中的Routing key,分发消息到Queue中去
6、Queue
消息最终被送到这里等待Consumer取走
7、Binding
Exchange和Queue之间的虚拟连接
8、Consumer
消费者,消费Queue中消息
9、Virtual host
出于多租户和安全因素设计的,把AMQP的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ Server 提供的服务时,可以划分出多个vhost,每个用户在自己的vhost创建exchang / queue等
1、Hello World模式
Hello World模式.png
2、Work queues模式
Work queues模式.png
3、Publish/Subscribe模式
Publish/Subscribe模式.png
4、Routing模式
Routing模式.png
5、Topics模式
Topics模式.png
6、RPC模式
RPC模式.png
上一篇
下一篇