美文网首页
rabbitmq06 交换机

rabbitmq06 交换机

作者: 6c0fe9142f09 | 来源:发表于2018-08-26 17:04 被阅读2次

交换机

  • direct(直连交换机)
  • topic(主题交换机)
  • headers(头部交换机)
  • fanout(扇形交换机)
扇形交换机
  • 声明一个扇形交换机type='fanout'
 channel.exchange_declare(exchange='logs',
                         type='fanout')
  • 查看声明是否成功
[root@tencent1 sbin]# ./rabbitmqctl list_exchanges
Listing exchanges ...
fanout_exchange fanout
  • 发送消息时指定对应的exchange
channel.basic_publish(exchange='fanout_exchange',
                      routing_key="",
                      body="message")
  • 声明两个队列并使用channel.queue_bind进行绑定
channel.queue_declare("queue1")
channel.queue_declare("queue2")
channel.queue_bind(exchange="fanout_exchange",queue="queue1")
channel.queue_bind(exchange="fanout_exchange",queue='queue2')
  • 查看绑定情况
./rabbitmqctl list_bindings
Listing bindings ...
fanout_exchange exchange    queue1  queue   queue1  []
fanout_exchange exchange    queue2  queue   queue2  []
...done.
  • 仅仅往exchange中发送消息(需要注意的是,扇形交换机会忽略routing_key值)
channel.basic_publish(exchange='fanout_exchange',
                      routing_key="", 
                      body="message")
  • 查看队列中的消息状态
[root@tencent1 sbin]# ./rabbitmqctl list_queues name messages_ready messages_unacknowledged 
Listing queues ...
queue1  1   0
queue2  1   0
...done.

direct直连交换机
  • 声明direct交换机
channel.exchange_declare(exchange="direct_exchange",exchange_type="direct")
  • 声明三个队列,并设置不同的两个routing_key
channel.queue_declare(queue="direct_queue1")
channel.queue_declare(queue="direct_queue2")
channel.queue_declare(queue="direct_queue3")
channel.queue_bind(exchange="direct_exchange",queue="direct_queue1",routing_key="red")
channel.queue_bind(exchange="direct_exchange",queue="direct_queue2",routing_key="red")
channel.queue_bind(exchange="direct_exchange",queue="direct_queue2",routing_key="blue")
channel.queue_bind(exchange="direct_exchange",queue="direct_queue3",routing_key="blue")
  • 发送消息
channel.basic_publish(exchange="direct_exchange",
                      routing_key="red",
                      body="red_message")

channel.basic_publish(exchange="direct_exchange",
                      routing_key="blue",
                      body="blue_message")
  • 查看结果
[root@tencent1 sbin]# ./rabbitmqctl list_queues name messages_ready messages_unacknowledged 
Listing queues ...
direct_queue1   1   0
direct_queue2   2   0
direct_queue3   1   0
...done.
topic交换机
  • topic交换机能够涵盖扇形交换机和直连交换机的功能。主要是通过灵活的定义routing_key进行实现
  • 定义一个topic交换机
channel.exchange_declare(exchange="topic_exchange",exchange_type="topic")
  • 声明三个队列,并灵活使用routing_key和交换机进行绑定
channel.queue_declare(queue="topic_queue1")
channel.queue_declare(queue="topic_queue2")
channel.queue_declare(queue="topic_queue3")

# 当routing_key=“一个任意单词.orange.一个任意单词”
channel.queue_bind(exchange="topic_exchange",queue="topic_queue1",routing_key="*.red.*")
# 当routing_key=“任意值”
channel.queue_bind(exchange="topic_exchange",queue="topic_queue2",routing_key="#")
# 当routing_key=“一个任意单词.orange.0个或1一个任意单词”
channel.queue_bind(exchange="topic_exchange",queue="topic_queue3",routing_key="*.red.#")
  • 发送消息
# 三个队列都会接收到消息
channel.basic_publish(exchange="topic_exchange",
                      routing_key="n1.red.n3",
                      body="topic_message")

# 只有queue2和queue3能够接受到消息
channel.basic_publish(exchange="topic_exchange",
                      routing_key="n1.red",
                      body="topic_message")
# 只有queue2能够接受到消息
channel.basic_publish(exchange="topic_exchange",
                      routing_key="hjdasoij",
                      body="topic_message")

相关文章

  • rabbitmq06 交换机

    交换机 direct(直连交换机) topic(主题交换机) headers(头部交换机) fanout(扇形交换...

  • RabbitMQ交换机、绑定、队列、消息、虚拟主机详解

    1.交换机属性 交换机属性: name:交换机名称 type:交换机类型 direct,topic,fanout,...

  • 1、交换机

    一、交换机划分1、功能规格角度划分:低端交换机中端交换机高端交换机2、按面板口提供的接入带宽划分十兆/百兆交换机千...

  • 1-5 交换机HelloWord

    交换机属性 Name:交换机名称 Type:交换机类型direct、topic、 fanout、 headers ...

  • 非网管交换机和网管交换机的区别

    顾名思义,非网管交换机就是简单的交换机,又称傻瓜交换机。网管交换机,我更愿意称它是智能交换机,他们最大区别就是非网...

  • 交换机的分类

    1、根据网络覆盖范围划分交换机:广域网交换机和局域网交换机 2、根据传输介质和传输速度分交换机:以太网交换机、快速...

  • DAY01(02):访问及配置交换机

    2.1 问题 修改交换机主机名 查看交换机VRP版本 查看交换机配置 使用账户和密码登录终端 保存交换机的配置 恢...

  • 一、云计算基础概念

    云计算网络基础 网络设备接口 Access接口 不是交换机和交换机之间的接口(PC和交换机、PC和路由器、交换机和...

  • 厦门话务耳机,厦门电话营销系统

    ◆★◆厦门呼叫中心,泉州电话交换机,福建点钞机,漳州电话交换机,福州电话交换机◆★◆ --------------...

  • 深度干货 | Zabbix5.0监控cisco交换机配置

    Zabbix5.0监控cisco交换机配置 1、开启交换机SNMP协议 连接交换机,运行enable进入用户模式。...

网友评论

      本文标题:rabbitmq06 交换机

      本文链接:https://www.haomeiwen.com/subject/neeoiftx.html