首页 > 其他分享 >rabbitMQ--类型

rabbitMQ--类型

时间:2023-04-28 21:55:27浏览次数:35  
标签:Exchange -- item 绑定 rabbitMQ 队列 消息 key 类型

1.五种消息模型

1.1基本消息模型

 1.2work消息模型

 

1.3订阅模型

1.3.1

Fanout,也称为广播。

流程说明

流程图:

 

在广播模式下,消息发送流程是这样的:

  • 1) 可以有多个消费者

  • 2) 每个消费者有自己的queue(队列)

  • 3) 每个队列都要绑定到Exchange(交换机)

  • 4) 生产者发送的消息,只能发送到交换机,交换机来决定要发给哪个队列,生产者无法决定。

  • 5) 交换机把消息发送给绑定过的所有队列

  • 6) 队列的消费者都能拿到消息。实现一条消息被多个消费者消费

 

  • 说明

    在Fanout模式中,一条消息,会被所有订阅的队列都消费。但是,在某些场景下,我们希望不同的消息被不同的队列消费。这时就要用到Direct类型的Exchange。

    在Direct模型下:

    • 队列与交换机的绑定,不能是任意绑定了,而是要指定一个RoutingKey(路由key)

    • 消息的发送方在 向 Exchange发送消息时,也必须指定消息的 RoutingKey

    • Exchange不再把消息交给每一个绑定的队列,而是根据消息的Routing Key进行判断,只有队列的Routingkey与消息的 Routing key完全一致,才会接收到消息

     

    流程图:

     

    图解:

    • P:生产者,向Exchange发送消息,发送消息时,会指定一个routing key。

    • X:Exchange(交换机),接收生产者的消息,然后把消息递交给 与routing key完全匹配的队列

    • C1:消费者,其所在队列指定了需要routing key 为 error 的消息

    • C2:消费者,其所在队列指定了需要routing key 为 info、error、warning 的消息

订阅模型-Topic

说明

Topic类型的ExchangeDirect相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符!

 

Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,例如: item.insert

通配符规则:

#:匹配一个或多个词

*:匹配不多不少恰好1个词

 

举例:

item.#:能够匹配item.spu.insert 或者 item.spu

item.*:只能匹配item.spu

 

图示:

 

解释:

  • 红色Queue:绑定的是usa.# ,因此凡是以 usa.开头的routing key 都会被匹配到

  • 黄色Queue:绑定的是#.news ,因此凡是以 .news结尾的 routing key 都会被匹配

标签:Exchange,--,item,绑定,rabbitMQ,队列,消息,key,类型
From: https://www.cnblogs.com/caoaman/p/17363247.html

相关文章

  • 最火前端 Web 组态软件 (可视化)
    ​ 前言:随着物联网、大数据等技术高速发展,我们逐步向数字化、可视化的人工智能(AI)时代的方向不断迈进。智能时代是工业4.0时代,我国工业领域正努力从“制造”迈向“智造”的新跨越。正文:1.mxgraph:介绍:开源免费,但是需要解决的问题很多,国内学习参考资料少。但是,可视化组态的实......
  • flower in 4.28
    乐,前半场看T2然后看错题了,后半场写T2点分治调不出来,直接摆烂谁爱写谁写。明天接着摆。后天考我造的题接着摆。五月开始认真打暴力。离营还有五天?冲刺营三!那明天不是很能摆。H_Kaguya说他不太管rating结果掉到1300了,我倒是凭借着一道数据结构调一场调不出来就不交了保持......
  • 什么是imu
    IMU是惯性测量单元(InertialMeasurementUnit)的缩写是测量物体三轴姿态角(或角速率)及加速度的装置陀螺仪和加速度计,是惯性导航系统的核心装置。借助内置的加速度传感器和陀螺仪,IMU可测量来自三个方向的线性加速度和旋转角速率,通过解算可获得载体的姿态、速度和位移等信息。 IM......
  • Transformers 发展一览
    动动发财的小手,点个赞吧!Transformers研究概览1.介绍近年来,深度学习的研究步伐显着加快,因此越来越难以跟上所有最新发展。尽管如此,有一个特定的研究方向因其在自然语言处理、计算机视觉和音频处理等多个领域取得的成功而备受关注。这在很大程度上归功于其高度适应性的架构。......
  • 《人月神话》读后感2
      在第三、四章中,作者强调了软件开发过程中人员的重要性,以及团队合作的关键作用。  在第三章中,作者讲述了“向生产力之路”这一概念,即通过增加人力、时间或资源来提高软件开发的生产力。然而,作者指出这种做法并不可行,因为人力、时间和资源的增加并不能带来相应的效果提升,反而......
  • 递归
     /*一:字符串反转1code2原理图*/ 一:字符串反转1codedeftraverse(s):print(s)iflen(s)==0:returnsreturntraverse(s[1:])+s[0]if__name__=='__main__':s="abcd"s1=traverse(s)print......
  • 用户故事与敏捷方法读后感
    《用户故事与敏捷方法》这本书是一本介绍敏捷开发方法中用户故事的基本概念、应用和实践的书籍。作为一名从事软件开发的人员,我非常喜欢这本书,因为它为我们提供了一种更加敏捷、更加用户导向的开发方法。首先,这本书非常清晰地介绍了用户故事的基本概念,从用户需求的角度出发,阐述了......
  • 剑指 Offer II 083. 没有重复元素集合的全排列
     分析:今天看的明日一练,这道题有点忘了怎么做了先偷个懒,用了个全排列函数,后面再研究代码:1classSolution(object):2defpermute(self,nums):3"""4:typenums:List[int]5:rtype:List[List[int]]6"""7returnlis......
  • day08-优惠券秒杀04
    功能03-优惠券秒杀044.功能03-优惠券秒杀4.7Redis优化秒杀4.7.1优化分析现在来回顾一下优惠券秒杀业务的两个主要问题:(1)首先是对优惠券的扣减,需要防止库存超卖现象;(2)其次,需要对每个用户下单数量进行限制,实现一人一单的功能。处理秒杀优惠券的业务:先根据获取到的优惠券id,先......
  • [笔记] ELMO, BERT, GPT 简单讲解 - 李宏毅
    国内视频地址:https://www.bilibili.com/video/BV17441137fa/?spm_id_from=333.880.my_history.page.click&vd_source=bda72e785d42f592b8a2dc6c2aad24091NLP基础1.1词的表示过程演进:one-hot编码词袋模型wordembedding1.2multiplesense1)明确两个概念:token和ty......