首页 > 其他分享 >消息队列面试题 -- 一问一个准

消息队列面试题 -- 一问一个准

时间:2024-09-01 09:21:04浏览次数:15  
标签:面试题 消费 -- 保证 队列 MQ 消息 集群

消息队列

 RabbitMQ的死信队列和延时队列

消息被拒,requeue设置 为 false

消息过期,队列达到最大程度 这时候会存放到死信队列中去。

设置消息过期时间:采用队列中的x-message-ttl 参数去设置,单位是毫秒

关于ActiveMQ、RocketMQ、RabbitMQ、Kafka一些总结和区别

为什么使用消息队列?

异步(发送手机验证码),

解耦(借款系统和风控系统),

削峰(秒杀,购买商品,放入消息队列排队)

使用消息队列有什么缺点?

   (1).多了一个MQ服务,可能会出现单点故障,导致系统不可用(集群)

   (2).消息队列重复消费幂等问题(一个操作无论执行多少次,都会自己业务没有任何影响)

   (3).消息队列丢失问题

   (4).消息队列顺序问题

消息队列如何选型?

ActiveMQ集群模式很复杂,它的集群模式是分片的,每个机器上只存了部分数据,万一服务挂了,数据就丢了,最高并发10万以内,社区活跃度比较低,对开发的系统安全有影响

RabbitMQ集群模式,可以保证服务挂了,不丢消息,最高并发10万以内,社区活跃度比较高

RocketMQ集群模式,可以保证服务挂了,不丢消息,最高并发10万以上,社区活跃度比较高

Kafka(集群模式,打点统计,日志统计),高并发100万

如何保证消息队列是高可用的?

集群

如何保证消息不被重复消费?

根据业务场景做幂等(1.比如唯一的信息我们可以建唯一索引,2.监听里面做校验幂等操作,3.每个消息分配一个唯一的id,uuid,消费完redis存一下,然后后面每次都进来校验下)

如何保证消息的顺序性?

 1.保证一个生产者对应着一个消费者

 2.监听器里面把消息消费放到JVM队列(LInkedBlockQueue),然后再消费本地队列

如何保证消息不丢失?

MQ发送消息到消费的整个过程分为3个阶段,生产者-MQ-消费者,

1.保证MQ服务的高可用,做集群,持久化

2.消费者在消费MQ里面的内容的时候,如果MQ保存了,MQ会有重试机制,重试还失败后会进入死信队列,然后消息丢失,这个过程可以采用ACK确认机制,手动签收消息,如果消费失败,让消息还是在MQ里面

如果消息在生产者发送到MQ的过程中,因为通讯网络问题,也可能会丢失,这个时候需要做消息持久化,我们会把消息存入到数据库,如果消费成功,把消息删除掉,当然删除消息可能会失败,后面我们可以通过定时任务轮询做补偿,然后继续忘消息队列里面发消息,那么这样可能会出现一个新问题,消息的重复消费,需要考虑幂等问题,我们消息持久化的时候都会分配一个msgId唯一标识,后面消费完了存入redis,消费之前校验一下就可以了

标签:面试题,消费,--,保证,队列,MQ,消息,集群
From: https://blog.csdn.net/ZhTiY/article/details/141776754

相关文章

  • 绝缘粒是干什么的
    ‌绝缘粒主要用于电晶体的绝缘和固定。‌绝缘粒,也被称为电晶体垫片,是一种特殊的绝缘控件,主要用于电晶体、晶体管等电子元件的绝缘和固定。它们通常由塑料制成,如NYLON66、PBT、ABS等材料,这些材料具有良好的绝缘性和耐高温性能,能够有效地防止电晶体外壳与散热片之间发生短路,同时提......
  • 喜报!Fluent Editor 开源富文本迎来了第一位贡献者!
    你好,我是Kagol,个人公众号:前端开源星球。2024年8月20日,刚开源一周的富文本FluentEditor迎来了第一位贡献者:zzxming1Bug描述zzxming同学修复了FluentEditor富文本表格模块的一个隐藏Bug:fix:tablemodulecan'tsavebackgroundcolor#10缺陷描述:通过表格右键菜......
  • Metasploit Pro 4.22.3-2024082201 (Linux, Windows) - 专业渗透测试框架
    MetasploitPro4.22.3-2024082201(Linux,Windows)-专业渗透测试框架Rapid7Penetrationtesting,releaseAug22,2024请访问原文链接:https://sysin.org/blog/metasploit-pro-4/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org世界上最广泛使用的渗透测试框架......
  • Acunetix v24.8 发布,新增功能概览
    Acunetixv24.8发布,新增功能概览Acunetixv24.8(Linux,Windows)-Web应用程序安全测试Acunetix|WebApplicationSecurityScanner请访问原文链接:https://sysin.org/blog/acunetix/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org重要提示AcunetixPremium......
  • 【从头写CAD】 转换矩阵类系列八,代码汇总
    为了找出优化代码的方案,梳理矩阵类现有代码。现汇总转换矩阵所有代码在同一个文件中,同时调整了与矩阵类重载的代码的先后次序。完整代码如下:/*矩阵类编程思路总说明:平面CAD对象主要包括点(point)、线(line含线段、直线、射线,宽线、多段线)、平面形状(shap含矩形、圆形、椭......
  • eladmin (文件上传+文件删除)(cve-2024-7458)
    侵权声明本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系:[[email protected]]。我们将在确......
  • Burp Suite Professional 2024.8 发布下载,新增功能概览
    BurpSuiteProfessional2024.8(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBur......
  • 真话有危险,测评需谨慎!一个家最大的内耗:谁都在抱怨,没人肯改变——早读(逆天打工人爬取热
    现在都这么完了吗?引言Python代码第一篇洞见一个家最大的内耗:谁都在抱怨,没人肯改变第二篇故事风云录结尾引言慢慢调整时间一是现在有点忙做那个传播声音的研究实验实在是有点没有头绪没有头绪的事情你就不知道怎么安排时间也就不知道做什么大概需要多久才合......
  • Windows Server 2019 OVF, updated Aug 2024 (sysin) - VMware 虚拟机模板
    WindowsServer2019OVF,updatedAug2024(sysin)-VMware虚拟机模板2024年8月版本更新,现在自动运行sysprep,支持ESXiHostClient部署请访问原文链接:https://sysin.org/blog/windows-server-2019-ovf/,查看最新版。原创作品,转载请保留出处。现在都是自动sysprep的......
  • Charles激活
    简介Charles激活码计算激活Help->RegisterCharles添加RegisteredName和计算出的Licensekey点击RegisterJavaimportjava.nio.ByteBuffer;importjava.nio.ByteOrder;importjava.util.Random;importjava.util.Scanner;/***@program:ZK*@de......