MQ学习——解决高可用、消息重复、消息丢失、消息顺序错乱、消息积压问题

本文是最近看儒猿技术窝视频做的一些笔记

高可用

面试题:如何保证消息队列的高可用?

RabbitMQ的高可用

RabbitMQ有三种模式:单机模式、普通集群模式、镜像集群模式。
在这里插入图片描述
在这里插入图片描述

kafka的高可用

在这里插入图片描述

消息重复

面试题:如何保证消息不被重复消费(如何保证消息消费时的幂等性)?
在这里插入图片描述
在这里插入图片描述

消息丢失

面试题:如何保证消息的可靠性传输(如何处理消费丢失的问题)?

在这里插入图片描述

消息顺序错乱

面试题:如何保证消息的顺序性?

rabbitMQ的消息错乱

在这里插入图片描述

在这里插入图片描述

kafka的消息错乱

在这里插入图片描述
在这里插入图片描述

消息积压

面试题:如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百完消息持续积压几小时,说说怎么解决?
在这里插入图片描述

像这种情况,只能操作临时紧急扩容了,具体操作步骤和思路如下:

(1)先修复consumer的问题,确保其恢复消费速度,然后将现有consumer都停掉

(2)新建一个topic,partition是原来的10倍,临时建立好原先10倍或者20倍的queue数量

(3)然后写一个临时的分发数据的consumer程序,这个程序部署上去消费积压的数据,消费者之后不做耗时的处理,直接均匀轮询写入临时建立好的10倍数量的queue

(4)接着临时征用10倍的机器来部署consumer,每一批consumer消费一个临时queue的数据

(5)这种做法相当于是临时将queue资源和consumer资源扩大10倍,以正常的10倍速度来消费数据

(6)等快速消费完积压数据之后,得恢复原先部署架构,重新用原先的consumer机器来消费数据



如果想要详细了解的话,我觉得可以看石杉老师讲解的视频,真心不错。
附上链接:儒猿技术窝 | Java工程师面试突击第一季【免费】

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值