首页 > 其他分享 >RabbitMQ 6种模式的练习,以及知识梳理

RabbitMQ 6种模式的练习,以及知识梳理

时间:2022-12-07 09:37:13浏览次数:55  
标签:匹配 RoutingKey 队列 练习 Direct 模式 投递 RabbitMQ 梳理

常用的模式有Simple、Work、Fanout、Direct、Topic、Headers,可以通过设置交换机类型和配置参数来实现各个模式

简单模式(Simple)
工作模式(Work)

工作模式是考虑到多个消费者情况下,消息如何被消费的,主要有两种方案,轮询分发和公平分发;

轮询分发:消费者依次轮着消费消息,直到消息消费完为止,按均分配。

公平分发:根据消费者能力进行分发,即处理快的消费就多,处理慢的就消费就少,能者多劳。

发布订阅模式(Fanout)

Fanout模式是一种发布订阅模式,是一种广播机制,不需要指定路由Key。这种模式的交换机就会将消息广播到绑定的所有队列上去,只要有消费者订阅对应的队列,就会收到消息

路由模式(Direct)

Direct模式是在Fanout基础增加RoutingKey条件, 即交换机不会将消息现全部投递到所有队列,而是只投递到对应RoutingKey下的队列

主题模式(Topic)

Topic模式是在Direct模式基础增加模糊匹配RoutingKey,Direct精确匹配RoutingKey,Topic可以通*或#进行模糊匹配,从而把消息投递到对应的队列中

参数模式(Headers)

Headers模式不是通过RoutingKey进行匹配投递消息,而是匹配请求头中所带的键值进行消息投递,所以创建队列是需要设置绑定的头部信息,有两种模式:全部匹配和部分匹配。

全部匹配:x-match=all,表示所有的键值都匹配了才行。

部分匹配:x-match=any,表示只要其中有键值对匹配就行。

项目详细事例代码(https://github.com/goodluckily/RabbitMQTest)
参考文献 https://mp.weixin.qq.com/s/9LhGPZDrKtW-MGWWsM2bOQ

标签:匹配,RoutingKey,队列,练习,Direct,模式,投递,RabbitMQ,梳理
From: https://www.cnblogs.com/goodluckily/p/16962118.html

相关文章

  • python-练习字典dict
    根据月日计算天数"""练习2:根据月日,计算是这一年的第几天.公式:前几个月总天数+当月天数例如:5月10日计算:31293130+10"""list_months......
  • 洛谷 P1957 口算练习题
        实现代码(原创):#include<stdio.h>#include<string.h>#include<stdlib.h>char*itoa(intvalue,char*str,intradix){staticchardig[]=......
  • bug处理,rabbitMQ:ERROR 9392 o.s.a.r.l.SimpleMessageListenerContainer : Failed to
    layout:posttitle:bug处理,rabbitMQ:ERROR9392o.s.a.r.l.SimpleMessageListenerContainer:Failedtocheck/redeclareauto-deletequeue(s)date:2022-09-29tags:......
  • RabbitMQ
    初识MQ1.同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。两种方式各有优劣,打电话可以立即得到......
  • service练习
    Service介绍在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。为了解......
  • python-练习(字符串str与列表list)
    打印字符串"""根据下列文字,提取变量,使用字符串格式化打印信息湖北确诊67802人,治愈63326人,治愈率0.99"""region="湖南"confirmed=67802cure=63......
  • bat 练习
    bat常用命令1.help命令语法:命令/?可显示此命令的帮助信息1.1例子C:\Users\m>pause/?暂停批处理程序,并显示以下消息:请按任意键继续...C:\Users\m>e......
  • 大数据--HiveQL语句(实战练习)
    题目:1、创建员工信息数据文件employess.txt,数据文件中包含内容如下(姓名、年龄、薪资、):LilithHardy,30,6000,50,FinanceDepartmentByronGreen,36,5000,25,PersonnelDe......
  • Mac 下erlang及rabbitmq安装
    ---------------------------------------1、首先,安装Homebrew安装Homebrew遇到的问题参考这个链接2、安装erlang环境brewinstallerlang3、安装rabbitmqbrewinstallr......
  • matlab练习程序(smith预估)
    做带有纯滞后模块的控制时,直接对被控对象使用pid有时候会达不到最优效果,这个时候可以使用smith预估来补偿滞后量。下面画了五个控制流程。1.阶跃控制量直接通过原始系统......