浅析RabbitMQ五种交换机类型,六种队列模式

浅析RabbitMQ五种交换机类型,六种队列模式

5种交换机类型 Exchange

Direct exchange(直连交换机)

  1. Direct exchange
    点对点模式,根据交换机绑定的routingkey才能消费,多个消费者时,谁先拿到消息谁消费,一条消息只能消费一次
    浅析RabbitMQ五种交换机类型,六种队列模式

Topic exchange(主题交换机)

  1. Topic exchange
    2.1 该模式需要exchange和queue绑定还需要和路由键routingKey关联
    2.2 支持 # 0 或 多词模糊匹配,* 一个词匹配
    应用场景:订阅任务,信息分类更新业务
    浅析RabbitMQ五种交换机类型,六种队列模式

Fanout exchange(扇型交换机)

  1. Fanout exchange
    3.1 不需要路由键routingKey
    3.2 将queue和exchange绑定,一个exchange可以绑定N多个queue,每一个queue都会得到同样的消息
    3.3 一个queue可以和多个exchange绑定,消费来自不同的exchange的消息
    3.4 转发消息最快
    应用:群聊功能、全网消息推送功能
    浅析RabbitMQ五种交换机类型,六种队列模式

Headers exchange(头交换机)

  1. Headers exchange
    4.1 使用消息属性来进行消息的分发,通过判断消息头的值能否与指定的绑定相匹配来确立路由规则
    4.2 在头交换机里有一个特别的参数”x-match”
    当”x-match”的值为“any”时,只需要消息头的任意一个值匹配成功即可,
    当”x-match”值为“all”时,要求消息头的所有值都需相等才可匹配成功
    如图所示:
    浅析RabbitMQ五种交换机类型,六种队列模式

System exchange(默认类型)

  1. System exchange
    系统默认,不需要定义交换机名字,点对点模式

6种队列模式

hello word 模式(单点对点模式)

  1. hello word 模式(单点对点模式)
    系统默认队列与交换机,点对点发送消息 浅析RabbitMQ五种交换机类型,六种队列模式

work模式(工厂模式)

  1. work模式(工厂模式)
    一个发送端,多个接收端,支持持久化durable=true持久化,公平消费原则channel.basicQos(1)(保证在接收端一个消息没有处理完时不会接收另一个消息,即接收端发送了ack后才会接收下一个消息。在这种情况下发送端会尝试把消息发送给下一个空闲的的接收端。),消息的可靠性ack=true,false
    浅析RabbitMQ五种交换机类型,六种队列模式

Publish/Subscribe(发布-订阅者模式)

  1. Publish/Subscribe(发布-订阅者模式)
    一个生产者发送消息到多个消费者
    浅析RabbitMQ五种交换机类型,六种队列模式

routing模式(路由模式)

  1. routing模式(路由模式)
    发送消息到交换机并且要指定路由key ,消费者需要匹配对路由key才能消费
    浅析RabbitMQ五种交换机类型,六种队列模式

topic模式(主题模式)

  1. topic模式(主题模式)
    发送消息到交换机并和路由key进行绑定,但该路由key支持模糊匹配,是指成为“一类”消息
    浅析RabbitMQ五种交换机类型,六种队列模式

RPC模式(集群模式)

  1. RPC模式(集群模式)