首页 > 其他分享 >MQ的一些总结

MQ的一些总结

时间:2024-05-21 16:53:32浏览次数:30  
标签:总结 Qos 消费者 确认 交换机 MQ 消息 类型 一些

原代码地址 快速掌握RabbitMQ(二)——四种Exchange介绍及代码演示 - 捞月亮的猴子 - 博客园 (cnblogs.com) 
1 
四种交换规则 1 direct类型 根据不同的routingKey 和推送到不同的消费者 2 fanout类型 生产和消费 定义 对应交换机和队列,然后根据这两个 来确认关系和推送 3 topic路由规则 模糊匹配 4 header类型 通过 head提送数据 RabbitMQ的交换机(exchange)的作用是路由消息,我们可以根据应用场景的不同选择合适的交换机。如果需要精准路由到队列, 或者对消息进行单一维度分类(只对日志的严重程度这一维度进行分类)可以使用direct类型交换机; 如果需要广播消息,可以使用fanout类型的交换机; 如果对消息进行多维度分类(如例子中按照地区和消息内容类型两个维度进行分类)使用topic类型的交换机; 如果消息归类的逻辑包含了较多的AND/OR逻辑判断可以使用header类型交换机(开发中很少用到Header类型,官网上关于Header类型的介绍也不多)。 2 1 消费模式 1 TX机制 类似数据库事务, 出错就回滚, 2 Confirm模式 这个有点像工作单元,消息处理全部ok,返回true,出错返回false,并抛出异常(这个和上面结合挺好) 2 消费者消息确认(自动确认和显示确认) 1 自动确认 就是自动处理了,不会管你消息处理ok不ok, 2 显示确认 添加确认代码执行后才添加回执 3 消息持久化 就是保存到磁盘,mq挂了再取出来,不会丢失消息 4 消息优先级 就是消息排序,那个先发送 3 1 消费模式 1 EventingBasicConsumer介绍 这个就是发布订阅模式,可以一直推送,长连接 2 BasicGet方法介绍 这个只获取一次,类似http请求,请求一次返回一次 3 QueueBaicConsumer 已过时 2 Qos 服务质量 就是例如推了100条,消费者接受100条,但是中途服务器断了,就没了,(也可以显示确认,但是有缺点1 数据过多是内存爆了。2 单个消费者处理过慢时可添加消费者,但是这些消息都被原来的消费者接收了,状态为Unacked,所以这些消息不会再发送给新添加的消费者。针对这些问题怎么去解决呢?) 所有添加qos,分批次推送并确认 可以完美解决上边的问题,使用Qos时,Broker不会再把消息一股脑的发送给消费者,我们可以设置每次传输给消费者的消息条数n,消费者把这n条消息处理完成后,再获取n条数据进行处理,这样就不用担心消息丢失、服务端内存爆满的问题了,因为没有发送的消息状态都是Ready,所以当我们新增一个消费者时,消息也可以立即发送给新增的消费者。注意Qos只有在消费端使用显示确认时才有效,使用Qos的方式十分简单

  

标签:总结,Qos,消费者,确认,交换机,MQ,消息,类型,一些
From: https://www.cnblogs.com/liujian1368928/p/18204446

相关文章

  • SonarLint实践总结
    SonarLint实践总结1、集合要用isEmpty()判空。MinorcodesmellUseisEmpty()tocheckwhetherthecollectionisemptyornot.问题代码:   Rule:UsingCollection.size()totestforemptinessworks,butusingCollection.isEmpty()makesthecodemorer......
  • 一些好用的css小小属性,拿下拿下!!
    CSSwriting-mode属性它是用于垂直排版的语言,比如中文或者日文。然而,有趣的是如果我们把它用在英语中,可以很方便的创建垂直文本。(writing-mode属性定义了文字在文文字块中垂直或者水平方向,参考MDN。)horizontal-tb:水平方向自上而下的书写方式。即left-right-top-bottom......
  • 树链剖分总结
    本博客为本人对树剖可解决题目的总结。。。概念1:\(fa[u]\):\(u\)的父亲2:\(size[u]\):\(u\)节点\(u\)为子树的节点个数3:\(dep[u]\):\(u\)节点的深度4:\(wson[u]\):\(u\)节点的重儿子编号5:\(top[u]\):\(u\)节点所在重链的顶部端点6:\(dfn[u]\):\(u\)节点......
  • 2020年迟到的年终总结
    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解`2020年迟到的年终总结日期:2021-1-26阿珏谈天说地浏览:545次评论:7条我一直在想究竟要不要写年终总结,又该写点什么好呢纠结了一个多月,这......
  • Unity WebGL的一些配置
    添加自定义值方法:在网页模板中,添加<title>公司名字|{{{PROJECT_NAME}}}</title>///读取PlayerSettings.GetTemplateCustomValue("PROJECT_NAME");///设置PlayerSettings.SetTemplateCustomValue("PROJECT_NAME","这是一个自定义值");修改WebGL模板说......
  • Stream流常用方法总结
    Stream流思想:先得到集合或者数组的Stream流(就是一根传送带);把元素放上去;然后就用这个Stream流简化的API来方便的操作元素。 Stream流的三类方法:1、获取Stream流:创建一条流水线,并把数据流放到流水线上准备进行操作;2、中间方法:流水线上的操作,一次操作完毕之后,还可以继续进行其......
  • 20240520刷题总结
    T1(状态置换,搜索与dp,dp存值结构体)T376。还是从搜索角度去考虑:时间,前i物品,最多拿多少。这样我们去设计状态,我一开始设置:时间,前i,值是拿多少。会发现这样会爆。其实换一下,优化效果更好。前i物品,最多拿j,用的最少时间。实际转移就是背包。存值就存结构体。#include<iostream>......
  • 关于 图论建模 的一些技巧
    分层图思想分层图在最短路中经常用到。直观上讲,就是将一个图复制k倍,互相是平行的,即互不影响,分层图两两之间会有决策边相连。这就等价于要在一个图上进行k次决策,对于每次决策,不影响图的结构,只影响目前的状态或代价。一般将决策前的状态和决策后的状态之间连接一条权值......
  • 登录页面漏洞总结
    汇总一些项目中挖到过的,和做项目的时候会用到的测试方法,最近也是疲于面试,讲的是时候总是一时想不起来,所以决定还是总结一下吧,以后我还是要多放网络安全相关的,面试官看时候也知道我了解哪些点,但奈何笔记太多需要整理一下再放出来,以前不敢放是因为确实一直觉得自己太菜了。如果后面......
  • 5_20总结
    tomcat设置①On'Update'action:从字面上理解就是手工触发update动作的时候做什么updateresources ----更新静态的资源,比如html,js,css等运行模式和调试模式都是立即生效。updateclassesandresources ----更新java,jsp和静态资源java修改后,会被编译成.cla......