这个面试官不讲套路,怎么上来就问个架构问题|面经分享

楼下小黑哥 小黑十一点半

前言

Hello,大家好,我是楼下小黑哥~

最近有个朋友出去面一圈大厂,一些独角兽公司,积累一些面试题。

这不马上就要过年了,过完年就要开始传统跳槽月了,现在在看文章的你,应该已经在摩拳擦掌了吧。

所以为了各位读者,小黑哥牺牲了色相,去跟朋友要了这些面试题,并且也跟朋友交流了当时的一些回答,基于这些斗胆做了解答。

当然了,本篇很多题目,都是一些主观题,并没有所谓的标准答案,每个人都有自己想法与理解。所以下面的回答,大家参考即可。

如果有其他答案,欢迎评论区留言~

进入面试

今天这篇文章,主要介绍哈啰单车一面的面试题。

这次面试题,朋友跟我说的时候,一直在吐槽,面试官不按套路。

朋友本来心里想着,面试官会根据自己简历,项目介绍,针对性问一些技术点。

可是谁知道上来就来问整体架构性质的问题,所以朋友刚开始慌了,不过好在也有了解,也能回答出些许。

下面开始面试题,「Come On」~

自我介绍

这个没啥好说的,提前准备一下,主要介绍自己的背景,经历过的项目,会的技术栈等。

如果刚开始面试,那还是很容易介绍过程中卡壳,所以可以讲自我介绍打印出来,自我介绍的时候可以看。

但是记住了,不是照本宣科,让面试官觉得你在背一样。

面过几次之后,说了几次之后,都会成为老司机了,自我介绍就都记住了。

项目介绍

这一环节,主要介绍自己的项目,面试官后续就会根据这个项目中的技术点针对提问,所以一定要对自己的项目非常熟悉。

「项目介绍的时候,不要一上来就说一些复杂的项目方案。」

因为在不了解的项目的背景和一些问题的情况下,大家理解的上下文是不一样的,这样就会造成双方之间理解的误差。

所以项目介绍的时候,「首先介绍一下项目的背景」。

在面试官的了解之后,那我们可以开始介绍项目的一些整体架构等等。

介绍完成之后,面试官就会根据你说到技术点,然后开始提问。

下面是这次面试官提出的一些问题。

微服务如何拆分

两大拆分原则:

  • 垂直拆分原则
  • 水平拆分原则
    基于这两大原则,然后举一个例子,如何使用这两原则。

为什么从单体服务过度到微服务

首先介绍一下单体服务优点:

  • 架构简单
  • 系统复杂度低
  • 部署简单
  • 等等
    简单而言,当业务场景简单,开发人数少,功能并不复杂的时候,就比较适合单体架构。

随着开发人数变多,功能变得复杂,单体服务就会出现痛点:

  • 服务耦合,互相影响
  • 团队开发变得复杂,版本管理变得复杂,容易出现打架情况
  • 等等

    微服务监控怎么做的?

    基于自己公司的监控体系回答,如果实在没有什么监控,可以说说自己了解的监控体系。

如何评估服务应用需要扩容?

这个可以参考沈剑老师的

互联网架构,如何进行容量设计?

  1. 评估总访问量
  2. 评估平均访问量
  3. 评估峰值访问量
  4. 压测,单机极限 qps
  5. 适当的冗余服务

    如何及时发现系统异常的情况?

    系统监控,对于异常日志,使用 ELK 进行关键日志报警。

另外针对关键接口进行响应延时,吞吐量等监控,一旦出现下降,进行报警。

微服务通讯方案如何选择

现在主流就是以下两大方案:

  • Dubbo RPC
  • Spring Cloud
    分别介绍一下,Dubbo 与 Spring Cloud,介绍优缺点,然后说一下你的选择方案,你为什么这么选。

分布式中间件如何选型?

思路同上题,可以举个例子,然后列出可以用中间件,比较中间件优缺点,横向对比分析,最后基于业务场景选择。

微服务分布式事务如何解决

如果没有实际用过,可以说下分布式事务一些解决方案:

  • 2PC
  • TCC
  • 等等
    具体解决方案可以详细看下下面这篇文章。

分布式事务总结

如果有实际使用经验,那就说下自己项目中如何使用。

MQ 系列问题

下面这些常规问题,网上一般都能找到答案,这里就不详细解释了。

  1. mq 消费失败,如何重发
  2. 重复消费问题
  3. 消息丢失问题

    Dubbo 系列问题

  4. 负载均衡在消费者实现还是服务提供者实现?
  5. 负载均衡如何实现
  6. 服务动态发现如何实现?

    看你介绍,会研究源码,看过什么源码

    又回到主观题了,介绍一下自己看过的源码。

可以从一例子介绍一下源码。

现在换工作,主要注重什么

这个问题不用说了吧~

最后,常规问题,你有什么要问的」

根据面的轮数不一样,进行相应的回答。

比如一面的话,那就不要问薪资待遇这些问题,问了也没啥用。

我通常问他,你们负责业务到底是什么,具体架构是什么等等。

总结
其实从面试题来看,面试官真的就是一环扣一环的提问,每个问题之间都存在些许联系。

个人觉得最最开始的架构类问题,不是很好回答,因为这些不像技术问题直接是有标准答案的。

回答这些问题,需要阐明自己对架构的一些理解,实际使用过程一些使用经验。

这些如果没经历过,可能真的就抓瞎了。

所以对于这些平常的时候,还是需要积累一下,提高一下自己对架构有一定认知。

剩余技术点问题,其实没啥好说的,面试的时候,基本都会问的一些常规问题,这些根据自己使用分布式中间件专门准备就好了。

好了,我是楼下小黑哥,下次再给你们分享其他面经,886~

©著作权归作者所有:来自51CTO博客作者mb5ff59251db416的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 小奎因的 PYTHON 项目部署与调度直播分享来了
  2. 项目里文件名永远不要用中文!永远不要!
  3. 架构设计|异步请求如何同步处理?
  4. P2P网贷信用评分项目分享(一)
  5. 同学,你这简历上没项目啊!
  6. 大学历经几十个落地项目,小鹿教科书式经验总结!
  7. 老大,我可以在实际项目中尝试新技术吗?
  8. 入职一个月,我在项目中犯了的哪些错?
  9. 项目经理小姐姐非要给我讲一讲,项目开发规范和流程!

随机推荐

  1. PHP中return用法解读
  2. 两小时学会用php做网站购物车
  3. PHP之扩展Memcached命令用法实例总结
  4. 带你深入了解php与C语言的区别
  5. PHP之array_unique实现二维数组去重
  6. 通过实例解析PHP数据类型转换方法
  7. 详细解说三种PHP嵌套HTML的写法
  8. 谈谈PHP运算符"::"、"->"和"=>"的区别
  9. 十大你需要在PHP中避免的坑
  10. PHP之使用cURL实现Get和Post请求