面试题 模拟1

!!! 每个人的技术栈都不一样,没法全部包括,哪怕是自己,当时问的时候也是很多没有问到。

毕业浙江大学,先在一家CAD设计渲染公司工作,负责容器开发,监控等。此人业务,中间件,基础架构都做过)以及对 k8s 云原生有专长和兴趣作为自己的”硬招牌”。

https://aleiwu.com/post/interview-experience/

PingCAP

  1. 基本k8s下的插件编写,k8s的调试。。这个需要熟悉插件,熟悉运行策略

  2. service的用途和原理。涉及nodeport,负载均衡,vip,

  3. Informer的基本知识,这个是client-go的部分,还有多个组件,完全在我的知识盲区。

  4. k8s 的代码我以前其实只看过 kubelet,临阵磨枪的时候把apiserver、scheduler、controller-manager 都看了一遍,笑容渐渐出现。

  5. StatefulSet 用过吗?有什么特点?https://draveness.me/kubernetes-statefulset/

  6. 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

  7. image-20220607171344167这几个我也不知道。。

  8. 聊我之前做的一个数据同步的项目,大概内容是订阅 MySQL Binlog,sink 到搜索索引、分库分表以及业务事件订阅流中。

数据同步和订阅流,这里Mysql的binlog不熟悉。

描述了一下 tidb 的 binlog 架构,问这种场景下怎么保证 Binlog 顺序!!!—-这个是之前就是用的Tidb,然后做的自己的插件作为事物同步的内容。

  1. Prometheus 单实例数据量级 hold 不住了,有什么解决方案?

蚂蚁金服

  1. 有没有什么钻研得比较深得技术?(偏向集成,系统集成,主要偏向交付)

  2. kubernetes 架构

  3. 怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度

  4. 自研配置中心, 具体做了哪些内容?

  5. 配置中心的核心数据表是怎么设计的?

  6. 对 Redis 里数据结构的实现熟悉吗?

    • 说了一个 zset 跳表
  7. 用过 Redis 的哪些数据结构, 分别用在什么场景?

  8. image-20220607185750849

  9. Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用? (线程池的7个参数)

  10. 自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优?

  11. 这个问住了,我只知道最大堆最小堆,开 G1,开 GC 日志以及 OOM dumper 这些基本的

  12. JAVA 的wait notify机制。https://ytao.top/2020/05/12/24-thread-wait-notify/

  13. 问我觉得做得最深入的项目是什么

  14. TCP的三次握手四次挥手,TIME_WAIT, CLOSE_WAIT 2 那几个细节点

  15. 快排复习(这里要默写,记录到ANKI上复习)

  16. 有没有写过 k8s 的 Operator 或 Controller?(我:没有写过)

  17. 知道 CAS 吗? Java 中 CAS 是怎么实现的?

  18. Kafka 的消费者如何做消息去重?

    • MySQL 去重、Redis 去重、假如场景量极大且允许误判,布隆过滤器也可以???
  19. 面完之后心里就想:头条的面试真是耿直啊,Java 的 HashMap、锁机制、CAS 到 MySQL 的索引,Redis 的 zset,再到 LSM 树,全都是后端或中间件相关的热门面试题。

另外一篇

  1. SpringBoot自动装配过程,SpringBoot循环依赖,SpringBoot自定义start,HashMap。(这里偏走业务岗了)

  2. JVM/ArrayList/JMM内存屏障,往深了问,比方 JMM 内存屏障怎么设计的

  3. 一般回答初始化过程,组成,底层结构,算法,线程是否安全等,这块一定要回答仔细,要看过源码,或者看些B站的源码讲解很仔 细,到每一个方法名字,要是集合类就挂掉了,那就凉凉了……

  4. AQS实现,公平锁/非公平锁,synchronized和lock的区别,synchronized锁演化过程

    • 一般从AQS谈起,这个和HashMap一样一定要通读源码,知道每一个方法的名字和过程,和集合类同样重要。
    • 即使没有问你,你最后也可以对比下synchronized和lock和LockSupport,显得JUC下面都精通。
    • 还有这三个CountDownLatch/CyclicBarrier/Semaphore,一般会问使用场景,要了然于
  5. CAS:通常搭配volatile问,我一般在上面几个回答中就带上了,这个应用比较广泛了,AQS,集合等大量使用,源码的时候直接说了就OK

  6. IO多路复用的复习,epoll select。

  7. image-20220608154626848

  8. SDS 的redis部分。

  9. 单例模式,然后背设计模式

  10. 算法也几乎不问,头条就算法题几乎必须做出来,不然基本不会过。

  11. 设计模式和springboot,会引申静态代理,动态代理,抽象工厂,单例模式。

拾遗

  1. MySQL的事务隔离级别。(https://cloud.tencent.com/developer/article/1833688)
  2. 集簇索引,,https://www.bilibili.com/video/BV1Eb4y1R7zd?p=56&vd_source=6839c91a2b9df99d4148fa39a23ed06c