当前位置:首页 > 科技  > 软件

面试官:对于MQ中的消息堆积你是怎么理解的?

来源: 责编: 时间:2024-06-06 17:38:11 91观看
导读在上一篇文章中,我们对MQ中的消息丢失有了一定的了解,相信再次被面试官问到时心里也就有了底气了。文章的地址我放在下面,还没有看的可以跳过去看一下。面试官:对于MQ中的消息丢失你是如何理解的?我们经常说的消息堆积通俗

在上一篇文章中,我们对MQ中的消息丢失有了一定的了解,相信再次被面试官问到时心里也就有了底气了。Mj028资讯网——每日最新资讯28at.com

文章的地址我放在下面,还没有看的可以跳过去看一下。Mj028资讯网——每日最新资讯28at.com

面试官:对于MQ中的消息丢失你是如何理解的?Mj028资讯网——每日最新资讯28at.com

我们经常说的消息堆积通俗点讲就是消费者消费不了了,造成消息在MQ中堆着,然后越来越多,所以说消息堆积是在消费者阶段的问题。Mj028资讯网——每日最新资讯28at.com

那么发生消息堆积的原因有哪些呢?Mj028资讯网——每日最新资讯28at.com

Mj028资讯网——每日最新资讯28at.com

一、消息堆积的原因

  1. 消费者挂掉。
  2. 消费者与 MQ 之间网络断开。
  3. 消费者代码 BUG ,重复消费一条消息。
  4. 消息路由 key 错误,造成个别分区消息堆积。
  5. 消费者性能原因,例如业务逻辑单表数据量过大造成消费时间缓慢。

除了上述的5个原因外,如果在工作中你还遇到过其他造成消息堆积的原因,也欢迎你在评论区进行交流,一起进步。Mj028资讯网——每日最新资讯28at.com

当发生了消息堆积时,优先是解决消息堆积问题,然后是排查问题制定解决方案。毕竟保证系统的可用性是首先要解决的问题。快速解决积压的方法就是通过水平扩容增加消费者的实例数量。Mj028资讯网——每日最新资讯28at.com

Mj028资讯网——每日最新资讯28at.com

消息堆积的原因我们知道了,下面我就分享一下在工作中经常用的解决消息堆积的几种方式。Mj028资讯网——每日最新资讯28at.com

二、怎么解决消息堆积问题

  1. 限制生产者消息生产速度。
  2. 增加消费者数量,水平扩容。
  3. 排查消费者代码逻辑,保证没有一直循环消费一条消息。
  4. 优化消费者消费逻辑,减少复杂计算逻辑。使用异步、多线程等手段提升消费速度。
  5. 定期清理过期消息。

对于第二条增加消费者数量需要注意的是,消息的路由key,分区等概念。如果配置不正确,新增加的消费者并不会帮忙消费堆积的消息,相反只会对新增的消息进行消费。Mj028资讯网——每日最新资讯28at.com

Mj028资讯网——每日最新资讯28at.com

三、总结

消息堆积发生的原因一般就是消费者出了问题,或者被一个异常一直错误的重试。那么解决方式也就是我们上面所说的,水平扩容消费者、消费者处理速度优化、消费者异常重试等。Mj028资讯网——每日最新资讯28at.com

不过相对应的,消息的重试也就会发生一条消息执行多次的情况,那么你的接口做幂等了吗,下一篇文章,我们就来看下MQ中的消息重复,如何处理消费过程中的重复消息。Mj028资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-92456-0.html面试官:对于MQ中的消息堆积你是怎么理解的?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 代码中预编译常见指令用法

下一篇: 面试官:对于 MQ 中的消息丢失你是如何理解的?

标签:
  • 热门焦点
Top
Baidu
map