字节一面

  • 自我介绍
  • 简单介绍字节青训营项目
  • 是组队的吗
  • 项目耗时
  • 项目收获的点
  • ELK 是你们搭建的吗
  • ELK 的软件安装
  • 数据流大概是怎样的
  • 是通过什么写到 Logstash 里的
  • Logstash 的功能
  • 你们用的的 fail2ban 是什么
  • traceID 介绍
  • 微服务框架用的什么
  • traceID 在框架中是怎么传递的
  • 对于异步的请求怎么处理的
  • 这个项目的挑战和难点
  • Golang 的 Panic 关键字
  • Panic 怎么恢复
  • 不加 defer 会怎样
  • 为什么不能恢复
  • go 的方法的传值,传递切片,是怎么传的,在里面改变切片,外部能感受到吗
  • 你说的副本是什么概念
  • 在函数中 map 改变 kv,外部能感受吗
  • 传递结构体,一般传值还是传指针
  • GMP 模型
  • 在一个程序中不断起 goroutine,它的队列最终是个什么状态
  • 一个 G 在一个 M 上执行的时间过长,会怎样调度
  • 是通过什么策略控制的呢
  • 刚才说的太长时间你有个时间上的概念吗,什么时间算太长
  • 协程和线程的区别
  • 其他的优势,怎么时候选择协程,什么时候不应该选协程
  • 线程和协程,IO 密集型和 CPU 密集型哪个更适合
  • 他节省的时间是怎么体现的
  • 如果我找其他的线程呢?有什么区别
  • 你比较擅长什么
  • MySQL 为什么使用 B+ 树
  • 分裂与结合,这个是 B 树与 B+ 树的区别吗
  • 放在叶子结点上导致了什么呢
  • 还有其他的吗
  • 了解过跳表吗
  • 时间复杂度一样吗,跳表和 B+
  • 为什么 Redis 的 zest 使用了跳表,为什么不用 B+
  • MySQL 和 Redis 这两种的本质区别
  • 有没有可能这两种分别适用于内存和磁盘
  • 你有什么想问的
  • 简单编程题 15min:两个 Version 字符串比较大小

字节二面

  • 自我介绍
  • 个人擅长的领域,未来发展
  • 能实习多长时间
  • 什么时候可以开始
  • 你想在哪些方向上,哪些团队实习
  • 青训营经历
  • 团队人数,分工
  • 队长开发吗
  • 持续时间
  • 封闭式的吗
  • 你对这个抖音后端的设计思路
  • 微服务你这个怎么拆的
  • 为什么这么拆
  • 有没有必要把用户拆出来
  • 微服务好处,实用角度
  • 服务观测、日志收集,这个是怎么考虑的
  • 项目难点
  • 团队项目管理难点
  • 怎样让协同的质量更高
  • 做过的其他项目
  • 跳表是什么
  • 对比有序的数组的优点
  • 平衡树是什么概念
  • 平衡树有什么实现
  • 某一种平衡树自平衡的思路
  • 线程和协程的区别
  • 协程为什么是 kb 级
  • 开销更小,具体表现在哪些方面
  • 还有别的吗
  • 你学过什么计算机基础方面的课程吗
  • http 请求的数据包的传输,发生过程
  • 四次挥手介绍
  • tcp 的拥塞算法
  • 设计模式
  • 多久接触 go 语言
  • gorm 的理解
  • 技术的角度,你有没有看过源码,或者使用的角度
  • 你有看过他的实现吗
  • 乐观锁和悲观锁
  • 互斥锁什么时候用
  • 互斥锁使用的注意点
  • 为什么设计上是不可重入的
  • 设计上怎么避免重复上锁
  • 介绍一下Protocol Buffers
  • 还有吗
  • 修改名字,换 key,在序列化上有什么注意点吗
  • 技术上还有什么擅长的没问到的
  • 缓存一致性
  • 删除而不是更新是为什么
  • 删除不会有这个问题吗
  • 延迟双删再解释一下
  • 如果中间有人拉了值那不就拉到旧值了
  • 算法题 15min:手写 LRU

自我感受

e1e010d400b8c12dce93aecd2ebee860

2f20f8a4ee11d8830852953215d693b0

字节二面挂,复盘了一下感觉还是自己太菜了

感觉问的问题也算合理,我应该能答出来才对

最近发生了好多事情,真的累,以后再说吧