互联网高级Java工程师训练
分布式系统
-
为什么要进行系统拆分 分布式服务框架 分布式锁 分布式事务 分布式会话
高并发架构
-
如何设计一个高并发系统 消息队列 搜索引擎 缓存 分库分表 读写分离
高可用架构
-
如何设计一个高可用系统 限流 熔断 降级
体验一下面试官对于消息队列的7个连环炮
面试官:你好 候选人:你好 大家寒暄一下。。。 面试官拿着你的简历,突然瞅到了MQ,哟,有个亮点,这个家伙在项目里用过MQ(比如你用了AcviveMQ)。 面试官:你在系统用过消息队列吗?(面试官在缓和的语气中展开了面试) 候选人:用过的(此时感觉没啥)
面试官:那你说一下你们在项目中是怎么用消息队列的? 候选人:balabala…,我们啥啥系统发送个啥啥消息到消息队列,别的系统来消费啥的。
面试官:那你们为什么使用消息队列啊? 候选人:额。。。(愣了一下,为什么?我没仔细想啊,老大让用就用了呗),硬着头皮胡言乱语了几句。
面试官:那你说说消息队列有什么优缺点? 候选人:这个。。。(平时没怎么考虑过这个问题啊。。。)。
面试官:Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么优点和缺点啊? 候选人:我就用过ActiveMQ,别的没用过。。。
面试官:那你们是如何保证消息队列的高可用啊? 候选人:这个。。。我平时就是简单调用一下API,不太清楚消息队列怎么部署的。
面试官:如何保证消息不被重复消费啊?如何保证消费的时候是幂等的啊? 候选人:啥?(mq不就是写入消息和消费就可以了,哪来这么多问题)。
面试官:如何保证消息的可靠性传输啊?要是消息丢失了怎么办? 候选人:我们没怎么丢过消息啊
面试官:那如何保证消息的顺序性? 候选人:顺序性,什么意思?为什么我们要保证消息的顺序性
面试官:如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几个小时,说说怎么解决? 候选人:不是,我这平时没遇到过这些问题啊,就是简单用用,知道mq的一些功能。
面试官:如果让你来写一个消息队列,该如何进行架构设计啊?说一下你的思路 候选人:。。。我还是走吧。。。