首页 > 其他分享 >消息队列的一些总结

消息队列的一些总结

时间:2023-08-19 16:25:47浏览次数:26  
标签:总结 顺序 并发 队列 订单 消息 Consumer

一.为什么要使用消息队列?

消息队列的作用主要有以下三个

1.解耦(下游调用服务)

使用消息之前,处理完毕订单服务后需要去扣减库存,发送消息等操作,引入之后,可以把订单服务结束后放到消息队列中,下游服务订阅消息即可,完成订单服务与其他服务的解耦合。

 

2.异步操作(同步处理库存积分某些后续操作)

订单支付后需要哦扣减库存,发送通知消息,链路如果过长,响应变慢,会阻塞其他任务的进行,异步操作可以降低响应的时间。

 

3.削峰

秒杀系统等,redis,mysql压力太大,可以会挂掉,可以把消息放到消息队列中,按照设定的处理速度处理流量,就可以抗住大的流量了。

 

二.面试常见:顺序消息如何实现?

某些情况下,消息的顺序必须是有序的,比如生单->付款->出票。

全局有序性:某个topic下的所有消息都要保证是有序的

部分顺序:保证每一组消息顺序消费,比如订单消息,保证同一个订单ID能够按照顺序消费。

 

部分顺序消息
部分顺序消息相对⽐比较好实现,⽣生产端需要做到把同 ID 的消息发送到同⼀一个 Message Queue ;在消费过程中,
要做到从同⼀一个Message Queue读取的消息顺序处理理——消费端不不能并发处理理顺序消息,这样才能达到部分有
序。

 

全局顺序消息

 


RocketMQ 默认情况下不保证顺序,⽐比如创建⼀一个 Topic ,默认八个写队列列,八个读队列列,这时候一条消息可能被
写入任意⼀一个队列里;在数据的读取过程中,可能有多个 Consumer ,每个 Consumer 也可能启动多个线程并⾏
处理,所以消息被哪个 Consumer 消费,被消费的顺序和写⼈人的顺序是否⼀一致是不确定的。
要保证全局顺序消息, 需要先把 Topic 的读写队列列数设置为 ⼀一,然后Producer Consumer 的并发设置,也要是
⼀一。简单来说,为了了保证整个 Topic全局消息有序,只能消除所有的并发处理,各部分都设置成单线程处理 ,这时
候就完全牺牲RocketMQ的高并发、高吞吐的特性了。

标签:总结,顺序,并发,队列,订单,消息,Consumer
From: https://www.cnblogs.com/developS/p/17642589.html

相关文章

  • 【考后总结】8 月 CSP-S 模拟赛 7
    8.19CSP模拟25给我一首歌的时间-周杰伦雨淋湿了天空毁得很讲究你说你不懂为何在这时牵手我晒干了沉默悔得很冲动就算这是做错也只是怕错过在一起叫梦分开了叫痛是不是说没有做完的梦最痛迷路的后果我能承受这最后的出口在爱过了才有能不能给我一首歌的时......
  • 【Freertos基础入门】队列(queue)的使用
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档@TOC前言本系列基于stm32系列单片机来使用freerotsFreeRTOS是一个广泛使用的开源实时操作系统(RTOS),它提供了丰富的功能和特性,使嵌入式系统的开发更加简单和高效。队列是FreeRTOS中常用的一种通信机制,它用于在任务之间传......
  • 第七周总结
      这周简单学习了一下Nutch爬取的内容。简介Apache的子项目之一,属于Lucene项目下的子项目。Nutch是一个类似Google通用搜索引擎的解决方案,基于Hadoop任务的分布式处理模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。 总......
  • 8.14-8.20学习总结博客五:Hive进阶与复杂查询
    博客题目:学习总结五:Hive进阶与复杂查询实践内容概要:学习Hive进阶的使用方法,包括复杂查询、数据转换和性能优化等方面的知识。学习资源:推荐的Hive进阶教程、实践案例和性能优化技巧。实践内容:通过编写复杂的Hive查询语句,探索Hive的高级功能和性能优化方法,并分享实践中的挑战和解决......
  • 开源数据库Mysql_DBA运维实战 (总结)
    开源数据库Mysql_DBA运维实战(总结)SQL语句都包含哪些类型DDLDCLDMLDQLYum安装MySQL的配置文件配置文件:/etc/my.cnf日志目录:/var/log/mysqld.log错误日志:/var/log/mysql/error.logMySQL的主从切换查看主从复制状态停止主数据库的写入操作记录当前二级制日志文件和位置更新从数据库......
  • pytest + yaml 框架 -53.yaml 用例规范与全部关键字总结
    前言v1.4.4版本新增对yaml用例格式校验,不合法的用例格式不会被执行,避免出现用例格式不合法导致的报错。全部关键字总结config中可用关键字关键字可支持类型功能说明name可选str没什么用,仅描述当前yaml用例的名称base_url可选str,支持格式:http://、htt......
  • 8.18总结
    今天五点半起来,检查东西是否都带齐,今天奶奶也要做手术,希望能够快快好起来,中午一点多到学校,搬行李,累死个人,行李很重而且二教离九栋很远,累的我虚脱,晚上洗澡逃了培训会,然后和妈妈打电话询问奶奶情况,做了微创手术,过几天应该可以出院了,然后就找朋友玩了会,就睡觉了......
  • 2023.8.18A组模拟赛总结
    T1幂矩阵这题十分巧合。题目大意是有这样一个矩阵求该矩阵的逆矩阵中每项元素的平方和,手模几个点,会发现以下结论\[(P_n)^{-1}(i,j)=\begin{cases}i^m\binomij\quadi\geqj\\0\quadi<j\end{cases}\]不难发现我们的答案即是\[\sum_{i=1}^ni^{2m}\sum_{j=1}^i\bin......
  • # DP 题目总结
    DP题目总结1、LC1388.3n块披萨题意:3n的环形数组,每次取一个数后就删除前后相邻的两个数,问最后取得的总数最大是多少。分析:相当于不能取相邻数(打家劫舍问题),但这里是环形的,所以要拆成一个去掉第一个数的数组,一个去掉最后一个数的数组。算两次取最大值代码classSoluti......
  • 第三周 周博客总结
     这一周我主要应建民老师的要求观看了天道这个电视剧,对里面的剧情有了一个了解,我也明白老师让我们看这个电视剧对我们编程所带来的好处。我通过观看电视剧知道《天道》是一部备受瞩目的电视剧,它故事情节扣人心弦,演员的演技出色,以及对于价值观和人性的深刻思考,使得这部剧成为了......