RabbitMQ深入理解及运用.pdfVIP

  • 1
  • 0
  • 约3.97万字
  • 约 19页
  • 2026-02-04 发布于浙江
  • 举报

RabbitMQ深⼊理解及运⽤

为为什什么么要要⽤⽤MQ

1.解耦:在项⽬启动之初是很难预测未来会到什么困难的,消息中间件在处理过程中插⼊了⼀个隐含的,基于数据的接⼝层,两边都

实现这个接⼝,这样就允许独⽴的修改或者扩展两边的处理过程,只要两边遵守相同的接⼝约束即可。

2.冗余(存储):在某些情况下处理数据的过程中会失败,消息中间件允许把数据持久化直到它们完全被处理。扩展性:消息中间件解

耦了应⽤的过程,所以提供消息⼊队和处理的效率是很容易的,只需要增加处理流程就可以了。

3.削峰:在访问量剧增的情况下,但是应⽤仍然需要发挥作⽤,但是这样的突发流量并不常见。⽽使⽤消息中间件采⽤队列的形式可以

减少突发访问压⼒,不会因为突发的超时负荷要求⽽崩溃。

4.可恢复性:当系统⼀部分组件失效时,不会影响到整个系统。消息中间件降低了进程间的耦合性,当⼀个处理消息的进程挂掉后,加

⼊消息中间件的消息仍然可以在系统恢复后重新处理。

5.顺序保证:在⼤多数场景下,处理数据的顺序也很重要,⼤部分消息中间件⽀持⼀定的顺序性。

6.缓冲:消息中间件提供⼀定能⼒的缓冲数据作⽤,主要是⽤以消息的发布和订阅异步的进⾏通⾏,其运⽤了持久化于中间件中,对消

息进⾏缓冲作⽤。

7.异步通信:通过把消息发送给消息中间件,消息中间件并不⽴即处理。

RabbitMQ概概述述

AMQP0-9-1(AdvancedMessageQueuingProtocol)isamessagingprotocolthatenablesconformingclient

applicationstocommunicatewithconformingmessagingmiddlewarebrokers.

AMQP0-9-1isaprogrammableprotocolinthesensethatAMQP0-9-1entitiesandroutingschemesareprimarily

definedbyapplicationsthemselves,notabrokeradministrator.Accordingly,provisionismadeforprotocoloperations

thatdeclarequeuesandexchanges,definebindingsbetweenthem,subscribetoqueuesandsoon.

根据官⽹的解释,AMQP0-9-1(AdvancedMessageQueuingProtocol)是⼀种消息传递协议且可编程,它⽀持符合标准的客

户端请求程序与符合标准的消息中间件代理进⾏通信。AMQP的实体和路由规则都是⾃定义的,只是规定了queues、exchanges、两者之

间的bindings关系以及订阅此queues等,所以这样的⽅式就会很⾃由的去发挥AMQP中的这些特性。

以下是AMQP的整体流程图:

1.启动RabbitMQ服务,并且启动Client与之建⽴Connection连接

2.连接建⽴之后会根据每个Consumer建⽴Channel通道,⽤以Publisher和Consumer传送消息

3.消息发布者Publisher将message发布⾄Exchange

4.Exchange通过bindings的规则分别Routes⾄不同的Queue

5.AMQP的broker传递消息给与Queue关联的Consumers、或者Consumers可以根据不同需求主动去Exchange中拉取消息

重重点点释释义义

Exchanges

Exchange其实跟ActiveMQ以及RocketMQ中的Broker中⼼有点类似,但是更多的侧重于它的字⾯意义--交换器。⽣产者产⽣的消

息并不是直接发送给消息队列Queue的,⽽是要经过Exchange再将消息路由到⼀个或多个Queue,其中根据配置不同的路由规则进⾏过

滤,具体根据什么规则筛选,则是后⾯要提到的ExchangeTypes。

既然消息是通过Exchange推送给Queue的,那怎么准确的定位⼀个Queue呢,这其中最重要的环节就是Bindings。

Bindi

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档