RabbitMQ入门(三)

本文主要介绍RabbitMQ的路由与主题模式,包括如何通过Exchange类型和BindingKey实现消息分发。同时,详细解析了基于RabbitMQ的RPC实现原理,涉及客户端和服务端的角色和交互过程。
摘要由CSDN通过智能技术生成

这篇博客主要是基于RabbitMQ官网介绍的入门六节中的后面两三节,结合自身的一些理解而成的,主要是用来总结和加深自己对RabbitMQ的使用与理解。

RabbitMQ入门(一)

RabbitMQ入门(二)

RabbitMQ入门(三)


路由和主题的讲解

RabbitMQ不像ActiveMQ在创建容器(我自己这么叫,也就是存放信息的地方)可以指定是Queue或者Topic。而是通过在创建Exchange的时候 指定类型以及绑定Queue与Exchange的时候设置BindingKey来实现。

比如想实现主题模式的信息发送,那么就 将Exchange设置成fanout,然后每次创建新的消费者的时候都定义一个临时的Queue (如上一节说到的临时队列),之后将队列与FanoutExchange绑定,这样所有发送到FanoutExchange的消息 就会发送到同他绑定的所有队列中,从而实现了主题模式。

队列模式 其实就是将消息发送到Exchange(direct topic headers)时候,Exchange根据一下情况进行消息的存放(如果多个符合条件的Queue,那么会发送多个Queue):

  1. 与Exchange绑定的Queue设置的BindingKey 以及发送消息时设置的RoutingKey (Exchange为direct topic类型)Exchange 为direct时候 是BindingKey与RoutingKey完全一致 会发送到那条Queue, Exchange为topic的时候 BindingKey 应该是形如 a.# a.* a 之类的 那么当发送消息的RoutingKey匹配BindingKey时,会发送到此Queue.
  2. 发送消息的headers 设置(Exchange为headers类型时)与headersExchange和Queue绑定时候的参数  相匹配,如果消息的headers 包含 headersExchange和Queue绑定时候设置的参数(如果绑定设置的参数多个 那么要同时满足这多个才会发送到这个Queue)则发送到这个queue。比如发布消息之前 将basicProperties.headers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值