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

共 2206字,需浏览 5分钟

 ·

2021-01-14 18:13

点击蓝色「小黑十一点半关注楼下小黑哥😏

点击下方卡片可搜索文章👇


前言

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 系列问题

  1. 负载均衡在消费者实现还是服务提供者实现?
  2. 负载均衡如何实现
  3. 服务动态发现如何实现?

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

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

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

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

这个问题不用说了吧~

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

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

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

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

总结

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

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

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

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

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

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

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



往期精彩回顾




抄答案就是了,两套详细的设计方案,解决头疼的掉单问题|文末又又送书
一条失去条件的动态 SQL,到手的年终奖飞了|文末彩蛋
老大甩给我 30G 文件,让小黑哥几天内全部导入到数据库|文末送书



浏览 53
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报