背景
- 公司:普渡科技
- 部门:云服务
- 第几面:一面
- 方向:后端开发
- 语言:Go
- 投递渠道:Boss
- 面试时间:2024.10.15 19:00
- 面试方式:线上(腾讯会议)
总体情况
面试持续1小时左右,因为面试的部门主要是做k8s相关,所以没有怎么考察项目。主要是问了一些代码规范、开发流程、八股、算法。
八股
- channel的底层结构说一下?channel怎么保证读写并发安全?读写队列的流程再详细说下
- GC演进的流程说一下
- GC写屏障和混合写屏障有什么不同?怎么理解写屏障?
- GC的大概流程说一下(开启写屏障stop the world -> 三色标记 -> 关闭写屏障 -> 内存的清理 -> 内存的释放)
- RESTful是怎么理解的
- 你们怎么做单元测试?对覆盖率有没有要求?
- 说一下HTTP三次握手的流程
- 为什么要三次握手?二次握手不行吗?
- 说一下HTTP四次挥手的流程
- 你在四次挥手中提到MSL,它的作用是什么?
- 在日常的网络请求中,有一些网络攻击,比如像DDOS,怎么去做一些预防、防范措施呢?
- MySQL索引的底层原理说一下
- 什么情况下要回表?
- 为什么用B+树,不用B树
- Redis Zset的底层实现说一下
- 热点数据做缓存的时候,一般怎么处理?(实际问的就是缓存击穿处理)
- 如果Redis中有上亿个以统一某个前缀开头的key,我要查其中几个,怎么样查会更好?(我回答用scan以及它的用法)
- 如果让你去设计一个面对ToC,且订单量比较大的web架构,怎么做?
- 你提到了网关,如果网关挂了你怎样让他快速起来?除了加一些限流措施,从运维角度有办法吗?现在你们公司没用k8s将它自动拉起吗?
- 微服务的优点和痛点说一下
- MySQL的性能调优方法说一下
- go的性能调优说一下
- 你们平常怎么对go去做监控呢?指标采集流程说一下?
- 你平常有云服务使用经验吗?如AWS或者google?
其它
- 你们用git作为项目的开发流程是怎么样的?(就是切分支,合分支的流程)
- 你理想中的公司的公司文化是怎么样的?你的同事是怎样的一群人?
- 有什么想问我的吗?
算法
- 环形链表(https://leetcode.cn/problems/linked-list-cycle-ii/description)(面试官说不需要写代码,说出解题思路就行)