后台面试题库

大部分都是开放式问题,看面试者回答的程度逐渐往下问。
不问一些像语言特性、语法糖那种可以死记硬背,不需要理解的问题,更多考察面试者的编程/工程 经验和思维

1. 系统

考察面试者对操作系统的了解程度,看基础功。

1.1 内存

  1. 说一下进程里的内存,是组织、管理的,例如申请一块内存,操作系统具体会做什么? ★★★✰

  2. 说一下逻辑内存地址,是怎么映射成物理内存地址?★★

1.2 调度

  1. 进程切换实际要做什么工作?如果了解协程,那协程切换又是怎么搞的?★★★

1.3 文件系统

  1. 操作系统从一个文件名,读取到具体的文件内容,实际干了什么事情?★★★★

2. 网络

考察面试者对网络常见问题的解决经验

2.1 tcp

  1. 先说一下三次握手,如果三次握手,client只做了第一次握手,就不管了,会引发服务器什么问题,有什么思路解决? ★★★

  2. time_wait是啥?为啥会有time_wait?怎么解决time_wait过多的问题?★★

2.2 http

  1. http在弱网络具体会有哪些问题?怎么解决?★★★✰

3. 算法与数据结构

考察面试者的编程思维

  1. 有100个视频,100个用户,要统计每个视频被播放的uv,允许一定误差,怎么做?★

  2. 有1000000000个视频, 100个用户,要统计每个视频被播放的uv,允许一定误差,怎么做?★★

  3. 有100个视频, 1000000000个用户,要统计每个视频被播放的uv,允许一定误差,怎么做?★★

  4. 有1000000000个视频, 1000000000个用户,要统计每个视频被播放的uv,允许一定误差,怎么做?★★★★

  5. 从一堆人中,随机挑人,例如挑出A、B,便说A、B是一伙;C、D是一伙;挑出B、C是一伙,那么A、B、C、D都是一伙。然后随机挑出两个人,判断他们是否一伙,要怎么做?★★★★

  6. LRU是怎么做的?存在哪些问题,要怎么解决?★★★

4. 组件

考察面试者对于常用组件的掌握程度。

4.1 mysql

  1. mysql索引是怎么回事?★★
  2. mysql的锁机制?写sql语句时,要怎么避免锁的粒度过大?★★★★
  3. mysql的事务是怎么做的?★★★★

4.2 redis

  1. redis如何做持久化?★★
  2. redis存在哪些性能问题?可以怎么解决?★★★
  3. redis的hash是怎么扩容的?★★

4.3 消息列队

  1. 你熟悉的这个消息队列具体工作原理是啥?存在哪些问题,怎么解决?★★★✰
  2. 容灾 ★★★

4.4 lsm

  1. leveldb/rocksdb 工作原理?读写流程?sst怎么合并?适用场景以及一些问题的优化方法 ★★★✰
  2. leveldb/rocksdb sst是怎么组织的,做了什么样的优化?★★★

5. 分布式

  1. raft/paxos 协议的原理?存在哪些问题?怎么优化?★★★★★
  2. raft/paxos只是日志同步,那怎么基于raft/paxos 做高性能的强一致系统?★★★★
  3. 如何扩缩容?★★★

你可能感兴趣的:(后台面试题库)