前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RabbitMQ学习系列教程四:Exchange 交换机及直连交换机简单使用

RabbitMQ学习系列教程四:Exchange 交换机及直连交换机简单使用

原创
作者头像
凯哥Java
修改2019-07-15 10:41:57
9350
修改2019-07-15 10:41:57
举报
文章被收录于专栏:凯哥Java凯哥Java

Exchange 交换机及直连交换机简单使用

Exchange的定义:

    接收消息,并根据路由键转发消息所绑定的队列。

交换机属性:

Name:交换机名称

Type:交换机类型 direct、topic、fanout、headers

Durability:是否需要持久化,true为持久化

Auto Delete:当最后一个绑定到exchange上的队列删除后,自定删除该exchange

Internal:当前exchange是否用于rabbitmq内部使用,默认为false

交换机类型详解:

Direct Exchange-直连交换机:

    所有发送到Direct Exchange的消息被转发到routeKey中指定的queue.

注意:Direct模式可以使用RabbitMq自带的Exchange(default Exchange),所以不需要将Exchange进行任何绑定(binding)操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被抛弃掉的。

官网这么描述Default Exchange的:

Direct exchange示意图:

我们可以看到,每一个routing_key都指向一个消费者。

我们来看看代码:

生产者代码:

在生产者代码中,我们添加了交换机名称及routingkey这两个信息。

接着我们来看看消费者代码:

在消费者端代码中,我们同样添加了exchangeName及routingkey同时还添加了队列名称及exhanggeType属性。

启动后,在浏览器中查看:

查看exchange:

发现已经绑定的:To指向的时

Queue:

点击查看queue:

发现已经绑定了test_direct_exchange了。

运行结果:

本节总结:

Direct Exchange类型的,简称直连方式。其实rabbitmq默认的就是此种方式。使用此种方式要求很简单:

如果指定了exchangeName则会在指定exchangeName上查找指定routingkey的。

在生产者中,设置channel属性时添加路由名称及key;

在消费者中,同样在channel设置属性的时,需要交换机名称及key保持也生产者一致。就可以正常接收消息了。

下节预告:在下节课中我们将讲解topic exchange

本文来源:www.kaigejava.com

凯哥公众号:凯哥Java(kaigejava)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Exchange 交换机及直连交换机简单使用
    • Exchange的定义:
      • 交换机属性:
        • 交换机类型详解:
          • Direct Exchange-直连交换机:
          • Direct exchange示意图:
          • 生产者代码:
          • 接着我们来看看消费者代码:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档