Go相关
- map、channel、slice的底层实现,
- sync.map、sync.pool、sync.Once的原理
- GC的过程、写屏障的含义及作用
- GMP模型,触发Goroutine切换的原因有哪些?for死循环会怎么样?全局goroutine里面存储什么?
- interface的底层实现,怎么判空?
- reflect的使用
- 逃逸分析
- context的使用
- go 性能问题的定位过程(pprof的使用)
- 协程池的使用
Mysql相关
- 索引的分类
- 为什么选择B+树实现索引?一般深度为多少?b+树和红黑树的区别?
- 聚簇索引和非聚簇索引的区别
- 创建索引后,查询读取I/O的次数
- 索引的最左前缀原则
- mysql数据的索引优化以及失效
- 从学生表中查询每个班的分数的前3名
- mysql的隔离级别?处理什么问题的(脏读、幻读、不可重复读)
- mysql的主从复制过程?
- mysql的大表优化方式
Redis相关
- redis的数据类型以及日常的应用
- redis的发布/订阅的原理
- zset的底层实现
- 数据缓存过期策略
- redis的部署模式
- redis为什么速度比较快
- reids的大key、热key的处理
- 如何实现分布式锁的
- 持久化策略及其对比
- 缓存雪崩、缓存击穿、缓存穿透
Etcd相关
- etcd是什么?有什么优势
- raft选主逻辑
- 日志复制
- 脑裂问题
- etcd的watch机制
- etcd如何实现配置下发和服务发现
- etcd对于偶数机器的集群的选主处理
- 选主实现逻辑
Prometheus相关
Grpc相关
- 相较于restful的优势
- 数据交互方式
- 限流(通过流模式传输时,发送方数据量过大,会发生什么?)
- protobuf和json的对比
- grpc负载均衡的实现
Linux相关
- awk
- poll、epoll、select
- I/O模型
网络协议相关
- http2的优势
- https的建连过程(7次握手)
- 对称加密和非对称加密
- icmp协议的原理
- tcp三次握手、四次挥手
- tcp 拥塞策略
- tcp的time_wait状态和colse_wait状态
- 如何解决tcp的粘包问题
- quic协议是什么
- 如何理解网络模型
- http的状态码含义
智力题
系统设计
其他
- 一致性hash算法
- 微服务概述
- 什么是死锁,如何避免
- 限流策略
算法
海量数据处理问题(面试官很喜欢问)
- hash
- 字典树
- bitmap
- 布隆过滤器
- MapReduce
- 桶
|
请发表评论