RabbitMQ的简介以及原理

Rabbit简介

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现,是现在市面上应用比较广泛的消息队列中间件。它包含通用的两种消息转发模式,一是点对点,二是广播。

AMQP中的消息路由

AMQP中的消息的路由过程和JMS有一些差别,AMQP中增加了Exchange和Binding的角色。具体流程如下,首先生产者(Producer)将消息发布到交换器(Exchange)上,由交换器(Exchange)根据路由规则决定将消息派发到哪一个消息队列(Queue)中,最后由消费者(Consumer)从队列(Queue)中获取所需要的消息。

TITLE

Exchange的四种类型

Exchange分发消息时根据类型的不同,分发策略有区别,目前共有四种类型:direct、fanout、topic、headers。headers类型的交换器和direct完全一致,但性能差很多,目前几乎用不到。

Direct Exchange

这是一种完全匹配、单播的模式,Exchange根据消息携带的routing key与队列进行匹配,只有完全匹配上的才会对该队列发送消息,因此这是一种单播的模式。

direct

Fanout Exchange

这种模式的交换器会对所有队列进行消息广播,即每个队列都能获得Exchange发送过来的消息,因此fanout类型的Exchange转发消息是最快的。

fanout

Topic Exchange

topic交换器通过模式匹配进行分配消息,只要符合匹配的规则,该消息就会去往相对应的一个或者多个队列。符号"#“匹配0个或者多个单词,符号”*"匹配一个单词。

topic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当一艘船沉入海底8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值