!!! 每个人的技术栈都不一样,没法全部包括,哪怕是自己,当时问的时候也是很多没有问到。
毕业浙江大学,先在一家CAD设计渲染公司工作,负责容器开发,监控等。此人业务,中间件,基础架构都做过)以及对 k8s 云原生有专长和兴趣作为自己的”硬招牌”。
PingCAP
基本k8s下的插件编写,k8s的调试。。这个需要熟悉插件,熟悉运行策略
service的用途和原理。涉及nodeport,负载均衡,vip,
Informer的基本知识,这个是client-go的部分,还有多个组件,完全在我的知识盲区。
k8s 的代码我以前其实只看过 kubelet,临阵磨枪的时候把apiserver、scheduler、controller-manager 都看了一遍,笑容渐渐出现。
StatefulSet 用过吗?有什么特点?https://draveness.me/kubernetes-statefulset/
partition 机制 https://godleon.github.io/blog/Kubernetes/k8s-StatefulSets-Overview/ ~~第五端的update更新。https://kubernetes.io/zh/docs/tutorials/stateful-application/basic-stateful-set/#%E5%88%86%E6%AE%B5%E6%9B%B4%E6%96%B0
这几个我也不知道。。
聊我之前做的一个数据同步的项目,大概内容是订阅 MySQL Binlog,sink 到搜索索引、分库分表以及业务事件订阅流中。
数据同步和订阅流,这里Mysql的binlog不熟悉。
描述了一下 tidb 的 binlog 架构,问这种场景下怎么保证 Binlog 顺序!!!—-这个是之前就是用的Tidb,然后做的自己的插件作为事物同步的内容。
- Prometheus 单实例数据量级 hold 不住了,有什么解决方案?
蚂蚁金服
有没有什么钻研得比较深得技术?(偏向集成,系统集成,主要偏向交付)
kubernetes 架构
怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度
自研配置中心, 具体做了哪些内容?
配置中心的核心数据表是怎么设计的?
对 Redis 里数据结构的实现熟悉吗?
- 说了一个 zset 跳表
用过 Redis 的哪些数据结构, 分别用在什么场景?
Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用? (线程池的7个参数)
自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优?
这个问住了,我只知道最大堆最小堆,开 G1,开 GC 日志以及 OOM dumper 这些基本的
JAVA 的wait notify机制。https://ytao.top/2020/05/12/24-thread-wait-notify/
问我觉得做得最深入的项目是什么
TCP的三次握手四次挥手,TIME_WAIT, CLOSE_WAIT 2 那几个细节点
快排复习(这里要默写,记录到ANKI上复习)
有没有写过 k8s 的 Operator 或 Controller?(我:没有写过)
知道 CAS 吗? Java 中 CAS 是怎么实现的?
Kafka 的消费者如何做消息去重?
- MySQL 去重、Redis 去重、假如场景量极大且允许误判,布隆过滤器也可以???
面完之后心里就想:头条的面试真是耿直啊,Java 的 HashMap、锁机制、CAS 到 MySQL 的索引,Redis 的 zset,再到 LSM 树,全都是后端或中间件相关的热门面试题。
另外一篇
SpringBoot自动装配过程,SpringBoot循环依赖,SpringBoot自定义start,HashMap。(这里偏走业务岗了)
JVM/ArrayList/JMM内存屏障,往深了问,比方 JMM 内存屏障怎么设计的
一般回答初始化过程,组成,底层结构,算法,线程是否安全等,这块一定要回答仔细,要看过源码,或者看些B站的源码讲解很仔 细,到每一个方法名字,要是集合类就挂掉了,那就凉凉了……
AQS实现,公平锁/非公平锁,synchronized和lock的区别,synchronized锁演化过程
- 一般从AQS谈起,这个和HashMap一样一定要通读源码,知道每一个方法的名字和过程,和集合类同样重要。
- 即使没有问你,你最后也可以对比下synchronized和lock和LockSupport,显得JUC下面都精通。
- 还有这三个CountDownLatch/CyclicBarrier/Semaphore,一般会问使用场景,要了然于
CAS:通常搭配volatile问,我一般在上面几个回答中就带上了,这个应用比较广泛了,AQS,集合等大量使用,源码的时候直接说了就OK
IO多路复用的复习,epoll select。
SDS 的redis部分。
单例模式,然后背设计模式
算法也几乎不问,头条就算法题几乎必须做出来,不然基本不会过。
设计模式和springboot,会引申静态代理,动态代理,抽象工厂,单例模式。
拾遗
- MySQL的事务隔离级别。(https://cloud.tencent.com/developer/article/1833688)
- 集簇索引,,https://www.bilibili.com/video/BV1Eb4y1R7zd?p=56&vd_source=6839c91a2b9df99d4148fa39a23ed06c