一线大厂面试真题-如何处理消息队列的消息积压问题

通常来说,消息积压的原因是生产者的消息生产速度大于消费者的消费速度,遇到这个

问题时候,需要排查具体的原因再提出解决方案。

如果当前不是因为系统bug导致的,那我们可以优化消费端的逻辑,比如通过异步的方式来处理消息、或者通过批量处理的方式来消费。

如果通过这两种优化方式还没有缓解,可以考虑对消费端进行水平扩容,从而扩大消费

端的消费能力。

如果是因为系统bug大量消息堆积,那么首先需要解决系统bug,然后临时做紧急扩容来完成大量消息的消费。

1.   首先解决消费端的bug,来保证消费端的正常消息处理工作。

2.   接着把现在所有的消费端停止,然后新建一个Topic,然后把Partition分区数量调整成原来的10倍。

3.   接着写一个用来实现数据分发的Consumer程序,这个程序专门去消费现在积压据,消费后不做处理,而是直接再把这些数据写入临时建立的Topic的10个Partition中。

4.   然后临时增加10倍的消费者节点来部署Consumer,专门来消费临时的Partition分区数据。

通过上面这种方法,可以快速把现在堆积的消息处理完。等积压的消息处理结束后,再把恢复成原来的署架构,把临时的Topic和临时申请的机器释放掉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值