rabbitmq中的交换机、绑定和队列(三)

生产者把消息发布到交换器上,消息从交换器到达特定的队列需要进行绑定,消息最终到达队列并被消费者接收。

队列是AMQP消息通信的基础模块,它为消息提供了住所,消息在此等待消费。然而,消息是如何到达队列的呢?消息发送给交换器后,根据确定的规则(路由键),RabbitMQ将会决定消息该投递到哪个队列;队列通过路由键绑定到交换器,当消息发送到RabbitMQ时,消息将拥有一个路由键,RabbitMQ会将其和绑定使用的路由键进行匹配,如果相匹配的话,那么消息将会投递到该队列;如果路由的消息不匹配任何绑定模式的话,消息将进入“黑洞”。

如上所述,RabbitMQ会根据路由键将消息从交换器路由到队列,但它如何处理投递到多个队列的情况呢?此时,不同类型的交换器就发挥作用啦。RabbitMQ的交换器类型一共有四种(direct、fanout、topic以及headers),每一种类型实现了不同的路由算法,其中direct类型交换器非常简单,当声明一个队列时,它会自动绑定到direct类型交换器(默认条件下,是一个空白字符串名称的交换器),并以队列名称作为路由键;当消息发送到RabbitMQ后所拥有的路由键与绑定使用的路由键匹配,消息就被投递到对应的队列。headers交换器和direct交换器完全一致,但性能会差很多,headers交换器允许匹配AMQP消息的是header而非路由键,因此它并不实用。fanout交换器可以将收到的消息投递给所有附件在此交换器上的队列。topic交换器可以使得来自不同源头的消息能够到达同一个队列。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值