【RbMQ】RabbitMQ概念辨析

一、RabbitMQ的安装

1、参考文章
  • 下面的文章对RabbitMQLinux服务器下的安装提供了详细的指导,按照它可以完成RabbitMQLinux服务器下的安装。

RabbitMQ超详细安装教程(Linux)_Baret-H的博客-CSDN博客_linux安装rabbitmq教程

  • Windows环境下的安装可以参考这篇文章

RabbitMQ安装 - 地鼠文档 (topgoer.cn)

2、注意事项

(1)开放对应的端口。

  • RabbitMQ Web界面管理的端口是15672,对外提供服务端口的是5672,需要在安全组开放这两个端口。

二、概念辨析

1、Virtual Host(VHost)

(1)虚拟主机,相当于虚拟机,用于隔离数据。服务通过URL连接的是一个VHost,交换机、信道、队列等的创建均在一个VHost上。

(2)VHost可以通过Web管理页面创建。

2、生产者和消费者

(1)在RbMQ中,生产者和消费者的概念是相对于消息而言的。生产者生成消息,消费者处理消息,而RbMQ是充当信使的角色,在两者之间建立起桥梁,使生产者、消费者应用解耦。

3、队列

(1)队列是RbMQ内部对象,用于存储消息。在RbMQ中消息最终是存储在队列中的,消费者通过订阅队列的方式获取需要处理的消息并消费。

(2)同一个队列可以被多个消费者订阅,这时队列中的消息通过轮询(一条消息只能分发到一个消费者,多个平均分摊队列中的消息)的方式分发给多个消费者处理。

(3)RbMQ不提倡在队列的层面实现消息的广播(即一条消息分发到全部订阅队列的消费者),广播消息推荐使用交换器。

4、交换器、路由键

(1)交换器将生产者的消息投递到与之绑定的队列中。即队列与交换机的关系是一个或多个队列绑定到交换器上,生产者将消息投递到交换器中,交换器根据一定的策略分发消息到队列中,在由与队列绑定的消费者消费处理。

(2)交换器分发消息的策略主要由绑定键、交换器的类型、路由键决定的。

  • 绑定键是队列与交换器绑定时指定的值。路由键是生产者将消息发送到交换器时指定的值。交换器的类型主要有fanoutdirecttopicheaders四种。

    1)fanout:扇出类型,交换器将所有接收到的消息分发到与之绑定的队列中,从而可以实现广播通信。

    2)direct:直接等类型,交换器将消息发送到绑定键与消息的路由键相等的队列中。

    3)topic:主题类型(匹配符模式),topic类型与direct类型相似,不过topic类型采用的时类似正则匹配的方式分发消息。其中.代表一个独立的字符串(单次),*用于匹配一个单词,#用于匹配零个或多个单词。

    4)headersheaders模式不根据消息的路由键分发消息,而是根据发送消息中headers的属性进行匹配。在绑定队列和交换器是制定一组键值对,当消息发送到交换器时,RbMQ会获取消息的headers(一个键值对),对比其中的键值对是否完全匹配绑定时制定的键值对,从而决定消息的分发。headers类型的交换器性能很差,基本不定义该类型的交换器。

(3)消息的分发过程

  • 在定义和绑定阶段交换器的类型和队列与交换器的绑定键是固定的,因此可以通过消息的路由键指定消息发送的目标队列。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值