Home
Softono
s

snailclimb

Professional software vendor delivering innovative solutions on the Softono platform. Specialized in both open-source and proprietary software development.

Total Products
2

Software by snailclimb

interview-guide
Open Source

interview-guide

<div align="center"> **智能 AI 面试官平台** - 基于大语言模型的简历分析、模拟面试和 RAG 知识库系统 [![Java](https://img.shields.io/badge/Java-21-orange?logo=openjdk)](https://openjdk.org/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-4.0-green?logo=springboot)](https://spring.io/projects/spring-boot) [![React](https://img.shields.io/badge/React-18.3-blue?logo=react)](https://react.dev/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.6-blue?logo=typescript)](https://www.typescriptlang.org/) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-pgvector-336791?logo=postgresql)](https://www.postgresql.org/) </div> --- ## 项目介绍 InterviewGuide 是一个集成了简历分析、模拟面试(文字 + 语音)、面试安排、知识库管理和多模型配置的智能面试辅助平台。系统利用大语言模型(LLM)、向量数据库、Redis Stream 异步任务和实时语音技术,为求职者、HR 和培训机构提供智能化的简历评估、面试练习、知识库问答和面试日程管理能力。 ## 系统架构 ![系统架构图](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/interview-guide-architecture-diagram.png) ## 配套教程 本项目承诺**完整功能免费开源**,也不会做所谓的 Pro 版或“付费解锁核心功能”之类的设计。 如果你想学习这个项目,或者希望把它作为个人项目经历 / 毕设选题,我也整理了一套相对细致的教程:从基础设施搭建、核心业务实现,到最后如何在面试中讲清楚思路与亮点,尽量把容易卡住的地方讲透。 如果你确实需要更系统的辅导,可以点这里了解详情(**教程为付费内容**,主要是想覆盖一些时间成本,望理解,感谢支持):[《SpringAI 智能面试平台+RAG 知识库》](https://javaguide.cn/zhuanlan/interview-guide.html)。 ## 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | | --------------------- | ----- | ----------------------------- | | Spring Boot | 4.0.1 | 应用框架 | | Java | 21 | 开发语言(虚拟线程) | | Spring AI | 2.0.0-M4 | AI 集成框架、OpenAI 兼容模型接入 | | Spring AI Agent Utils | 0.7.0 | Skill 资源加载、Advisor 能力扩展 | | PostgreSQL + pgvector | 14+ | 关系数据库 + 向量存储(Compose 默认 PG16) | | Redis + Redisson | 6+ / 4.0.0 | 缓存 + 消息队列(Stream) | | Apache Tika | 2.9.2 | 文档解析 | | iText 8 | 8.0.5 | PDF 导出 | | MapStruct | 1.6.3 | 对象映射 | | SpringDoc OpenAPI | 3.0.2 | API 接口文档 | | DashScope SDK | 2.22.7 | 语音识别/合成(Qwen3 ASR/TTS)| | AWS S3 SDK | 2.29.51 | S3 兼容对象存储(MinIO/RustFS)| | WebSocket | - | 语音面试实时双向通信 | | Gradle | 8.14 | 构建工具 | 技术选型常见问题解答: 1. 数据存储为什么选择 PostgreSQL + pgvector?PG 的向量数据存储功能够用了,精简架构,不想引入太多组件。 2. 为什么引入 Redis? - Redis 替代 `ConcurrentHashMap` 实现面试会话的缓存。 - 基于 Redis Stream 实现简历分析、知识库向量化等场景的异步(还能解耦,分析和向量化可以使用其他编程语言来做)。不使用 [Kafka](https://javaguide.cn/high-performance/message-queue/kafka-questions-01.html) 这类成熟的消息队列,也是不想引入太多组件。 3. 构建工具为什么选择 Gradle?个人更喜欢用 Gradle,也写过相关的文章:[Gradle核心概念总结](https://javaguide.cn/tools/gradle/gradle-core-concepts.html)。 ### 前端技术 | 技术 | 版本 | 说明 | | ----------------- | ----- | -------------- | | React | 18.3 | UI 框架 | | TypeScript | 5.6 | 开发语言 | | Vite | 5.4 | 构建工具 | | Tailwind CSS | 4.1 | 样式框架 | | React Router | 7.11 | 路由管理 | | Framer Motion | 12.23 | 动画库 | | Recharts | 3.6 | 图表库 | | Lucide React | 0.468 | 图标库 | | React Big Calendar| 1.19 | 面试日历组件 | | React Virtuoso | 4.18 | RAG 聊天虚拟列表 | | pnpm | 10.26 | 前端包管理器 | ## 功能特性 ### 简历管理模块 - **多格式解析**:支持 PDF、DOCX、DOC、TXT 等多种简历格式。 - **异步处理流**:基于 Redis Stream 实现异步简历分析,支持实时查看处理进度(待分析/分析中/已完成/失败)。 - **稳定性保障**:内置分析失败自动重试机制(最多 3 次)与基于内容哈希的重复检测。 - **分析报告导出**:支持将 AI 分析结果一键导出为结构化的 PDF 简历分析报告。 ### 模拟面试模块 - **Skill 驱动出题**:内置 10+ 面试方向(Java 后端、阿里/字节/腾讯专项、前端、Python、算法、系统设计、测开、AI Agent 等),每个方向由 `SKILL.md` 定义考察范围、难度分布和参考知识库。 - **历史题目去重**:出题时自动排除已有会话中问过的题目,避免重复考察。 - **面试阶段时长联动**:总时长滑块拖动后,各阶段(自我介绍、技术考察、项目深挖、反问环节)按时比自动分配。 - **智能追问流**:支持配置多轮智能追问(默认 1 条),模拟多轮问答场景。 - **统一评估架构**:文字面试和语音面试共用同一套评估引擎(分批评估 + 结构化输出 + 二次汇总 + 降级兜底),评估结果可对比。 - **报告一键导出**:支持异步生成并导出详细的 PDF 模拟面试评估报告。 - **面试中心入口**:面试中心页整合文字面试和语音面试入口,支持继续面试和重新面试。 ### 面试安排模块 - **邀请解析**:规则 + AI 双引擎,支持飞书/腾讯会议/Zoom 格式,自动提取公司、岗位、时间、会议链接 - **日历管理**:日/周/月视图 + 拖拽调整 + 列表视图 - **状态流转**:定时任务自动过期,手动标记待面试/已完成/已取消 - **面试提醒**:可配置提醒,避免错过面试 ### 语音面试模块 实时语音对话面试,WebSocket + 千问3 语音模型(ASR/TTS/LLM 统一 API Key): - **实时流式对话**:句子级并发 TTS,边生成边合成边播放,首包延迟 200ms - **服务端 VAD**:自动断句,实时字幕(含中间结果) - **回声防护 + 手动提交**:避免 AI 语音被误录入 - **多轮上下文记忆 + 暂停/恢复**:超时自动暂停 - **Micrometer 埋点**:TTS/ASR 延迟、会话时长等指标 > **已知问题**:端到端延迟偏高(服务端音频中转)、无耳机时回声泄漏、TTS 音色单一、弱网音频断续。后续计划探索 WebRTC、客户端 VAD 降噪、端到端语音模型等方案。 ### 知识库管理模块 - **文档智能处理**:支持 PDF、DOCX、Markdown 等多种格式文档的自动上传、分块与异步向量化。 - **RAG 检索增强**:集成 pgvector,通过查询改写、相似度阈值和 TopK 策略提升 AI 问答的准确性与专业度。 - **流式响应交互**:基于 SSE(Server-Sent Events)技术实现打字机式流式响应。 - **智能问答对话**:支持会话管理、置顶、多知识库关联、Markdown 展示和虚拟列表渲染。 - **知识库运维**:支持分类管理、下载、重新向量化、搜索和统计信息展示。 ### 多模型与系统设置模块 - **多 Provider 管理**:内置 DashScope、LM Studio、Kimi、DeepSeek、GLM 等 OpenAI 兼容 Provider 配置。 - **默认模型切换**:支持在设置页切换默认聊天模型和默认向量模型,不需要频繁修改源码配置。 - **语音服务配置**:ASR/TTS 配置可视化管理,支持语音服务连通性测试。 - **配置安全落盘**:运行时配置默认写入用户目录 `~/.interview-guide/`,支持 API Key 加密配置。 ### TODO - [x] 问答助手的 Markdown 展示优化 - [x] 知识库管理页面的知识库下载 - [x] 异步生成模拟面试评估报告 - [x] Docker 快速部署 - [x] 添加 API 限流保护 - [x] 前端性能优化(RAG 聊天 - 虚拟列表) - [x] 模拟面试增加追问功能 - [x] 语音面试功能(基于 Qwen3 实时语音模型) - [x] 面试安排管理(智能解析 + 日历视图) - [x] Skill 驱动出题(10+ 面试方向 + 参考知识库) - [x] 统一面试评估架构(文字/语音共用评估引擎) - [x] 面试历史题目去重 - [x] 面试中心页(整合文字/语音入口) - [x] 语音面试 LLM 流式输出 + 句子级并发 TTS - [x] 语音面试暂停/恢复 + 手动提交 + 回声防护 - [x] 多 LLM Provider 管理与默认模型切换 - [x] RAG 聊天会话管理 + 虚拟列表优化 - [x] 可重复注解 API 限流(Global/IP/User 维度) - [ ] 打通模拟面试和知识库 - [ ] 语音面试接入 WebRTC 降低延迟 - [ ] 语音面试支持更多 TTS 音色 ## 效果展示 ### 简历与面试 面试中心: ![面试中心](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-interview-hub.png) Skill 出题 + JD 解析: ![Skill 出题 + JD 解析](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-skill-jd-parse.png) 简历库: ![简历库](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-resume-history.png) 简历上传分析: ![简历上传分析](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-resume-upload-analysis.png) 简历分析详情: ![简历分析详情](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-resume-analysis-detail.png) 面试记录: ![面试记录](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-interview-history.png) 面试详情: ![面试详情](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-interview-detail.png) 模拟面试: ![模拟面试](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-mock-interview.png) 面试安排 ![面试安排](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-interview-schedule-list.png) 多模型切换 + 语音服务设置: ![管理聊天模型、向量模型和模块配置](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/llm-settings.png) ### 知识库 知识库管理: ![知识库管理](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-knowledge-base-management.png) 问答助手: ![问答助手](https://oss.javaguide.cn/xingqiu/pratical-project/interview-guide/page-qa-assistant.png) ## 项目结构 ``` interview-guide/ ├── app/ # 后端应用 │ ├── src/main/java/interview/guide/ │ │ ├── App.java # 主启动类 │ │ ├── common/ # 通用基础能力 │ │ │ ├── ai/ # LLM Provider、结构化输出、Prompt 安全 │ │ │ ├── annotation/ # @RateLimit 可重复限流注解 │ │ │ ├── aspect/ # RateLimitAspect + Redis Lua 限流 │ │ │ ├── async/ # Redis Stream 生产者/消费者模板 │ │ │ ├── config/ # CORS、S3、OpenAPI、Jackson 等配置 │ │ │ ├── evaluation/ # 文字/语音共用的统一评估引擎 │ │ │ ├── exception/ # 业务异常与全局异常处理 │ │ │ └── result/ # 统一响应 Result<T> │ │ ├── infrastructure/ # 基础设施 │ │ │ ├── export/ # PDF 导出 │ │ │ ├── file/ # 文件解析、校验、清洗、S3 存储 │ │ │ ├── mapper/ # MapStruct 映射器 │ │ │ └── redis/ # RedisService、面试会话缓存 │ │ └── modules/ # 业务模块 │ │ ├── interview/ # 模拟面试模块 │ │ ├── interviewschedule/ # 面试安排模块 │ │ ├── knowledgebase/ # 知识库模块 │ │ ├── llmprovider/ # 多模型 Provider 与语音配置 │ │ ├── resume/ # 简历模块 │ │ └── voiceinterview/ # 语音面试模块 │ └── src/main/resources/ │ ├── application.yml # 应用配置 │ ├── prompts/ # AI 提示词模板(StringTemplate) │ ├── scripts/ # Redis Lua 脚本 │ ├── skills/ # 面试 Skill 定义和参考题库 │ └── voice-interview-opening.yml # 语音面试开场白配置 │ ├── frontend/ # 前端应用 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── components/ # 公共组件 │ │ ├── hooks/ # 业务 Hooks │ │ ├── pages/ # 页面组件 │ │ ├── types/ # 类型定义 │ │ └── utils/ # 工具函数 │ ├── package.json │ └── vite.config.ts │ ├── docker-compose.yml # 完整部署:前端 + 后端 + PostgreSQL + Redis + MinIO ├── docker-compose.dev.yml # 本地开发依赖:PostgreSQL + Redis + RustFS ├── docs/ # 架构设计与改造记录 ├── .env.example # 环境变量示例 └── README.md ``` ## 快速开始 环境要求: | 依赖 | 版本 | 必需 | 说明 | | ------------- | ---- | ---- | ---------------------------------------- | | JDK | 21+ | 是 | 开发语言 | | Node.js | 18+ | 是 | 前端构建 | | pnpm | 10+ | 推荐 | 前端包管理器(项目 packageManager 指定 10.26)| | Docker | - | 推荐 | 一键启动依赖服务(PostgreSQL/Redis/RustFS)| > 如果不用 Docker,需要自行安装 PostgreSQL 14+(含 pgvector 扩展)、Redis 6+ 和 S3 兼容存储。 ### 1. 克隆项目 ```bash git clone https://github.com/Snailclimb/interview-guide.git cd interview-guide ``` ### 2. 配置环境变量 推荐复制 `.env.example` 为 `.env`,后端 `bootRun` 会自动读取根目录 `.env`。最少需要填写 `AI_BAILIAN_API_KEY`,用于 DashScope 文本模型、ASR 和 TTS: ```bash cp .env.example .env # 编辑 .env # AI_BAILIAN_API_KEY=your_dashscope_api_key # AI_MODEL=qwen3.5-flash ``` 如果你更习惯通过 shell 环境变量注入,也可以这样设置: ```bash # macOS / Linux(zsh) echo 'export AI_BAILIAN_API_KEY=your_api_key' >> ~/.zshrc source ~/.zshrc # Linux(bash) echo 'export AI_BAILIAN_API_KEY=your_api_key' >> ~/.bashrc source ~/.bashrc ``` ### 3. 启动依赖服务(可选) 项目提供了 `docker-compose.dev.yml`,可一键启动 PostgreSQL、Redis、RustFS(S3 兼容存储)三个依赖: ```bash # 启动依赖服务 docker compose -f docker-compose.dev.yml up -d # 停止依赖服务 docker compose -f docker-compose.dev.yml down # 停止并清除数据 docker compose -f docker-compose.dev.yml down -v ``` 启动后默认账号: | 服务 | 地址 | 账号 | 密码 | | ------------ | ---------------- | --------------- | --------------- | | PostgreSQL | `localhost:5432` | `postgres` | `123456` | | Redis | `localhost:6379` | - | - | | RustFS 控制台 | `localhost:9001` | `rustfsadmin` | `rustfsadmin` | > **注意**:首次启动后需浏览器访问 [http://localhost:9001](http://localhost:9001) 登录 RustFS 控制台,手动创建名为 `interview-guide` 的 Bucket。使用 `docker-compose.dev.yml` + `:app:bootRun` 时,请确保 `.env` 中的 `APP_STORAGE_ACCESS_KEY` / `APP_STORAGE_SECRET_KEY` 与 RustFS 账号一致,例如都设为 `rustfsadmin`。如果本地已有 MinIO 或其他 S3 兼容存储,也可以直接使用,在 `.env` 中修改 `APP_STORAGE_*` 配置即可。 ### 4. 启动应用 **后端:** ```bash ./gradlew :app:bootRun ``` 后端服务启动于 `http://localhost:8080` **前端:** ```bash cd frontend corepack enable pnpm install pnpm dev ``` 前端服务启动于 `http://localhost:5173` ## Docker 快速部署 本项目提供了完整的 Docker 支持,可以一键启动所有服务(前后端、数据库、中间件)。 Docker Compose 编排了 6 个服务:PostgreSQL(pgvector)、Redis、MinIO(S3 兼容存储)、MinIO Bucket 初始化、Spring Boot 后端、React 前端(Nginx)。数据通过 Docker 命名卷持久化,`docker-compose down` 不会丢失数据。 ### 1. 前置准备 - 安装 [Docker](https://www.docker.com/products/docker-desktop/) 和 Docker Compose - 申请阿里云百炼 API Key(用于 AI 对话功能,申请地址:<https://bailian.console.aliyun.com/>) ### 2. 快速启动 在项目根目录下执行: `.env.example` 中的 PostgreSQL、Redis、MinIO 已与 `docker-compose.yml` 对齐(数据库用户 `postgres` / 密码 `password`,MinIO `minioadmin` / `minioadmin`)。复制为 `.env` 后主要填写 `AI_BAILIAN_API_KEY`;若你曾在旧版本中使用过不同的库密码或对象存储密钥,请同步修改 `.env`,必要时重建 Postgres 卷以免旧数据与密码不一致。 ```bash # 1. 复制环境变量配置文件 cp .env.example .env # 2. 编辑 .env 文件,填入 AI 配置 # vim .env # 必填:AI_BAILIAN_API_KEY=your_key_here # 可选:AI_MODEL=qwen3.5-flash # 默认值为 qwen3.5-flash # 也可以在设置页维护 DashScope、Kimi、DeepSeek、GLM、LM Studio 等 Provider # # 面试参数配置(可选): # APP_INTERVIEW_FOLLOW_UP_COUNT=1 # 每个主问题生成追问数量(默认 1) # APP_INTERVIEW_EVALUATION_BATCH_SIZE=8 # 回答评估分批大小(默认 8) # APP_AI_CONFIG_ENCRYPTION_KEY=32_chars # 可选:运行时 Provider API Key 加密密钥 # 3. 构建并启动所有服务 docker-compose up -d --build ``` > **仅启动依赖服务**:如果只想本地开发调试(用 `./gradlew :app:bootRun` 启动后端),可以只启动基础设施:`docker compose up -d postgres redis minio createbuckets`。将 `.env.example` 复制为 `.env` 并填写 `AI_BAILIAN_API_KEY` 即可,默认账号与 `docker-compose.yml` 一致。 ### 3. 服务访问 启动完成后,您可以通过以下地址访问各个服务: | 服务 | 地址 | 默认账号 | 默认密码 | 说明 | | ---------------- | ---------------------------------------------- | ------------ | ------------ | ---------------------- | | **前端应用** | [http://localhost](http://localhost) | - | - | 用户访问入口 | | **后端 API** | [http://localhost:8080](http://localhost:8080) | - | - | RESTful API | | **接口文档** | [http://localhost:8080/swagger-ui.html](http://localhost:8080/swagger-ui.html) | - | - | SpringDoc/Swagger UI | | **MinIO 控制台** | [http://localhost:9001](http://localhost:9001) | `minioadmin` | `minioadmin` | 对象存储管理 | | **MinIO API** | `localhost:9000` | - | - | S3 兼容接口 | | **PostgreSQL** | `localhost:5432` | `postgres` | `password` | 数据库 (包含 pgvector) | | **Redis** | `localhost:6379` | - | - | 缓存与消息队列 | ### 4. 常用运维命令 ```bash # 查看服务状态 docker-compose ps # 查看后端日志 docker-compose logs -f app # 拉取新代码后重新构建部署 docker-compose up -d --build # 停止并移除所有服务(数据保留在 Docker 卷中) docker-compose down # 停止服务并清除数据卷(慎用,会删除数据库和文件) docker-compose down -v # 清理无用镜像(构建产生的中间层) docker image prune -f ``` ## 使用场景 | 用户角色 | 使用场景 | | --------------- | -------------------------------------- | | **求职者** | 上传简历获取分析建议,进行模拟面试练习 | | **HR/招聘人员** | 批量分析简历,评估候选人能力 | | **培训机构** | 提供面试培训服务,管理知识库资源 | ## 常见问题 ### Q: 数据库表创建失败/数据丢失 检查 JPA 的 `ddl-auto` 配置。`ddl-auto` 模式对比: | 模式 | 行为 | 适用场景 | 数据保留 | | -------- | ------------------------------- | ------------- | -------- | | **update** | 智能模式:表不存在自动创建,存在则增量更新 | **开发环境(推荐)** | ✅ 保留 | | create | 无条件删除并重建所有表 | 仅首次建表时使用 | ❌ 删除 | | validate | 只验证,不修改 | 生产环境 | ✅ 保留 | | none | 什么都不做 | 生产环境 | ✅ 保留 | **推荐配置(已默认)**: ```yaml jpa: hibernate: ddl-auto: update # 首次启动自动创建表,后续保留数据并增量更新 ``` ⚠️ **注意**:避免使用 `create` 模式,否则每次重启都会删除所有数据! ### Q: 知识库向量化失败 当 `initialize-schema: false` 时,Spring AI **不会自动创建** `vector_store` 表。 ```java spring: ai: vectorstore: pgvector: initialize-schema: true ``` 建议开发环境设置为 true,方便快速启动。生产环境设置为 false,手动管理数据库 schema,避免意外变更。 ### Q: 简历分析失败 检查一下阿里云 DashScope API KEY 是否配置正确(申请地址:<https://bailian.console.aliyun.com/>)。 ### Q: 设置页新增/切换模型后不生效? 运行时 Provider 配置默认写到 `~/.interview-guide/llm-providers.yml` 和 `~/.interview-guide/llm-providers.env`。可以在设置页点击测试连接,或调用 `/api/llm-provider/reload` 重新加载配置。Docker 部署时如果希望配置持久化,建议为该目录挂载卷。 ### Q: 语音面试无法识别或没有声音? 语音面试的 ASR/TTS 默认也使用 `AI_BAILIAN_API_KEY`。请检查浏览器麦克风权限、后端日志中的 DashScope WebSocket 连接状态,以及设置页里的 ASR/TTS 测试结果。无耳机时可能触发回声录入,建议先使用手动提交模式或佩戴耳机测试。 ### Q: 简历分析一直显示"分析中"? 检查 Redis 连接和 Stream Consumer 是否正常运行。查看后端日志确认是否有错误。 ### Q: PDF 导出失败或中文显示异常? 项目已内置中文字体(珠圆玉润仿宋),支持跨平台导出。如遇到问题,请检查: - 字体文件是否存在:`app/src/main/resources/fonts/ZhuqueFangsong-Regular.ttf` - 检查日志中的字体加载信息 - 确认 iText 依赖是否正确 ### Q: Windows PowerShell 下后端日志中文乱码? **原因简述**:后端与 Logback 按 **UTF-8** 输出日志;中文 Windows 下控制台默认多为 **GBK(代码页 936)**,且 PowerShell 的 `$OutputEncoding`、控制台编码若未统一为 UTF-8,显示时就会把同一串字节解释错,出现乱码。 **本项目已做的配置**(一般无需再改):根目录 `gradle.properties`(Gradle 进程 UTF-8)、`app/src/main/resources/logback-spring.xml`(控制台日志 UTF-8)、`app/build.gradle` 中 `bootRun` 的 JVM 参数(含 `file.encoding` / `stdout.encoding` / `stderr.encoding`)。 **仍乱码时(PowerShell 侧)**:在启动 `.\gradlew.bat :app:bootRun` 的同一终端先执行下面一段;或写入 **PowerShell 配置文件**(`$PROFILE`)以便每次自动生效: ```powershell chcp 65001 | Out-Null [Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false) [Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false) $OutputEncoding = [System.Text.UTF8Encoding]::new($false) ``` 新建或编辑配置文件:`if (!(Test-Path $PROFILE)) { New-Item -Path $PROFILE -ItemType File -Force }`,再 `notepad $PROFILE` 将上述内容粘贴保存;新开终端后生效,或执行 `. $PROFILE` 立即加载。若提示脚本无法执行,可执行一次:`Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned`。 在 PowerShell 中建议使用 `.\gradlew.bat :app:bootRun`(或仓库根目录的 `.\gradlew.bat`),避免与执行策略、路径解析相关的问题。 ## 贡献 欢迎提交 Issue 和 Pull Request! ## 许可证 AGPL-3.0 License(只要通过网络提供服务,就必须向用户公开修改后的源码)

AI Agents LMS
2.4K Github Stars
JavaGuide
Open Source

JavaGuide

- 推荐在线阅读(体验更好,速度更快):[javaguide.cn](https://javaguide.cn/) - 面试突击版本(只保留重点,附带精美 PDF 下载):[interview.javaguide.cn](https://interview.javaguide.cn/) <div align="center"> [![logo](https://oss.javaguide.cn/github/javaguide/csdn/1c00413c65d1995993bf2b0daf7b4f03.png)](https://github.com/Snailclimb/JavaGuide) [GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide) <a href="https://trendshift.io/repositories/1319" target="_blank"><img src="https://trendshift.io/api/badge/repositories/1319" alt="Snailclimb%2FJavaGuide | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a> </div> > - **大模型实战项目**: [⭐AI 智能面试辅助平台 + RAG 知识库](https://javaguide.cn/zhuanlan/interview-guide.html)(基于 Spring Boot 4.0 + Java 21 + Spring AI 2.0,非常适合作为学习和简历项目,学习门槛低)。 > - **面试资料补充**: > - [《Java 面试指北》](https://javaguide.cn/zhuanlan/java-mian-shi-zhi-bei.html):四年打磨,和 [JavaGuide 开源版](https://javaguide.cn/)的内容互补,带你从零开始系统准备面试! > - [《后端面试高频系统设计&场景题》](https://javaguide.cn/zhuanlan/back-end-interview-high-frequency-system-design-and-scenario-questions.html):30+ 道高频系统设计和场景面试,助你应对当下中大厂面试趋势。 > - **使用建议** :如果你想要系统准备 Java 后端面试但又不知道如何开始的,可以参考 [Java 后端面试通关计划(后端通用)](https://javaguide.cn/interview-preparation/backend-interview-plan.html)。 > - **求个 Star**:如果觉得 JavaGuide 的内容对你有帮助的话,还请点个免费的 Star,这是对我最大的鼓励,感谢各位一起同行,共勉!传送门:[GitHub](https://github.com/Snailclimb/JavaGuide) | [Gitee](https://gitee.com/SnailClimb/JavaGuide)。 > - **转载须知**:以下所有文章如非文首说明为转载皆为 JavaGuide 原创,转载请在文首注明出处。如发现恶意抄袭/搬运,会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境! <!-- #region home --> ## AI 应用开发面试指南 面向后端开发者的 AI 应用开发、AI 编程实战与面试指南已开源,涵盖 LLM、Agent、RAG、MCP、Claude Code、Codex 等核心技术与工程实践。对标 JavaGuide!有帮助的话,欢迎 Star! - **项目地址**:[https://github.com/Snailclimb/AIGuide](https://github.com/Snailclimb/AIGuide) - **在线阅读**:[https://javaguide.cn/ai/](https://javaguide.cn/ai/) ## 后端面试准备 - [⭐Java 后端面试通关计划(涵盖后端通用体系)](./docs/interview-preparation/backend-interview-plan.md) (一定要看 :+1:) - [如何高效准备 Java 面试?](./docs/interview-preparation/teach-you-how-to-prepare-for-the-interview-hand-in-hand.md) - [Java 后端面试重点总结](./docs/interview-preparation/key-points-of-interview.md) - [Java 学习路线(最新版,4w+ 字)](./docs/interview-preparation/java-roadmap.md) - [程序员简历编写指南](./docs/interview-preparation/resume-guide.md) - [项目经验指南](./docs/interview-preparation/project-experience-guide.md) - [面试太紧张怎么办?](./docs/interview-preparation/how-to-handle-interview-nerves.md) - [校招没有实习经历怎么办?实习经历怎么写?](./docs/interview-preparation/internship-experience.md) ## Java ### 基础 **知识点/面试题总结**(必看:+1:): - [Java 基础常见知识点&面试题总结(上)](./docs/java/basis/java-basic-questions-01.md) - [Java 基础常见知识点&面试题总结(中)](./docs/java/basis/java-basic-questions-02.md) - [Java 基础常见知识点&面试题总结(下)](./docs/java/basis/java-basic-questions-03.md) **重要知识点详解**: - [为什么 Java 中只有值传递?](./docs/java/basis/why-there-only-value-passing-in-java.md) - [Java 序列化详解](./docs/java/basis/serialization.md) - [泛型&通配符详解](./docs/java/basis/generics-and-wildcards.md) - [Java 反射机制详解](./docs/java/basis/reflection.md) - [Java 代理模式详解](./docs/java/basis/proxy.md) - [BigDecimal 详解](./docs/java/basis/bigdecimal.md) - [Java 魔法类 Unsafe 详解](./docs/java/basis/unsafe.md) - [Java SPI 机制详解](./docs/java/basis/spi.md) - [Java 语法糖详解](./docs/java/basis/syntactic-sugar.md) ### 集合 **知识点/面试题总结**: - [Java 集合常见知识点&面试题总结(上)](./docs/java/collection/java-collection-questions-01.md) (必看 :+1:) - [Java 集合常见知识点&面试题总结(下)](./docs/java/collection/java-collection-questions-02.md) (必看 :+1:) - [Java 容器使用注意事项总结](./docs/java/collection/java-collection-precautions-for-use.md) **源码分析**: - [ArrayList 核心源码+扩容机制分析](./docs/java/collection/arraylist-source-code.md) - [LinkedList 核心源码分析](./docs/java/collection/linkedlist-source-code.md) - [HashMap 核心源码+底层数据结构分析](./docs/java/collection/hashmap-source-code.md) - [ConcurrentHashMap 核心源码+底层数据结构分析](./docs/java/collection/concurrent-hash-map-source-code.md) - [LinkedHashMap 核心源码分析](./docs/java/collection/linkedhashmap-source-code.md) - [CopyOnWriteArrayList 核心源码分析](./docs/java/collection/copyonwritearraylist-source-code.md) - [ArrayBlockingQueue 核心源码分析](./docs/java/collection/arrayblockingqueue-source-code.md) - [PriorityQueue 核心源码分析](./docs/java/collection/priorityqueue-source-code.md) - [DelayQueue 核心源码分析](./docs/java/collection/delayqueue-source-code.md) ### IO - [IO 基础知识总结](./docs/java/io/io-basis.md) - [IO 设计模式总结](./docs/java/io/io-design-patterns.md) - [IO 模型详解](./docs/java/io/io-model.md) - [NIO 核心知识总结](./docs/java/io/nio-basis.md) ### 并发 **知识点/面试题总结**(必看 :+1:) - [Java 并发常见知识点&面试题总结(上)](./docs/java/concurrent/java-concurrent-questions-01.md) - [Java 并发常见知识点&面试题总结(中)](./docs/java/concurrent/java-concurrent-questions-02.md) - [Java 并发常见知识点&面试题总结(下)](./docs/java/concurrent/java-concurrent-questions-03.md) **重要知识点详解**: - [乐观锁和悲观锁详解](./docs/java/concurrent/optimistic-lock-and-pessimistic-lock.md) - [CAS 详解](./docs/java/concurrent/cas.md) - [JMM(Java 内存模型)详解](./docs/java/concurrent/jmm.md) - **线程池**:[Java 线程池详解](./docs/java/concurrent/java-thread-pool-summary.md)、[Java 线程池最佳实践](./docs/java/concurrent/java-thread-pool-best-practices.md) - [ThreadLocal 详解](./docs/java/concurrent/threadlocal.md) - [Java 并发容器总结](./docs/java/concurrent/java-concurrent-collections.md) - [Atomic 原子类总结](./docs/java/concurrent/atomic-classes.md) - [AQS 详解](./docs/java/concurrent/aqs.md) - [CompletableFuture 详解](./docs/java/concurrent/completablefuture-intro.md) ### JVM(必看 :+1:) JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.com/javase/specs/jvms/se8/html/index.html) 和周志明老师的[《深入理解 Java 虚拟机(第 3 版)》](https://book.douban.com/subject/34907497/) (强烈建议阅读多遍!)。 - **[Java 内存区域](./docs/java/jvm/memory-area.md)** - **[JVM 垃圾回收](./docs/java/jvm/jvm-garbage-collection.md)** - [类文件结构](./docs/java/jvm/class-file-structure.md) - **[类加载过程](./docs/java/jvm/class-loading-process.md)** - [类加载器](./docs/java/jvm/classloader.md) - [【待完成】最重要的 JVM 参数总结(翻译完善了一半)](./docs/java/jvm/jvm-parameters-intro.md) - [【加餐】大白话带你认识 JVM](./docs/java/jvm/jvm-intro.md) - [JDK 监控和故障处理工具](./docs/java/jvm/jdk-monitoring-and-troubleshooting-tools.md) ### 新特性 - **Java 8**:[Java 8 新特性总结(翻译)](./docs/java/new-features/java8-tutorial-translate.md)、[Java8 常用新特性总结](./docs/java/new-features/java8-common-new-features.md) - [Java 9 新特性概览](./docs/java/new-features/java9.md) - [Java 10 新特性概览](./docs/java/new-features/java10.md) - [Java 11 新特性概览](./docs/java/new-features/java11.md) - [Java 12 & 13 新特性概览](./docs/java/new-features/java12-13.md) - [Java 14 & 15 新特性概览](./docs/java/new-features/java14-15.md) - [Java 16 新特性概览](./docs/java/new-features/java16.md) - [Java 17 新特性概览](./docs/java/new-features/java17.md) - [Java 18 新特性概览](./docs/java/new-features/java18.md) - [Java 19 新特性概览](./docs/java/new-features/java19.md) - [Java 20 新特性概览](./docs/java/new-features/java20.md) - [Java 21 新特性概览](./docs/java/new-features/java21.md) - [Java 22 & 23 新特性概览](./docs/java/new-features/java22-23.md) - [Java 24 新特性概览](./docs/java/new-features/java24.md) - [Java 25 新特性概览](./docs/java/new-features/java25.md) ## 计算机基础 ### 操作系统 - [操作系统常见知识点&面试题总结(上)](./docs/cs-basics/operating-system/operating-system-basic-questions-01.md) - [操作系统常见知识点&面试题总结(下)](./docs/cs-basics/operating-system/operating-system-basic-questions-02.md) - **Linux**: - [后端程序员必备的 Linux 基础知识总结](./docs/cs-basics/operating-system/linux-intro.md) - [Shell 编程基础知识总结](./docs/cs-basics/operating-system/shell-intro.md) ### 网络 **知识点/面试题总结**: - [计算机网络常见知识点&面试题总结(上)](./docs/cs-basics/network/other-network-questions.md) - [计算机网络常见知识点&面试题总结(下)](./docs/cs-basics/network/other-network-questions2.md) - [谢希仁老师的《计算机网络》内容总结(补充)](./docs/cs-basics/network/computer-network-xiexiren-summary.md) **重要知识点详解**: - [OSI 和 TCP/IP 网络分层模型详解(基础)](./docs/cs-basics/network/osi-and-tcp-ip-model.md) - [应用层常见协议总结(应用层)](./docs/cs-basics/network/application-layer-protocol.md) - [HTTP vs HTTPS(应用层)](./docs/cs-basics/network/http-vs-https.md) - [HTTP 1.0 vs HTTP 1.1(应用层)](./docs/cs-basics/network/http1.0-vs-http1.1.md) - [HTTP 常见状态码(应用层)](./docs/cs-basics/network/http-status-codes.md) - [DNS 域名系统详解(应用层)](./docs/cs-basics/network/dns.md) - [TCP 三次握手和四次挥手(传输层)](./docs/cs-basics/network/tcp-connection-and-disconnection.md) - [TCP Keepalive 和 HTTP Keep-Alive 有什么区别?(传输层)](./docs/cs-basics/network/tcp-keepalive-vs-http-keepalive.md) - [TCP 传输可靠性保障(传输层)](./docs/cs-basics/network/tcp-reliability-guarantee.md) - [能 Ping 通,TCP 就一定能连通吗?(传输层)](./docs/cs-basics/network/can-ping-but-tcp-may-not-connect.md) - [TCP 和 UDP 可以使用同一个端口吗?(传输层)](./docs/cs-basics/network/can-tcp-and-udp-use-the-same-port.md) - [一台主机最多能保持多少个 TCP 连接?(传输层)](./docs/cs-basics/network/maximum-number-of-tcp-connections-per-host.md) - [ARP 协议详解(网络层)](./docs/cs-basics/network/arp.md) - [NAT 协议详解(网络层)](./docs/cs-basics/network/nat.md) - [网络攻击常见手段总结(安全)](./docs/cs-basics/network/network-attack-means.md) ### 数据结构 **图解数据结构:** - [线性数据结构 :数组、链表、栈、队列](./docs/cs-basics/data-structure/linear-data-structure.md) - [图](./docs/cs-basics/data-structure/graph.md) - [堆](./docs/cs-basics/data-structure/heap.md) - [树](./docs/cs-basics/data-structure/tree.md):重点关注[红黑树](./docs/cs-basics/data-structure/red-black-tree.md)、B-,B+,B\*树、LSM 树 其他常用数据结构: - [布隆过滤器](./docs/cs-basics/data-structure/bloom-filter.md) ### 算法 算法这部分内容非常重要,如果你不知道如何学习算法的话,可以看下我写的: - [算法学习书籍+资源推荐](https://www.zhihu.com/question/323359308/answer/1545320858)。 - [如何刷 Leetcode?](https://www.zhihu.com/question/31092580/answer/1534887374) **常见算法问题总结**: - [几道常见的字符串算法题总结](./docs/cs-basics/algorithms/string-algorithm-problems.md) - [几道常见的链表算法题总结](./docs/cs-basics/algorithms/linkedlist-algorithm-problems.md) - [剑指 offer 部分编程题](./docs/cs-basics/algorithms/the-sword-refers-to-offer.md) - [十大经典排序算法](./docs/cs-basics/algorithms/10-classical-sorting-algorithms.md) 另外,[GeeksforGeeks](https://www.geeksforgeeks.org/fundamentals-of-algorithms/) 这个网站总结了常见的算法,比较全面系统。 ## 数据库 ### 基础 - [数据库基础知识总结](./docs/database/basis.md) - [NoSQL 基础知识总结](./docs/database/nosql.md) - [字符集详解](./docs/database/character-set.md) - SQL : - [SQL 语法基础知识总结](./docs/database/sql/sql-syntax-summary.md) - [SQL 常见面试题总结](./docs/database/sql/sql-questions-01.md) ### MySQL **知识点/面试题总结:** - **[MySQL 常见知识点&面试题总结](./docs/database/mysql/mysql-questions-01.md)** (必看 :+1:) - [MySQL 高性能优化规范建议总结](./docs/database/mysql/mysql-high-performance-optimization-specification-recommendations.md) **重要知识点:** - [MySQL 索引详解](./docs/database/mysql/mysql-index.md) - [MySQL 索引失效场景总结](./docs/database/mysql/mysql-index-invalidation.md) - [MySQL 事务隔离级别图文详解)](./docs/database/mysql/transaction-isolation-level.md) - [MySQL 三大日志(binlog、redo log 和 undo log)详解](./docs/database/mysql/mysql-logs.md) - [InnoDB 存储引擎对 MVCC 的实现](./docs/database/mysql/innodb-implementation-of-mvcc.md) - [SQL 语句在 MySQL 中的执行过程](./docs/database/mysql/how-sql-executed-in-mysql.md) - [MySQL 查询缓存详解](./docs/database/mysql/mysql-query-cache.md) - [MySQL 执行计划分析](./docs/database/mysql/mysql-query-execution-plan.md) - [MySQL 自增主键一定是连续的吗](./docs/database/mysql/mysql-auto-increment-primary-key-continuous.md) - [MySQL 时间类型数据存储建议](./docs/database/mysql/some-thoughts-on-database-storage-time.md) - [MySQL 隐式转换造成索引失效](./docs/database/mysql/index-invalidation-caused-by-implicit-conversion.md) ### Redis **知识点/面试题总结**(必看:+1:): - [Redis 常见知识点&面试题总结(上)](./docs/database/redis/redis-questions-01.md) - [Redis 常见知识点&面试题总结(下)](./docs/database/redis/redis-questions-02.md) **重要知识点:** - [3 种常用的缓存读写策略详解](./docs/database/redis/3-commonly-used-cache-read-and-write-strategies.md) - [Redis 能做消息队列吗?怎么实现?](./docs/database/redis/redis-stream-mq.md) - [Redis 5 种基本数据结构详解](./docs/database/redis/redis-data-structures-01.md) - [Redis 3 种特殊数据结构详解](./docs/database/redis/redis-data-structures-02.md) - [Redis 持久化机制详解](./docs/database/redis/redis-persistence.md) - [Redis 内存碎片详解](./docs/database/redis/redis-memory-fragmentation.md) - [Redis 常见阻塞原因总结](./docs/database/redis/redis-common-blocking-problems-summary.md) - [Redis 集群详解](./docs/database/redis/redis-cluster.md) ### MongoDB - [MongoDB 常见知识点&面试题总结(上)](./docs/database/mongodb/mongodb-questions-01.md) - [MongoDB 常见知识点&面试题总结(下)](./docs/database/mongodb/mongodb-questions-02.md) ## 搜索引擎 [Elasticsearch 常见面试题总结(付费)](./docs/database/elasticsearch/elasticsearch-questions-01.md) ![JavaGuide 官方公众号](https://oss.javaguide.cn/github/javaguide/gongzhonghaoxuanchuan.png) ## 开发工具 ### Maven - [Maven 核心概念总结](./docs/tools/maven/maven-core-concepts.md) - [Maven 最佳实践](./docs/tools/maven/maven-best-practices.md) ### Gradle [Gradle 核心概念总结](./docs/tools/gradle/gradle-core-concepts.md)(可选,目前国内还是使用 Maven 普遍一些) ### Docker - [Docker 核心概念总结](./docs/tools/docker/docker-intro.md) - [Docker 实战](./docs/tools/docker/docker-in-action.md) ### Git - [Git 核心概念总结](./docs/tools/git/git-intro.md) - [GitHub 实用小技巧总结](./docs/tools/git/github-tips.md) ## 系统设计 - [⭐系统设计常见面试题总结](./docs/system-design/system-design-questions.md) - [⭐设计模式常见面试题总结](https://interview.javaguide.cn/system-design/design-pattern.html) ### 基础 - [RestFul API 简明教程](./docs/system-design/basis/RESTfulAPI.md) - [软件工程简明教程](./docs/system-design/basis/software-engineering.md) - [代码命名指南](./docs/system-design/basis/naming.md) - [代码重构指南](./docs/system-design/basis/refactoring.md) - [单元测试指南](./docs/system-design/basis/unit-test.md) ### 常用框架 #### Spring/SpringBoot(必看 :+1:) **知识点/面试题总结** : - [Spring 常见知识点&面试题总结](./docs/system-design/framework/spring/spring-knowledge-and-questions-summary.md) - [SpringBoot 常见知识点&面试题总结](./docs/system-design/framework/spring/springboot-knowledge-and-questions-summary.md) - [Spring/Spring Boot 常用注解总结](./docs/system-design/framework/spring/spring-common-annotations.md) - [SpringBoot 入门指南](https://github.com/Snailclimb/springboot-guide) **重要知识点详解**: - [IoC & AOP详解(快速搞懂)](./docs/system-design/framework/spring/ioc-and-aop.md) - [Spring 事务详解](./docs/system-design/framework/spring/spring-transaction.md) - [Spring 中的设计模式详解](./docs/system-design/framework/spring/spring-design-patterns-summary.md) - [SpringBoot 自动装配原理详解](./docs/system-design/framework/spring/spring-boot-auto-assembly-principles.md) #### MyBatis [MyBatis 常见面试题总结](./docs/system-design/framework/mybatis/mybatis-interview.md) ### 安全 #### 认证授权 - [认证授权基础概念详解](./docs/system-design/security/basis-of-authority-certification.md) - [JWT 基础概念详解](./docs/system-design/security/jwt-intro.md) - [JWT 优缺点分析以及常见问题解决方案](./docs/system-design/security/advantages-and-disadvantages-of-jwt.md) - [SSO 单点登录详解](./docs/system-design/security/sso-intro.md) - [权限系统设计详解](./docs/system-design/security/design-of-authority-system.md) #### 数据安全 - [常见加密算法总结](./docs/system-design/security/encryption-algorithms.md) - [敏感词过滤方案总结](./docs/system-design/security/sentive-words-filter.md) - [数据脱敏方案总结](./docs/system-design/security/data-desensitization.md) - [为什么前后端都要做数据校验](./docs/system-design/security/data-validation.md) - [为什么忘记密码时只能重置,不能告诉你原密码?](./docs/system-design/security/why-password-reset-instead-of-retrieval.md) ### 定时任务 [Java 定时任务详解](./docs/system-design/schedule-task.md) ### Web 实时消息推送 [Web 实时消息推送详解](./docs/system-design/web-real-time-message-push.md) ## 分布式 - [⭐分布式高频面试题](https://interview.javaguide.cn/distributed-system/distributed-system.html) ### 理论&算法&协议 - [CAP 理论和 BASE 理论解读](https://javaguide.cn/distributed-system/protocol/cap-and-base-theorem.html) - [Paxos 算法解读](https://javaguide.cn/distributed-system/protocol/paxos-algorithm.html) - [Raft 算法解读](https://javaguide.cn/distributed-system/protocol/raft-algorithm.html) - [ZAB 协议解读](https://javaguide.cn/distributed-system/protocol/zab.html) - [Gossip 协议详解](https://javaguide.cn/distributed-system/protocol/gossip-protocol.html) - [一致性哈希算法详解](https://javaguide.cn/distributed-system/protocol/consistent-hashing.html) ### RPC - [RPC 基础知识总结](https://javaguide.cn/distributed-system/rpc/rpc-intro.html) - [Dubbo 常见知识点&面试题总结](https://javaguide.cn/distributed-system/rpc/dubbo.html) ### ZooKeeper > 这两篇文章可能有内容重合部分,推荐都看一遍。 - [ZooKeeper 相关概念总结(入门)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-intro.html) - [ZooKeeper 相关概念总结(进阶)](https://javaguide.cn/distributed-system/distributed-process-coordination/zookeeper/zookeeper-plus.html) ### API 网关 - [API 网关基础知识总结](https://javaguide.cn/distributed-system/api-gateway.html) - [Spring Cloud Gateway 常见知识点&面试题总结](./docs/distributed-system/spring-cloud-gateway-questions.md) ### 分布式 ID - [分布式ID介绍&实现方案总结](https://javaguide.cn/distributed-system/distributed-id.html) - [分布式 ID 设计指南](https://javaguide.cn/distributed-system/distributed-id-design.html) ### 分布式锁 - [分布式锁介绍](https://javaguide.cn/distributed-system/distributed-lock.html) - [分布式锁常见实现方案总结](https://javaguide.cn/distributed-system/distributed-lock-implementations.html) ### 分布式事务 [分布式事务常见知识点&面试题总结](https://javaguide.cn/distributed-system/distributed-transaction.html) ### 分布式配置中心 [分布式配置中心常见知识点&面试题总结](./docs/distributed-system/distributed-configuration-center.md) ## 高性能 ### 数据库优化 - [数据库读写分离和分库分表](./docs/high-performance/read-and-write-separation-and-library-subtable.md) - [数据冷热分离](./docs/high-performance/data-cold-hot-separation.md) - [常见 SQL 优化手段总结](./docs/high-performance/sql-optimization.md) - [深度分页介绍及优化建议](./docs/high-performance/deep-pagination-optimization.md) ### 负载均衡 [负载均衡常见知识点&面试题总结](./docs/high-performance/load-balancing.md) ### CDN [CDN(内容分发网络)常见知识点&面试题总结](./docs/high-performance/cdn.md) ### 消息队列 - [消息队列基础知识总结](./docs/high-performance/message-queue/message-queue.md) - [Disruptor 常见知识点&面试题总结](./docs/high-performance/message-queue/disruptor-questions.md) - [RabbitMQ 常见知识点&面试题总结](./docs/high-performance/message-queue/rabbitmq-questions.md) - [RocketMQ 常见知识点&面试题总结](./docs/high-performance/message-queue/rocketmq-questions.md) - [Kafka 常见知识点&面试题总结](./docs/high-performance/message-queue/kafka-questions-01.md) ## 高可用 [高可用系统设计指南](./docs/high-availability/high-availability-system-design.md) ### 冗余设计 [冗余设计详解](./docs/high-availability/redundancy.md) ### 限流 [服务限流详解](./docs/high-availability/limit-request.md) ### 降级&熔断 [降级&熔断详解](./docs/high-availability/fallback-and-circuit-breaker.md) ### 超时&重试 [超时&重试详解](./docs/high-availability/timeout-and-retry.md) ### 集群 相同的服务部署多份,避免单点故障。 ### 灾备设计和异地多活 **灾备** = 容灾 + 备份。 - **备份**:将系统所产生的所有重要数据多备份几份。 - **容灾**:在异地建立两个完全相同的系统。当某个地方的系统突然挂掉,整个应用系统可以切换到另一个,这样系统就可以正常提供服务了。 **异地多活** 描述的是将服务部署在异地并且服务同时对外提供服务。和传统的灾备设计的最主要区别在于“多活”,即所有站点都是同时在对外提供服务的。异地多活是为了应对突发状况比如火灾、地震等自然或者人为灾害。 ## Star 趋势 ![Stars](https://api.star-history.com/svg?repos=Snailclimb/JavaGuide&type=Date) ## 公众号 如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号。 <img src="https://oss.javaguide.cn/github/javaguide/gongzhonghao-javaguide.png" alt="JavaGuide 公众号" style="zoom: 43%; display: block; margin: 0 auto;" /> <!-- #endregion home -->

Education & Learning Developer Tools
156.3K Github Stars