一面
-
介绍一下自己
-
问项目经历, 聊”数据同步”
-
接着聊上了 K8S 的项目
-
有没有什么钻研得比较深得技术?(大佬:kubernetes, golang, prometheus, java)
-
kubernetes 的架构是怎么样的?
-
这个问题很大,拆成 apiserver、controller、kubelet、scheduler 讲了一下
-
golang 与 java 的比较
-
这个问题又很大,当时主要对比了 vm、协程支持、面向对象和泛型的区别、以及自己对各自使用场景的一些理解
-
golang 的 gc 算法
-
知道是三色标记,不过细节说不上来
-
从无限的字符流中, 随机选出 10 个字符
-
没见过也没想出来,查了一下是蓄水池采样算法,经典面试题,没刷题吃亏了
-
怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度
-
单节点提速:优选阶段随机取部分节点进行优选;水平扩展 scheduler 节点,pod 做一致性 hash 来决定由哪个scheduler 调度
-
你有什么想问我的?
一面其实有点僵,大佬自己完全没放开,面试官对大佬的回答没有什么反馈和深入,都是”哦好的”然后就过了。所以大佬当时面完觉得自己其实已经挂了(要是对候选人不感兴趣,有时候也就问完问题走个过场溜了),后来收到二面电话着实吃惊了一下。
二面
-
先聊了聊项目
-
给 Prometheus 做了哪些改动?
-
自研配置中心, 具体做了哪些内容?
-
有用过 MySQL 的什么高级特性吗?
-
这里不太理解,我问什么算高级特性,面试官就切换到了下一个问题
-
配置中心的核心数据表是怎么设计的?
-
为什么在业务里用 Redis, Redis 有什么优点?
-
单线程:并发安全;高性能;原语与数据结构丰富;采用广泛,踩坑成本低
-
对 Redis 里数据结构的实现熟悉吗?
-
说了一个 zset 跳表
-
用过 Redis 的哪些数据结构, 分别用在什么场景?
-
Java 初始