目录:
- 面试官为啥要出这样一个开放式问题
- 生产消费模型及核心数据结构
- 支撑TB级数据写入的分布式架构
- 数据宕机场景下的高可用架构
- 支持数据不丢失的ack机制
- 最后的总结
1、面试官为啥要出这样一个开放式问题
这篇文章简单给大家来聊一个互联网大厂的Java面试题:如果让你设计一个消息中间件,你会怎么做?
其实这个问题之前大致给大家聊过,本质就是面试官在考察一个高级以上的Java工程师的系统设计能力。
给你一个平时大家都常用的一个消息中间件作为命题,让你现场开放式发挥,立马开动脑筋说说如果让你来设计这么一个消息中间件。
让你从整体架构,核心流程,数据结构,等各个层面来考虑,你会如何完成这个设计?
其实任何一个面试官都应该知道,如果一个人没有真的做过消息中间件开发的话,是不太可能在短时间内,瞬间给出一套特别靠谱的架构设计方案的。
但是用这个题目作为一个开放式命题,他最大的好处,就是可以尽可能的挖掘出一个候选人的较为真实的系统设计的能力和功底。
为什么这么说呢?
因为如果面试的时候很多东西都是一些常见的技术问题,比如说:
- 消息中间件如何保证数据不丢失?
- 聊聊Elasticsearch的架构原理以及性能优化?
- 你们公司的微服务架构整体如何设计的?
这些问题相对来说都是比较固定的一些问题。
所谓固