SpringBoot面试要点:从自动配置、Starter到生产排查的系统梳理
前言Spring Boot 面试题通常不会只问“它和 Spring 有什么区别”。更常见的问题是:自动配置怎么生效,Starter 做了什么,@SpringBootApplication 包含哪些能力,Bean 生命周期如何走,配置文件加载顺序是什么,事务为什么会失效,接口请求进入后经历哪些链路,线上启动慢或接口慢怎么排查。 如果只把 Spring Boot 理解成“简化 Spring 配置的框架”,回答很容易停留在使用层。更好的方式是把它理解成一条完整链路: 1启动应用 -> 创建 SpringApplication -> 准备 Environment -> 加载自动配置 -> 创建 Bean -> 启动 Web 容器 -> 接收请求 -> 执行业务和事务 本文按面试中最常见的模块梳理 Spring Boot 要点,适合作为面试前的复习清单。 Spring Boot 整体定位Spring Boot 是基于 Spring 生态的应用开发框架,核心目标是降低 Spring...
RabbitMQ面试要点:从Exchange、Queue到可靠投递的系统梳理
前言RabbitMQ 面试通常会从“它和 Kafka 有什么区别”开始,继续追问 Exchange 和 Queue 的关系、几种交换机类型、消息如何路由、如何保证消息不丢、消费者确认怎么做、死信队列有什么用、延迟消息怎么实现、消费积压如何排查。 如果只把 RabbitMQ 理解成“一个传统消息队列”,回答很容易停留在使用层。更好的方式是把它理解成一条完整链路: 1Producer 发送消息 -> Exchange 按规则路由 -> Queue 存储消息 -> Consumer 拉取或接收消息 -> ack 确认消费结果 本文按面试中最常见的模块梳理 RabbitMQ 要点,适合作为面试前的复习清单。 RabbitMQ 整体定位RabbitMQ 是基于 AMQP 协议的消息中间件,擅长业务异步、任务队列、复杂路由、削峰填谷、系统解耦和事件通知。 它的核心特点是 Exchange + Queue + Binding 的路由模型。生产者不直接把消息发到队列,而是发到 Exchange,由 Exchange 根据类型、Routing Key 和 Binding...
RocketMQ面试要点:从NameServer、Broker到事务消息的系统梳理
前言RocketMQ 面试通常会从“它和 Kafka、RabbitMQ 有什么区别”开始,继续追问 NameServer 的作用、Broker 如何存储消息、Topic 和 MessageQueue 的关系、顺序消息怎么保证、事务消息怎么实现、消费失败如何重试、死信队列有什么用、消费积压怎么排查。 如果只把 RocketMQ 理解成“阿里开源的消息队列”,回答很容易停留在使用层。更好的方式是把它理解成一条完整链路: 1Producer 从 NameServer 获取路由 -> 选择 MessageQueue -> Broker 追加写 CommitLog -> Consumer 拉取消息 -> 消费成功后提交进度 本文按面试中最常见的模块梳理 RocketMQ 要点,适合作为面试前的复习清单。 RocketMQ 整体定位RocketMQ...
Kafka面试要点:从分区、副本到消费积压的系统梳理
前言Kafka 面试题通常会从“为什么 Kafka 吞吐高”开始,继续追问 Topic 和 Partition 的关系、副本如何保证高可用、ISR 是什么、acks 怎么选、消费者组如何分摊消费、Offset 提交有什么风险、如何保证消息顺序、如何处理重复消费和消费积压。 如果只把 Kafka 理解成“一个消息队列”,回答很容易停留在使用层。更好的方式是把它理解成一条完整链路: 1Producer 写入 Topic -> 根据 Key 路由到 Partition -> Leader Partition 追加日志 -> Replica 拉取同步 -> Consumer Group 按分区消费 -> 提交 Offset 本文按面试中最常见的模块梳理 Kafka 要点,适合作为面试前的复习清单。 Kafka 整体定位Kafka 是一个分布式事件流平台,常用于消息队列、日志采集、异步解耦、削峰填谷、数据同步、流式计算和事件驱动架构。 它的核心能力来自三个设计: 追加写日志:消息以顺序追加方式写入磁盘。 分区机制:Topic 拆成多个...
OpenTSDB面试要点:从时序模型、HBase存储到查询优化的系统梳理
前言OpenTSDB 面试通常围绕几个核心问题展开:它为什么依赖 HBase,时序数据怎么建模,Metric 和 Tag 有什么区别,UID 表有什么作用,写入链路如何走,查询为什么可能很慢,如何做聚合和降采样,Tag 设计不合理会带来什么问题。 如果只把 OpenTSDB 理解成“存监控指标的数据库”,回答很容易停留在应用层。更好的方式是把它理解成一条完整链路: 1采集指标 -> 解析 metric/tags/timestamp/value -> 转换 UID -> 生成 HBase RowKey -> 写入 HBase -> 查询时按 RowKey 范围扫描 -> 聚合、降采样、返回曲线 本文按面试中最常见的模块梳理 OpenTSDB 要点,适合作为面试前的复习清单。 OpenTSDB 整体定位OpenTSDB 是构建在 HBase 之上的分布式时间序列数据库,主要用于存储和查询大规模监控指标、设备指标、业务指标和 IoT 时序数据。 它的优势是借助 HBase 的水平扩展能力支撑海量时间序列写入和长期存储。它的查询方式以...
Elasticsearch面试要点:从倒排索引、分片到查询优化的系统梳理
前言Elasticsearch 面试题通常不会只问“它是不是搜索引擎”。更常见的问题是:倒排索引是什么,写入为什么不是立刻可见,分片和副本怎么工作,查询如何路由,深分页为什么慢,聚合为什么占内存,Mapping 设计错了怎么办,集群变黄或变红怎么排查。 如果只把 Elasticsearch 理解成“可以全文搜索的数据库”,回答很容易停留在表面。更好的方式是把它理解成一条完整链路: 1文档写入 Index -> 路由到 Primary Shard -> 写内存 Buffer 和 Translog -> Refresh 生成 Segment -> 查询时并发访问 Shard -> 合并排序和聚合结果 本文按面试中最常见的模块梳理 Elasticsearch 要点,适合作为面试前的复习清单。 Elasticsearch 整体定位Elasticsearch 是基于 Lucene 的分布式搜索和分析引擎,擅长全文检索、结构化过滤、日志检索、指标分析、实时搜索和聚合分析。 它不是传统关系型数据库,也不适合替代所有主库场景。Elasticsearch...
HBase面试要点:从LSM、Region到热点优化的系统梳理
前言HBase 面试题看起来很分散:有人问它为什么适合海量明细数据,有人问 RowKey 怎么设计,有人问写入为什么快,也有人继续追问 MemStore、HFile、WAL、Region、Compaction、热点、预分区和二级索引。 如果只记住“HBase 是列式 NoSQL 数据库”,回答很容易停在概念层。更好的方式是把 HBase 理解成一条完整链路: 1客户端写入 RowKey -> 定位 Region -> 写 WAL -> 写 MemStore -> 刷盘生成 HFile -> 后台 Compaction 合并文件 -> HDFS 负责持久化和副本 本文按面试中最常见的模块梳理 HBase 要点,适合作为面试前的复习清单。 HBase 整体定位HBase 是构建在 HDFS 之上的分布式、面向列族的 NoSQL 数据库,适合存储海量、稀疏、按 RowKey 有序的数据。 它不是传统关系型数据库,不擅长复杂...
MongoDB面试要点:从文档模型、索引到副本集和分片的系统梳理
前言MongoDB 面试题通常不会只问“它是不是 NoSQL 数据库”。更常见的问题是:为什么用文档模型,文档怎么设计,索引怎么建,聚合怎么优化,副本集如何保证高可用,分片如何扩展容量,事务和关系型数据库有什么差异,慢查询应该怎么排查。 如果只把 MongoDB 理解成“可以存 JSON 的数据库”,回答很容易停留在表面。更好的方式是把它理解成一条完整链路: 1应用写入文档 -> BSON 编码存储 -> WiredTiger 管理数据页和缓存 -> 索引定位数据 -> 副本集复制 oplog -> 分片集群按 shard key 路由请求 本文按面试中最常见的模块梳理 MongoDB 要点,适合作为面试前的复习清单。 MongoDB 整体架构MongoDB 是一个面向文档的数据库,数据以集合和文档的形式组织。集合类似关系型数据库中的表,文档类似一行记录,但文档结构可以更灵活,字段可以嵌套对象和数组。 flowchart TD A[客户端请求] --> B[mongod 实例] B --> C[查询解析与执行] C -->...
Redis面试要点:从数据结构、持久化到缓存架构的系统梳理
前言Redis 面试题看起来很散:有人问数据结构,有人问缓存一致性,有人问持久化、主从复制、哨兵、Cluster,也有人会继续追问热点 Key、大 Key、缓存雪崩、分布式锁和慢查询排查。 如果只背结论,很容易在追问中断掉。更好的方式是把 Redis 理解成一条完整链路: 1请求进入 Redis -> 事件循环处理命令 -> 读写内存数据结构 -> 根据过期和淘汰策略管理 Key -> 通过 RDB/AOF 做持久化 -> 通过复制、哨兵、集群提升可用性和扩展性 本文按面试中最常见的模块梳理 Redis 要点,适合作为面试前的复习清单。 Redis 整体架构Redis 是一个以内存为主要存储介质的高性能 Key-Value 数据库。它常被用作缓存、分布式锁、计数器、排行榜、消息队列、会话存储和实时统计系统。 flowchart TD A[客户端请求] --> B[网络 IO] B --> C[事件循环] C --> D[命令解析与执行] D --> E[内存数据结构] D --> F[RDB 快照] ...
PostgreSQL面试要点:从MVCC、索引到查询优化的系统梳理
前言PostgreSQL 面试题看起来很散:有的人会问 MVCC,有的人会问索引,有的人会问事务隔离、锁、WAL、执行计划,也有人会继续追问为什么表会膨胀、为什么索引没有命中、慢 SQL 应该怎么排查。 如果只背结论,很容易被追问卡住。更好的方式是把 PostgreSQL 理解成一条完整链路: 1SQL 进入数据库 -> 解析与优化 -> 访问表和索引 -> 通过 MVCC 判断可见性 -> 通过 WAL 保证崩溃恢复 -> 通过 VACUUM 清理历史版本 本文按面试中最常见的模块整理 PostgreSQL 要点,适合作为面试前的复习清单。 PostgreSQL 整体架构PostgreSQL 采用多进程架构。客户端连接进来后,通常会由一个独立的后端进程负责处理该连接的 SQL 请求。 flowchart TD A[客户端连接] --> B[Postmaster 主进程] B --> C[Backend 后端进程] C --> D[Parser 解析器] D --> E[Planner 优化器] E -->...
