RabbitMQ_交换机

简单理解交换机在RabbitMQ中扮演的角色

交换机在RabbitMQ中扮演消息系统中枢,将从生产者处收集的消息转发至对应的消息队列处,等待消费者消费

提前说明交换机 与 routing key 与 消息队列的关系

channel.queueBind(queueName, exchangeName, routingKey);

消息队列被绑定至交换机,交换机根据routing key标识并分类消息队列

交换机的种类及对应模式

1.fanout

Publish/Subscribe(发布与订阅)模式交换机

生产者向交换机中传递消息后,所有队列均会收到消息

2.direct

Routing(路由)模式交换机,该交换机为RabbitMQ的默认交换机

生产者向交换机传递消息后,交换机在进行消息分发的时候,只会将该消息分发至被对应routing key标识的队列

举例:五个队列的routing key分别为key1 key2 key3 key3 key3,那么生产者指定的routing key为key3时,队列3 4 5将收到消息,而队列1 2不会

3.topic

Topics(主题)模式交换机,相较前者添加了基于routing key的模糊匹配

举例:队列1 2的routing key分别为 *.number.* 与 #.number.#

那么:

        x.number.y 将匹配队列1 2

        .number. 将匹配队列2

        x.number. 将匹配队列2

        .number.y 将匹配队列2

4.headers

参数交换机

声明队列时,可设置队列携带参数

channel.queueDeclare(queueName, durable, exclusive, autoDelete, arguments);

生产者传递消息时,可设置消息携带参数,参数交换机会将该消息分发至具有相同参数的队列

channel.basicPublish(exchangeName, routingKey, prop, message.getBytes());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值