面试遇到过的一个问题

来源:12-1 消息队列介绍-1

无道8

2019-05-18

消息队列上游积累了很多数据 以万为单位计算 消费端如何快速消费
这个面试题的场景是 面试的这家公司是新浪子公司 一天需要从新浪通过rabbitmq接受上千万大量数据 问消费端如何快速消费处理这些数据

写回答

1回答

Jimin

2019-05-18

你好,这种问题基本上都是线上实际故障,有可能是他们遇到过但没好的方案,你给出的方案他们会拿实际场景的一些限制来问你,很可能的一种可能就是你们心里都很虚。

一天千万的量,换算成qps大约在1000这个级别(一天86400秒)。这时候如果要加速,最容易想到的就是并发处理,并发可表现在1)一个消费者消费到数据后通过多个线程处理,让消费一条消息的时间加快;2)增加消费者,并发去获取数据,多通道去消费堆积数据。但这些仅仅是加速,具体要用多少个线程、多少个消费者,还要看服务器处理能力,因为每条消息改成异步处理,就代表要占用更多的内存,内存是否能扛住是需要考虑的,如果消息处理时需要调用外部接口,还要考虑外部接口能承受的qps。
因此,这种问题,只能尝试给出可提速点,具体要用什么方案,是要结合业务实际场景及涉及的资源,任何一个短板都可能影响整个方案。这种问题更适合给出自己考虑的一些点,然后提出优缺点,并不代表你必须给出一个完美得方案,否则这个早就在业界流行大家耳熟能详就像线程池一样,而不是一个需要探讨的方案了。

0
1
无道8
非常感谢!豁然开朗
2019-05-18
共1条回复

Java高并发编程,构建并发知识体系,提升面试成功率

构建完整并发与高并发知识体系,倍增高薪面试成功率!

3923 学习 · 832 问题

查看课程