面试遇到过的一个问题
来源:12-1 消息队列介绍-1
![](http://img1.sycdn.imooc.com/user/5458659400017f0802190220-100-100.jpg)
无道8
2019-05-18
消息队列上游积累了很多数据 以万为单位计算 消费端如何快速消费
这个面试题的场景是 面试的这家公司是新浪子公司 一天需要从新浪通过rabbitmq接受上千万大量数据 问消费端如何快速消费处理这些数据
写回答
1回答
-
你好,这种问题基本上都是线上实际故障,有可能是他们遇到过但没好的方案,你给出的方案他们会拿实际场景的一些限制来问你,很可能的一种可能就是你们心里都很虚。
一天千万的量,换算成qps大约在1000这个级别(一天86400秒)。这时候如果要加速,最容易想到的就是并发处理,并发可表现在1)一个消费者消费到数据后通过多个线程处理,让消费一条消息的时间加快;2)增加消费者,并发去获取数据,多通道去消费堆积数据。但这些仅仅是加速,具体要用多少个线程、多少个消费者,还要看服务器处理能力,因为每条消息改成异步处理,就代表要占用更多的内存,内存是否能扛住是需要考虑的,如果消息处理时需要调用外部接口,还要考虑外部接口能承受的qps。
因此,这种问题,只能尝试给出可提速点,具体要用什么方案,是要结合业务实际场景及涉及的资源,任何一个短板都可能影响整个方案。这种问题更适合给出自己考虑的一些点,然后提出优缺点,并不代表你必须给出一个完美得方案,否则这个早就在业界流行大家耳熟能详就像线程池一样,而不是一个需要探讨的方案了。012019-05-18
相似问题