XSYX
1.自我介绍
2. 最近一个项目的业务和技术栈
3. 分布式锁解决库存问题
4. spring的IOC和AOP讲解
5. 类加载器层级
6.线程池核心参数和问题
7. 期待的团队是怎样的?
8.反向提问(对docker和k8s的应用以及技术栈的升级的态度和规划)
PA
1. 自我介绍
我是x,y年毕业于z大学a专业,现在已经工作了b年,先后在c,d,e等领域做研发工作。我的技能栈是:xxxx;
我最近做的一个比较贴合岗位要求的项目是A,主要做健康saas平台,我主导了整个健康saas云平台的架构设计,封装了一整套公共技术组件,各种saas平台碰到的问题,我基本也踩过相关的坑了。
接下来你看是先讨论项目还是跟项目无关的技术。
结合面试前整理的岗位技能要求,背书一遍,比如下面是职位要求。
Java架构师
工作职责
- 参与SaaS云平台系统架构设计;
- 分布式云平台系统开发;
- SaaS云平台公共技术组件设计和开发;
- 参与解决各类疑难技术问题。
任职资格
- 本科学历, 计算机相关专业,5年以上开发和设计工作经验 ;
- 有千万级云平台架构设计和开发工作经验,精通Java编程;
- 深入理解网络编程模型,对各类开源框架有深入的了解;
- 熟悉并能熟练运用Redis、Kafka、Solr/ES、MQ等开源组件 ;
- 熟悉MySQL或Oracle数据库;
- 在微服务系统设计(基于Dubbo或Spring Cloud等)、开发和运维领域有相关经验。
我背书技能栈的时候,结合自己的技能点,一一对应上做介绍。
我成功的主导和参与过日请求量过亿,日活过百万的云平台的架构设计和开发工作,比如我在A公司主导设计的XAPP项目;
我精通Java8,对源码有一定程度的研读,对网络,集合,并发,io使用娴熟,理解深刻;
我熟悉Netty,对编写无阻塞高并发的网络通信模型有一定研究,比如我在B公司主导研发的Y设备连接中间件;
我热爱研究开源框架,spring,springboot,springcloud,dubbo的源码有一定研究,封装过团队使用的公共组件,适合团队使用的传统的技术开发栈,最新的springboot开发栈我都搭建过。
Redis,Kafka,Es,MQ(kafka,rabbitMQ,rocketMQ)是分布式场景下的架构的基础组件,这些我都能熟练使用,并0运维的搭建相关集群;
熟练使用MySQL多年,数据库调优,冷热库分离,读写分离,分表分库等都熟练掌握和操作,数据库中间件zebra,Mycat都重度使用过;
最后服务的这两家公司,A公司采用的dubbo为主要RPC通信手段的微服务架构,而B公司采用的是SpringCloud为主要技术栈的微服务架构,我可以搭建全套的技术栈,开发,自动化测试,部署,监控,调优等有亲力亲为过的,也有跟运维的同事合作搭建过。
运维方面,我熟悉docker和k8s,会写简单的shell脚本,python脚本,ansible有多年使用经验,不客气的说,100台左右数量的服务器,可以让我来做运维。
2. 最近一个项目的技术架构和业务架构
当时没回答好,幸好拿了一个本子和笔头,一步一步倒豆子一样给面试官画。
现在用专业的工具planuml
3. 限流的实现原理和漏桶算法
4.日志中心如果队列满了的处理策略
5. redis的bitmap算法(布隆过滤)
6. 秒杀的解决方案如何不超发(分段锁)
7.线程池的核心参数,AQS模型
8. JDK8的CompletableFuture的掌握
9. 反向提问( 业务的社会意义和市场)
原创不易,转载请注明出处。