存储系统

  • mysql
  • redis
  • mongodb
  • hive
  • kafka

八、MySQL

  • 手写/口述场景题的 SQL 语句
  • 一条 SQL 语句在数据库框架中的执行流程?
  • 数据库的三范式是什么?
  • MySQL 中的数据类型有哪些?
  • char 和 varchar 的区别?
  • 谈谈你对索引的理解?底层数据结构?
  • 为什么要使用索引?一定要使用索引吗?
  • 为什么索引的底层数据结构采用 B+ 树而不是红黑树?
  • 索引的类型?
  • 什么叫聚簇索引?什么叫联合索引?
  • 谈下什么是前缀索引?
  • 谈下什么是覆盖索引?
  • 什么情况下索引会失效?即查询不走索引?
  • 查询性能的优化方法?
  • InnoDB 和 MyISAM 的比较?
  • 为什么要分库分表?分库分表后,主键 ID 怎么设置?
  • 水平切分和垂直切分该如何选择?存在什么问题?
  • 主从复制中涉及到哪三个线程?
  • 如何实现 MySQL 的读写分离?
  • MySQL 的主从复制原理是什么?如何解决 MySQL 主从同步延迟问题?
  • 谈下你对读写分离的理解?
  • 谈下你对数据库事务的理解?不同隔离级别下会产生什么问题?怎么解决?
  • MySQL 默认的隔离级别是什么?
  • MVCC 的实现原理是什么?
  • 数据库中常用的锁有哪些?
  • 表锁和行锁有什么区别?
  • InnoDB 什么时候使用行级锁?什么时候使用表级锁?
  • InnoDB 存储引擎的锁的 3 种算法?
  • MySQL 数据库 CPU 飙升到 500% 的话他怎么处理?
  1. 数据库三范式是什么?
  2. 有哪些数据库优化方面的经验?
  3. 请简述常用的索引有哪些种类?
  4. 以及在 MySQL 数据库中索引的工作机制是什么?
  5. MySQL 的基础操作命令:
  6. MySQL 的复制原理以及流程。
  7. MySQL 支持的复制类型?
  8. MySQL 中 Myisam 与 Innodb 的区别?
  9. MySQL 中 Varchar 与 Char 的区别以及 Varchar( 50)中的 50 代表的涵义?
  10. MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
  11. 表中有大字段 X (例如: text 类型),且字段 X 不会经常更新,以读为为主,将该字段拆成子表好处是什么?
  12. MySQL 中 InnoDB 引擎的行锁是通过加在什么上完成(或称实现)的?
  13. MySQL 中控制内存分配的全局参数,有哪些?
  14. 若一张表中只有-一个字段 VARCHAR(N)类型,utf8 编码,则 N 最大值.为多少(精确到数量级即可)?
  15. [SELECT *]和[SELECT 全部字段]的 2 种写法有何优缺点?
  16. HAVNG 子句和 WHERE 的异同点?
  17. MySQL 当记录不存在时 insert,当记录存在时 update,语句怎么写?
  18. MySQL 的 insert 和 update 的 select 语句语法
  • MySQL 的复制原理以及流程
  • MySQL 中 myisam 与 innodb 的区别,至少 5 点
  • MySQL 中 varchar 与 char 的区别以及 varchar(50)中的 50 代表的涵义
  • MySQL binlog 的几种日志录入格式以及区别
  • MySQL 数据库 cpu 飙升到 500%的话怎么处理
  • 备份计划,mysqldump 以及 xtranbackup 的实现原理
  • MySQL 单表量级达到 5 千万以上,如何添加修改字段而不产生锁表?
  • 生产环境下,变更 MySQL 的表结构步骤是什么?
  • MySQL 建表的最佳实践是什么?
  • MySQL 的表空间设置个和优化策略主要有哪些?

十二、Redis

  • Redis 是什么?Redis 有哪些功能?都有哪些使用场景?
  • Redis 为什么是单线程的?
  • Redis 支持的数据类型有哪些?
  • 什么是缓存雪崩?该如何解决?
  • 什么是缓存穿透?怎么解决?
  • 怎么保证缓存和数据库数据的一致性?
  • Redis 持久化有几种方式?
  • Redis 怎么实现分布式锁?Redis 分布式锁有什么缺陷?
  • Redis 淘汰策略有哪些?
  • redis 常见的性能问题有哪些?该如何解决?
  • 什么是 Redis?
  • Redis 集群方案应该怎么做?都有哪些方案?
  • Redis 集群方案什么情况下会导致整个集群不可用?
  • 怎么理解 Redis 事务?
  • Redis key 的过期时间和永久有效分别怎么设置?
  • Redis 如何做内存优化?
  • Redis 回收使用的是什么算法?
  • Redis 持久化数据和缓存怎么做扩容?
  • Redis 与其他 key-value 存储有什么不同?
  • Redis 是单线程的,如何提高多核 CPU 的利用率? 谈谈对于 Redis 的底层数据结构的理解。 跳表了解吗?Redis 的 zset 实现原理以及为什么不用红黑树。 Redis 哨兵原理以及集群版故障转移过程。 基于 Redis 实现分布式锁。 Redis 渐进式 Rehash 的实现原理。 Redis 和 LevelDB 的区别以及 LevelDB 的 LSM 树和 WAL 原理。 Redis 主从同步的实现原理和过程、产生数据丢失的原因。 MyISAM 和 InnoDB 的区别。 MySQL 索引原理和优化。 Redis 集群版如何实现一致性 Hash 算法的。 Redis 的单线程网络框架原理和混合持久化机制。 类 Redis 数据库 Pika 了解吗?基本设计架构是什么? 如何设计一个缓存系统以及缓存击穿的解决方案? 一致性协议 raft/paxos/2pc/3pc 基本原理。 Redis 的 Gossip 协议原理。 Redis4.0+版本的 BIO 线程原理和使用。 简述如何自己实现一个 NoSQL,需要考虑什么。

十三、消息队列

  • 消息队列的主要作用?
  • 消息队列的优缺点?
  • 如何保证消息队列的高可用?
  • 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
  • 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?
  • 如何保证消息的顺序性?
  • 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
  • 如果让你写一个消息队列,该如何进行架构设计?说一下你的思路
  • RabbitMQ 有哪些重要的角色?有哪些重要的组件?
  • RabbitMQ 怎么避免消息丢失?
  • 要保证消息持久化成功的条件有哪些?
  • RabbitMQ 有几种广播类型?
  • RabbitMQ 怎么实现延迟消息队列?
  • Kafka 可以脱离 zookeeper 单独使用吗?为什么?
  • Kafka 有几种数据保留的策略?

十四、Zookeeper

  • zookeeper 是什么框架?
  • 有哪些应用场景?
  • 使用什么协议?
  • 说说分布式一致性算法 Paxos
  • 说一说选举算法及流程
  • zookeeper 有哪几种节点类型?
  • zookeeper 对节点的 watch 监听通知是永久的吗?
  • 有哪几种部署模式?
  • 集群中的机器角色都有哪些?
  • 集群最少要几台机器,集群规则是怎样的
  • zookeeper 都有哪些功能?
  • zookeeper 有几种部署模式?
  • 集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?
  • zookeeper 怎么保证主从节点的状态同步?
  • 集群中为什么要有主节点?
  • 说一下 zookeeper 的通知机制?
  • 说一下两阶段提交和三阶段提交的过程?分别有什么问题?
  • 你认为几阶段提交可以实现可靠事务?
  • 如何使用 zookeeper 实现分布式锁?

十五、Dubbo

  • Dubbo 的组件有哪些?作用是什么?
  • Dubbo 的集群容错模式有哪些?
  • Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
  • Dubbo 连接注册中心和直连的区别?
  • Dubbo 协议为什么要消费者比提供者个数多?
  • Dubbo 协议为什么不能传大包?
  • Dubbo 协议为什么采用异步单一长连接?
  • Dubbo 支持哪些序列化协议?说一下 Hession 的数据结构?
  • 分布式服务接口的幂等性如何设计?
  • 分布式服务接口请求的顺序性如何保证?

二、Tomcat 部分

  1. Tomcat 的缺省端口是多少,怎么修改?
  2. Tomcat 有哪几种 Connector 运行模式(优化)?
  3. Tomcat 有几种部署方式?
  4. Tomcat 容器是如何创建 servlet 类实例?用到了什么原理?
  5. Tomcat 如何优化?
  6. 内存调优
  7. 垃圾回收策略调优
  8. 共享 session 处理
  9. 添加 JMS 远程监控
  10. 专业点的分析工具有
  11. 关于 Tomcat 的 session 数目
  12. 监视 Tomcat 的内存使用情况
  13. 打印类的加载情况及对象的回收情况
  14. Tomcat 一个请求的完整过程
  15. Tomcat 工作模式?

docker

如何临时退出一个正在交互的容器的终端,而不终止它? 可以在一个容器中同时运行多个应用进程吗? 如何控制容器占用系统资源(CPU,内存)的份额? 仓库(Repository)、注册服务器(Registry)、注册索引(Index)有何关系? Docker 的配置文件放在那里。如何修改配置? Docker 与 LXC(Linux Container)有何不同? 开发环境中 Docker 与 Vagrant 该如何选择? 使用 docker build 命令有几种方法构建镜像?( overlay 文件系统里有个目录是 upperdir,它里面装的是什么? swarm 的调度模块的第一阶段,过滤器有几种?