背景
记录生活, 复盘面试.
面试流程
基本都是通用的流程, 自我介绍之后就开始问答模式了.
自我介绍
我叫xxx, xxxx年毕业于xxx, 毕业后一直从事软件开发的相关工作. 早期也做过一段时间的全栈开发的工作.
上家公司就职于xxx, 主要做得事华为外包业务. 个人技术栈主要偏向Java后端开发这一块, 前端开发也参与过一些.
- 基础/进阶: 比如Java基础, 反射, 集合框架等. 以及多线程相关工作经验.
- 框架: 使用框架就是最主流的Spring, SpringBoot, SpringCloud微服务架构体系. 数据层: MybatisPlus, Hibenate, SpingJPA都使用过.
- 数据库: 数据库这几年主要用的是MySQL, 早期Oracle, 达梦的一些数据库都使用过. 在工作中有过一些SQL优化的经验.
- 中间件: 缓存中间件Redis, 消息中间件 Kafka, RabbitMQ都使用过.
- 运维: 熟练使用Linux操作系统. K8S Docker 工作中都实际使用过.
- 前端: HTML, CSS, JS熟练使用. 前端框架 jQuery, ExtJS, VueJS 也能熟练使用.
问答
自我介绍后基本就进入问答模式了.
问题1: 微服务结构体系你们主要是怎么用的? 最常用的组件有哪些?
注册中心: Eureka
网关: Zuul
服务件通信: OpenFeign
负债均衡: Ribbon
熔断降级: Hystrix
配置中心: Config
问题2: 注册中心的锤子对比? 优缺点?
问题3: Eureka核心原理?
问题4: 心跳检测? 是谁给谁发消息?
我猜是: 注册中心区发送. 都可以.
问题5: 服务降级是怎么用的?
配置, 然后重写降级的方法.
问题6: 服务间通信超时的配置
配置这谁还记得呀
问题7: Spring如何解决循环依赖的问题?
二级缓存, 三级缓存.
问题8: 有没有遇到过线上OOM问题的?
发现:
排查:
解决:
问题9: 线程池的核心参数有哪些? 原理也介绍一下?
核心线程
最大线程
存活时间
单位
线程工厂
抛弃策略
问题10: MySQL优化经验?
问题11: 执行计划核心看哪几个字段?
问题12: 聚集索引和非聚集索引区别?
必须有聚集索引. 比如表没有主键会自己生成一个.
问题13: 带团队经验?
正常回答就行.