美文网首页
Exchange 详解

Exchange 详解

作者: qyfl | 来源:发表于2019-09-26 22:25 被阅读0次

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

    如下图所示的黄框部分

    系统架构.png

    交换机属性

    • Name:交换机名称。
    • Type:交换机类型。direct、topic、fanout 等等
    • Durability:是否需要持久化。true 为持久化
    • Auto Delete:当最后一个绑定到该交换机的队列被删除后,自动删除该交换机。
    • Internal:当前交换机是否为 RabbitMQ 内部使用。默认为 false。
    • Arguments:扩展参数,用于扩展 AMQP 协议制定化使用。

    Direct 类型

    所有发送到 Direct 类型的交换机中的数据转发到路由键指定的队列中。

    例如:名为 "test_exchange" 的交换机下,名为 "test_route" 路由键绑定了名为 "test_q" 的队列。
    那么在生产者在发送的时候,需要将 exchange 指定为 "test_exchange",routing key 指定为 "test_route"。才能将消息发送到 "test_q" 队列中。

    Topic 类型

    前提:

    • 每一个交换机都会通过路由键绑定队列。
    • 每一个队列绑定一个路由键。

    Topic 类型就是队列绑定的路由键是模糊匹配的。
    # 匹配一个或多个词
    * 匹配一个词

    示例:

    • 队列 A 绑定的路由键是 usa.#。队列 B 绑定的路由键是 #.weather
    • 那么生产者在发送的时候指定路由键为 usa.abc.efg,那么将会发送到 A 队列里。
    • 如果路由键为 abc.efg.weather 那么会发送到 B 队列里。

    Fanout 类型

    • 这种类型的交换机不处理路由键,只是需要简单的将队列绑定到交换机上。
    • 发送到交换机的消息都会被转发到与该交换机所绑定的队列上
    • 在所有交换机中转发消息最快

    相关文章

      网友评论

          本文标题:Exchange 详解

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