开发者社区> 问答> 正文

以下RabbitMQ的exchange type分别代表什么意思?

以下RabbitMQ的exchange type分别代表什么意思?
如:fanout、direct、topic

展开
收起
珍宝珠 2019-11-22 13:44:10 1699 0
1 条回答
写回答
取消 提交回答
  • amqp协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列。
    生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机。
    先由Exchange来接收,然后Exchange按照特定的策略转发到Queue进行存储。
    同理,消费者也是如此。Exchange 就类似于一个交换机,转发各个消息分发到相应的队列中。
    --------------------------------------------------
    type=fanout 类似发布者订阅者模式,会为每一个订阅者创建一个队列,而发布者发布消息时,会将消息放置在所有相关队列中
    type=direct 队列绑定关键字,发送者将数据根据关键字发送到消息exchange,exchange根据 关键字 判定应该将数据发送至指定队列。
    type=topic  队列绑定几个模糊的关键字,之后发送者将数据发送到exchange,exchange将传入”路由值“和 ”关键字“进行匹配,匹配成功,
    则将数据发送到指定队列。
    ---------------------------------------------------
    发送者路由值              队列中
    old.boy.python          old.*  -- 不匹配    *表示匹配一个
    old.boy.python          old.#  -- 匹配      #表示匹配0个或多个
    
    2019-11-22 13:44:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载