【RabbitMQ】核心概念

让我们从RabbitMQ官网的一段话开始:

RabbitMQ is the most widely deployed open source message broker.

简言之,RabbitMQ是开源的消息队列。将A君的消息,发送给B君,不过这里的B君,不单指某一个具体的实例,可能是一群实例

这篇文章来讲一讲RabbitMQ的几个核心概念

  • Producer
  • Message
  • Exchange
  • Queue
  • Consumer

概述

我们先看看几个核心概念的关系,如下图:
这里写图片描述

从上图中可以看到:

  • Producer将消息发送到Exchange
  • Exchange根据Binding关系,将消息送到0~n个Queue
  • Consumer从Queue中得到消息

下面详细讲解每个概念

Producer

首先来看看Producer(生产者),顾名思义,生产消息的实例。需要注意的是:在代码实现上,并没有Producer和Consumer抽象概念。Producer是指调用RabbitMQ API发送消息的实例,Consumer是指调用RabbitMQ API接收消息的实例,仅仅是为了方便描述,或者可以说成,仅仅是逻辑上的概念

Producer、Message、Exchange三者之间的关系如下图
这里写图片描述

即:

  • 一个Producer可以向不同的Exchange发送消息
  • 一个Producer可以向任何一个Exchange发送多条消息

Message

其次要讲的是Message,Message Broker当然离不开Message,没了Message,那就不是Message Broker了,只能是其他的什么Broker。Message有多种格式,比如:

  • text/plain
  • application/json
  • ……

Exchange

Exchange就是一个交易所,会有很多的Message进入到Exchange中,Exchange根据Binding key(或者叫Routing key)将Message分发到不同的Queue中

RabbitMQ中的Exchange有多种类型,类型不同,Message的分发机制不同,如下:

  • fanout,广播模式。这种类型的Exchange会将Message分发到绑定到该Exchange的所有Queue
  • direct,这种类型的Exchange会根据Routing key(精确匹配)将Message分发到指定的Queue
  • topic,这种类型的Exchange会根据Routing key(模糊匹配)将Message分发到指定的Queue

fanout

这里写图片描述

direct

这里写图片描述

topic

这里写图片描述

Queue

Queue,队列,消息暂时存放的地方

Consumer

Consumer,消费者,接收消息的实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值