温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

RabbitMQ有哪些模式

发布时间:2022-07-04 09:57:58 来源:亿速云 阅读:158 作者:iii 栏目:开发技术

本篇内容介绍了“RabbitMQ有哪些模式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

RabbitMQ是AMQP的一个典型实现,它消息发布者的消息发布到Exchange上,同时需要制定routingkey,可以通过指定交换机的不同模式实现不同的行为。

RabbitMQ提供了四种Exchange:fanout,direct,topic和header。其中header模式在实际使用中较少,本文只对前三种模式进行比较。

Direct模式(点对点通讯):

Direct Exchange是RabbitMQ默认的交换机模式,也是最简单的模式,根据key全文匹配去寻找队列。规则如下:

发布到exchange的消息通过routingkey的完全匹配发布到queue上。如果routingkey不存在,则丢弃

RabbitMQ有哪些模式

点对点方式是最为传统和常见的通讯方式,它支持一对一、一对多、多对多、多对一等多种配置方式,支持树状、网状等多种拓扑结构。

fanout模式(多点广播):

fanout模式比较简单,广播式的,无视routingkey直接发送给所有的queue

RabbitMQ有哪些模式

Topic模式(发布/订阅):

RabbitMQ有哪些模式

任何发送到Topic Exchange的消息都会被转发到所有关心RouteKey中指定话题的Queue上

  • 这种模式较为复杂,简单来说,就是每个队列都有其关心的主题,所有的消息都带有一个"标题"(RouteKey),Exchange会将消息转发到所有关注主题能与RouteKey模糊匹配的队列。

  • 这种模式需要RouteKey,也许要提前绑定Exchange与Queue。

  • 在进行绑定时,要提供一个该队列关心的主题,如"#.log.#"表示该队列关心所有涉及log的消息(一个RouteKey为"MQ.log.error"的消息会被转发到该队列)。

  • "#"表示0个或若干个关键字,""表示一个关键字。如"log."能与"log.warn"匹配,无法与"log.warn.timeout"匹配;但是"log.#"能与上述两者匹配。

  • 同样,如果Exchange没有发现能够与RouteKey匹配的Queue,则会抛弃此消息。

“RabbitMQ有哪些模式”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI