赞
踩
消息积压在消息队列中是比较常见的问题,最直观的就是系统出现性能问题,下游系统来不及处理上有发送的消息,所以导致的消息积压。要不就是发送端发快了,要不就是消费端处理慢了。
在性能优化的层面,我们主要关注的是生产者和消费者一收和一发业务逻辑中,因为单节点的消息队列处理能力远远大于业务系统的处理能力,并且可以通过拓展Broker来进行提升整体的处理能力。而业务能力一般1S内能处理上百的请求都是比较高的性能。
一般来说发送端如果出现性能瓶颈,需要查看具体的写入消息队列的逻辑是否业务耗时比较久,从Produer发送消息到Broker,Broker收到消息后返回ACK确认,假设是1ms,耗时主要包含以下
所以可以针对不同的业务,增加并发或者是批量发送。
对于大多数的消息积压问题,都是消费端出现了性能瓶颈,导致消息积压,一般来说,如果只是由于大促或者营销导致的,那么只要消费端处理速度大于发送端速度,消息迟早可以消息完。
但是如果消费端性能一直慢,就会导致消息越积越多,一个可能导致Broker消息过多超过所存储的磁盘限制,另一个就是可能出现消息丢失的问题。
能导致积压突然增加,最粗粒度的原因,只有两种:要么是发送变快了,要么是消费变慢了。
本篇文章我们说了当出现消息积压时,如果处理,第一首先是找到问题,或者紧急扩容分区和消费数,平时需要有意优化生产者和消费者的发送和消费消息的性能。消息出现积压先解决生产问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。