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