当前位置: 首页 > news >正文

MQ常见问题整理--重点笔记

一 MQ如何保证消息不丢失

image

 

 

二 如何保证消息幂等性

1,生产者:发送消息时,给每条消息分配⼀个唯⼀的ID,判断消息是否重复投递。

2,比如订单ID就是⼀个很好的带有业务属性的唯⼀指标。在使⽤RocketMQ时,可以使⽤message的key属性来传递订单ID。这样Consumer就能够⽐较好的防⽌重复消费。

 

三 如何保证消息的顺序性

1、Producer将⼀组有序的消息写⼊到同⼀个MessageQueue中。
在Producer端,RocketMQ和Kafka都提供了分区计算机制,可以让应⽤程序⾃⼰决定消息写⼊到哪⼀个分
区。所以这⼀块,是由业务⾃⼰决定的。只要通过定制数据分⽚算法,把⼀组局部有序的消息发到同⼀个对列
当中,就可以通过对列的FIFO特性,保证消息的处理顺序。对于RabbitMQ,则可以通过维护Exchange与
Queue之间的绑定关系,将这⼀组局部有序的消息转发到同⼀个对列中,从⽽保证这⼀组有序的消息,在
RabbitMQ内部保存时,是有序的。

MessageSelector
 
2、Consumer每次集中从⼀个MessageQueue中拿取消息。
在Conusmer端,RocketMQ是通过让Consumer注⼊不同的消息监听器来进⾏区分的。⽽具体的实现机制,在
之前章节分析过,核⼼是通过对Consumer的消费线程进⾏并发控制,来保证消息的消费顺序的。类⽐到Kafka
呢。Kafka中并没有这样的并发控制。⽽实际上,Kafka的Consumer对某⼀个Partition拉取消息时,天⽣就是
单线程的,所以,参照RocketMQ的顺序消费模型,Kafka的Consumer天⽣就是能保证局部顺序消费的。

MessageListenerOrderly
 

 

 

 

四 如何快速处理积压的消息

1,增加更多的Consumer实例。

2,可以创建⼀个新的Topic,配置⾜够多的MessageQueue。然后把

Consumer实例的Topic转向新的Topic,并紧急上线⼀组新的消费者,只负责消费旧Topic中的消息,并转存到
新的Topic中。这个速度明显会⽐普通Consumer处理业务逻辑要快很多。然后在新的Topic上,就可以通过添
加消费者个数来提⾼消费速度了。之后再根据情况考虑是否要恢复成正常情况。
3,异步增加线程处理消息。

 

http://www.jsqmd.com/news/593952/

相关文章:

  • Cobalt Strike实战指南:从基础配置到高级渗透技巧
  • 企业私有化 RAG 低成本部署实战
  • SEO关键词长尾词优化工具源码解析:站长流量增长的秘密武器
  • 10_微服务划分与团队人数之反模式与Spring Cloud Alibaba避坑指南
  • 【技术干货】Qwen 3.6 Plus 实战:用百万上下文打造“代理式”AI 编码工作流
  • 微前端状态管理的真相:Module Federation + 跨应用通信实战
  • 06_Neo4j知识体系之AuraDB云服务与部署实战
  • [具身智能-229]:OpenCV 的 DNN (Deep Neural Networks) 模块,可以直接加载和运行,通过PyTorch AI框架训练好的模型,而不需要安装PyTorch AI框架
  • BeMusic 3.1.3音乐网站源码:打造个人专属音乐平台的完美选择
  • 04_Neo4j知识体系之GDS图数据科学库实战
  • 如何去学习
  • 【2026年最新600套毕设项目分享】springboot仁和机构的体检预约系统(14336)
  • 基于双向反激变换器的SOC估算与主动均衡策略仿真研究——复现硕士论文并拓展六节电池模型与均衡策略分析
  • 数理化随机出题系统HTML源码,适配教育场景,支持自定义题库与难度分级
  • 08_Neo4j知识体系之企业级特性与高可用架构
  • PanSearch网盘影视资源搜索聚合工具源码解析:集成多引擎搜索技术,畅享跨平台资源检索
  • Vue3 小白入门教程:从零基础到实战-复习
  • 麦当劳9.9元早餐活动,到哪儿领取? 2026.03
  • 【2026年最新600套毕设项目分享】基于Java的游泳馆管理系统(14337)
  • AI Agent在智能制造中的应用:多智能体协同生产调度案例
  • 07_微服务划分与团队人数之渐进式拆分与团队演进
  • 彩虹云发卡商城源码二开美化版详解:高效便捷的虚拟商品自动发卡解决方案
  • 07_Neo4j知识体系之向量搜索与GraphRAG实战
  • 02_Neo4j知识体系之Cypher核心语法与CRUD实战
  • 【2026年最新600套毕设项目分享】springboot河南特色美食分享系统(14338)
  • OBS屏幕录制全攻略:从零开始轻松上手
  • 2026年美国移民机构有哪些?行业服务解析 - 品牌排行榜
  • Flutter Provider:简单而强大的状态管理
  • 2026.4.5
  • 03_Neo4j知识体系之5.x与2026.x新特性和版本演进