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

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

5种交换机类型 Exchange

Direct exchange(直连交换机)

  1. Direct exchange
    点对点模式,根据交换机绑定的routingkey才能消费,多个消费者时,谁先拿到消息谁消费,一条消息只能消费一次
    只会转发给绑定了对应路由键的一个消费者进行消费

Topic exchange(主题交换机)

  1. Topic exchange
    2.1 该模式需要exchange和queue绑定还需要和路由键routingKey关联
    2.2 支持 # 0 或 多词模糊匹配,* 一个词匹配
    应用场景:订阅任务,信息分类更新业务
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
假设有三个队列:A队列、B队列、C队列,四种类型交换机分别为:直接交换机、扇形交换机、主题交换机和头部交换机。 1. 直接交换机案例: 将直接交换机命名为direct_exchange,将A队列绑定到direct_exchange上,routing_key为A,将B队列绑定到direct_exchange上,routing_key为B,将C队列绑定到direct_exchange上,routing_key为C。 当生产者发送消息时,指定routing_key为A,则该消息将被发送到A队列;指定routing_key为B,则该消息将被发送到B队列;指定routing_key为C,则该消息将被发送到C队列。 2. 扇形交换机案例: 将扇形交换机命名为fanout_exchange,将A队列、B队列、C队列都绑定到fanout_exchange上。 当生产者发送消息时,该消息将被发送到fanout_exchange上,fanout_exchange会将该消息广播到所有绑定到它上面的队列中,即A队列、B队列、C队列都将收到该消息。 3. 主题交换机案例: 将主题交换机命名为topic_exchange,将A队列绑定到topic_exchange上,binding_key为“*.A.#”;将B队列绑定到topic_exchange上,binding_key为“*.B.#”;将C队列绑定到topic_exchange上,binding_key为“*.C.#”。 当生产者发送消息时,指定routing_key为“x.A.y”,则该消息将被发送到A队列;指定routing_key为“x.B.y”,则该消息将被发送到B队列;指定routing_key为“x.C.y”,则该消息将被发送到C队列。 4. 头部交换机案例: 将头部交换机命名为headers_exchange,将A队列绑定到headers_exchange上,headers为{“x-match”: “any”, “key1”: “value1”};将B队列绑定到headers_exchange上,headers为{“x-match”: “all”, “key1”: “value1”, “key2”: “value2”};将C队列绑定到headers_exchange上,headers为{“x-match”: “any”, “key2”: “value2”}。 当生产者发送消息时,指定headers为{“key1”: “value1”},则该消息将被发送到A队列和B队列;指定headers为{“key1”: “value1”, “key2”: “value2”},则该消息将被发送到B队列和C队列

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值