2024.1.12(抖音)

561 阅读4分钟

字节抖音开放平台一面(主要是考察基础相关,平时工作中涉及的技术)

  1. 面试官自我介绍,简单讲讲了他们团队所负责的事情
  2. 自我介绍
  3. 这次看外部机会的原因是啥?
  4. Redis平时用过哪些数据类型
  5. 你们用string的话,有遇到大key的场景吗(例如,100-200KB就挺大了)
  6. 用来做二级缓存的话,你们是怎么和数据库保持一致性的呢
  7. 你刚提到的回写任务中的分布式锁具体是怎么实现的呢?
  8. 直接SET成功就结束了吗,不会手动释放吗,完全依靠它TTL自己过期吗?
  9. 那你们释放锁具体是怎么做的呢
  10. 但你先查出来,再去删的时候,这期间有可能比如触发TTL过期或其它因素,你能保证你删的是你查的吗?
  11. 那是不是如果你的服务实例挂了,就会锁一段很长的时间(TTL)
  12. 那你知道标准的分布式锁解法是啥吗?
  13. 按你们现在的搞法,我理解可能出了问题,得手动去删,比如像典型的当你要发布重启实例的时候,没有去删那个key的话,就只能等着它自己过期呗(确实在我们一些重跑报告的场景,需要重新触发回写任务时哦,先手动删key,被面试官diss这种手动做法特别草台班子5555)
  14. 讲讲innoDB数据存储大致是怎样的结构
  15. 是所有B+树的叶子节点都存这个数据吗
  16. 有遇到一些深翻页的问题吗
  17. 你们订单大概有多少,说量级就好
  18. 那按这个量级,业务上线一段时间之后,比如运营人员去查,或者要给平台的卖家吐一些查询接口的时候,你肯定就会遇到这个深翻页问题呀
  19. 刚才好像听到你们针对C端有一个account_id维度的分表,还有一个面向运营相当于B端查询的表,那你们这2个表相当于是存储同一份冗余的数据,是这样吗?
  20. 你们是业务逻辑上实现就是双写吗,就比如用户下单,要写DB的分表,还要写ES(其实那会我已经不在这个组了,我也不知道后续具体是怎么实现的了...)
  21. 那如果是让你自己来设计这个DB和ES的数据同步方案,你会怎么做呢
  22. 那MySQL主从方案你有了解吗
  23. 索引失效的场景遇到过吗,你知道的有哪些
  24. 那如果线上有一些慢SQL的报警,你一般会怎么去优化呢
  25. 有遇到过有时即使命中了索引,还是查询超时吗?该怎么解决
  26. 你说的这个覆盖索引优化,我理解不就相当于你手动去回表吗
  27. explain命令,具体对它的输出,我们会看哪些字段去分析呢
  28. 问一下go相关的,sync.Mutex和RWMutex有什么区别?
  29. 有去了解过sync.Mutex是怎么实现的吗?(支支吾吾卡了1分钟,好不容易回想起来锁升级机制和饥饿模式orz)
  30. 我想再了解一下计费这个系统,能聊吗?
  31. 我是想了解你们计费系统是怎么来保证资金安全的呢?
  32. 你们这个retail是toB的离线计算吗
  33. 但是离线资金计算场景,比如上游给你的数据给错了,有可能你已经算完把钱打给商户,不是会有一些挑战或什么的吗?
  34. 那你们自身会有做什么监控手段,能够提前发现问题,而不是依赖业务反馈issue
  35. 那你促销活动预算池中设计的对账监控任务,扫描的数据量有多大呢,对账具体是怎么做呢
  36. 算法题:leetcode.cn/problems/me… (一面就考察hard我是没有料到。。。)
  37. 没有反问环节,面试官匆匆结束下线。。。