RabbitMQ工作模型(一)

1.什么是RabbitMQ

       MQ是Message Queue,也就是消息队列,是一个消息中间件,使用Erlang语言写的

2.工作模型

  

(1)Broker:中介。提供一种传输服务,维护一条从生产者到消费者的传输线路,保证消息数据能按照指定的方式传输。粗略的可以将图中的RabbitMQ Server当作Broker。

(2)Exchange:消息交换机。指定消息按照什么规则路由到哪个队列Queue。生产者不能直接和Queue建立连接,而是通过交换机进行消息分发。

(3)Queue:消息队列。消息的载体,每条消息都会被投送到一个或多个队列中。

(4)Binding:绑定。作用就是将Exchange和Queue按照某种路由规则绑定起来。

(5)RoutingKey:路由关键字。消息所携带的标志,Exchange根据RoutingKey进行消息投递。

(6)Vhost:虚拟主机。一个Broker可以有多个虚拟主机,用作不同用户的权限分离。一个虚拟主机持有一组Exchange、Queue和Binding。

(7)Producer:消息生产者。主要将消息投递到对应的Exchange上面。一般是独立的程序。

(8)Consumer:消息消费者。消息的接收者,一般是独立的程序。

(9)Channel:消息通道,也称信道,是连接消费者和Broker的虚拟连接,如果直接让消费者和Broker建立TCP的连接,会让Broker有性能损耗。在客户端的每个连接里可以建立多个Channel,每个Channel代表一个会话任务。
 

3.工作流程

  1. 生产者通过消息通道(channel)与RabbitMQ建立连
  2. 消息传送到Exchange,并且消息上有对应的标志关键字(RoutingKey)
  3. Exchange接收到消息后,就根据消息的RoutingKey和已经设置的binding,进行消息路由(投递),将消息投递到一个或多个队列(Queue)里
  4. 消费者(Consumer)客户端从对应的队列中获取并处理消息

4.Exchange类型 

  • Direct 

     全匹配式传递。当RoutingKey和消息标志完全一样才会存放到对应的队列

  • Topic 

  广播式全部传递。息都会被投递到所有与此Exchange绑定的queue中

  • Fanout 

     匹配式传递。

   # 表示0个或多个单词

  *表示1个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值