面试经历-具体公司暂时不说防止被找出来
后端工程师社招面试经历
最近参加了某公司的高级工程师社招,由于是电话面试,并没有涉及编程题写算法。以下是在面试过程中遇到的一些问题,希望能给还在准备面试的你们提供一些参考建议。
基础题部分:
网络分层模型以及每层的作用。ping命令是在哪一层。
你所在的项目中主要用到了哪些协议? UDP和TCP是如何选择的? 怎么兼容弱网络环境的?
C++中多态是如何实现的?多态的时候是如何找到对应的成员方法的。成员函数是一个类保存一份还是一个对象保存一份?
如果让你实现一个Set或者Map结构你认为需要考虑哪些东西?准备用什么数据结构?说出你的思考过程。
项目中有用过mysql吗,有用过mongo吗?两个主要有什么区别,你是选型的时候怎么做取舍的?
mysql和mongo性能差异的主要原因是什么?分别适合什么样的场景?两者的索引设计有什么区别
服务设计类:
设计分布式定时器
- linux crontab或者golang ticker的实现原理是什么?
- 如果用golang实现一个定时器你会如何实现?说说你知道的定时器算法?
- 让你实现分布式定时器怎么实现,要求支持百万级定时任务,需要考虑哪些东西?用什么数据结构,支撑的数量级,容灾怎么做,如何考虑服务扩缩容?
贴吧服务设计
要求跟百度贴吧一样的用户量级
你的架构将如何设计?用什么存储,要考虑到评论区楼中楼形式。存储选型上你的考量?
高并发怎么处理,qps 1k,1w, 10w, 50w 你将如何处理?redis的10w的qps都不够如何处理?
需不需要缓存?缓存怎么同步?
怎么处理热帖?热帖怎么更新?
图片服务器设计
实现一个图片服务器,类似于淘宝上的商品的展示图,这个服务写入图片的QPS要求在1w以上,读取的qps在10w以上。
- 架构怎么设计?
- 存储怎么选型?
- 读取性能怎么优化?说下CDN原理?说下这里怎么解决10w读取并发?
- 缓存的思路?怎么缓存图片?
- 假设图片的缩略图每个10k,整个服务需要多少机器?分别做什么用?你的存储需要多少机器?缓存需要多少机器?