Skip to content

Latest commit

 

History

History
252 lines (189 loc) · 11.3 KB

File metadata and controls

252 lines (189 loc) · 11.3 KB

GitHub 开源:一份系统化的 Java 架构师技术 CookBook,从数据结构到云原生的完整学习路线图

本文介绍一个我持续维护的 Java 技术知识仓库,涵盖数据结构与算法、Java 核心、Spring 生态、分布式系统、云原生等全栈内容,适合从初级到架构师的系统化学习。

写在前面:为什么做这个项目?

在准备 Java 面试和日常技术沉淀的过程中,我发现一个痛点:

网上资料很多,但成体系的少;博客很详细,但找起来零散。

于是我开始用 "CookBook(食谱)" 的理念整理自己的技术笔记——就像烹饪一样,把每个技术点按照 "概念 → 原理 → 实践 → 最佳实践" 的方式组织起来,形成一份可查阅、可运行、可复用的系统化手册。

这个项目从 2018 年开始维护,到今天已经沉淀了 70+ 篇技术文档 和大量可运行的示例代码。

项目亮点:这份 CookBook 有什么不一样?

1. 数据结构 & 算法模块:不只是 LeetCode 题解

最近我刚完成了一次大规模的内容扩充,数据结构与算法模块从原来的 10 篇扩展到了 28 篇,包含:

基础数据结构(10 篇)

数据结构 核心内容 图示
线性表 数组扩容策略、插入流程、时间复杂度分析 ASCII 内存布局图
链表 单/双/循环链表、头插尾插法、LRU 缓存实现 指针变化图解
栈与队列 LIFO/FIFO、双端队列、循环队列、括号匹配 操作流程图
哈希表 拉链法/开放寻址、负载因子、Java HashMap 原理 冲突解决示意图
树与二叉树 遍历方式、存储结构、BST 插入删除 树形结构图
红黑树 自平衡机制、插入修复、TreeMap 源码分析 旋转图解
AVL 树 平衡因子、四种旋转模式 失衡修复流程
B 树/B+ 树 多路平衡、MySQL InnoDB 索引原理 节点分裂图示
邻接矩阵/表、DFS/BFS、Dijkstra 最短路径 搜索路径可视化

基础算法(11 篇)

  • 6 大排序算法:快排、归并、堆排、冒泡、选择、插入——每种都包含分步图解和复杂度对比
  • 二分查找及 4 种变体:基础二分、查找边界、lower_bound/upper_bound
  • DFS & BFS:递归/迭代实现、回溯算法、最短路径
  • 动态规划:最优子结构、重叠子问题、爬楼梯、0-1 背包
  • 贪心算法:活动选择、霍夫曼编码、分数背包

工程实践算法(7 篇)—— 面试高频 + 生产必备

算法 应用场景 涉及框架
限流算法 API 网关流量控制 Sentinel、Guava RateLimiter
布隆过滤器 缓存穿透防护 RedisBloom、Guava
一致性哈希 分布式缓存分片 Redis Cluster、Nginx
负载均衡 请求分发策略 Ribbon、Nginx、K8s
分布式 ID 全局唯一标识 Leaf、Snowflake
分布式锁 并发控制 Redisson、Curator
跳表 有序集合实现 Redis ZSet、ConcurrentSkipListMap

每篇文档都包含 ASCII 结构图、流程图、Java 代码示例、复杂度对比表,力求做到 "一看就懂,一学就会"。

2. 云原生与工程实践专题(2024 年新增)

除了数据结构与算法,近期还补充了多个生产环境必备的工程实践专题:

容器化与编排

专题 核心内容 实践价值
Docker 容器化 Dockerfile 多阶段构建、Compose 编排、镜像优化 开发环境一致性、CI/CD 基础
Kubernetes Pod/Deployment/Service/Ingress、HPA 自动扩缩容、Spring Boot 集成 云原生应用部署、容器编排标准
Tomcat 调优 NIO 线程模型、连接池优化、内存配置、嵌入式启动 Java Web 应用性能瓶颈突破

可观测性与监控

专题 核心内容 实践价值
ELK 日志采集 Elasticsearch 索引、Logstash 管道、Kibana 可视化、Filebeat 采集 分布式系统日志统一收集与分析
Prometheus + Grafana Metrics 类型、PromQL 查询、告警规则、Spring Boot 集成 系统监控与告警体系搭建

分布式中间件

专题 核心内容 实践价值
Seata 分布式事务 AT/TCC/Saga 模式、Spring Cloud 集成、高可用部署 微服务数据一致性保障
HttpClient 高级用法 连接池管理、超时配置、异步请求、SSL/TLS 配置 HTTP 通信性能与可靠性优化

3. 12 周学习路线图:从基础到架构师

项目 README 中提供了一份 12 周渐进式学习路线

第 1 周:Java 基础强化(枚举、注解、反射、动态代理)
第 2-3 周:数据结构与算法
第 4 周:并发与 JVM(线程池、AQS、GC 调优)
第 5-6 周:数据库与缓存(MySQL 索引、Redis 数据结构)
第 7-8 周:框架与微服务(Spring IOC/AOP、SpringCloud)
第 9-10 周:分布式系统(一致性哈希、分布式锁、RocketMQ)
第 11 周:云原生基础(Docker、Kubernetes、Tomcat 调优)
第 12 周:可观测性与工程实践(ELK、Prometheus、Seata、HttpClient)

4. 可运行的示例代码

不只是文档,每个知识点都配有可运行的 Java 代码:

# 克隆项目
git clone https://github.com/Byron4j/CookBook.git

# 编译运行示例
./mvnw clean compile
./mvnw test
  • 线性表、链表、栈队列的增删改查 Demo
  • 二叉树的前序/中序/后序遍历实现
  • 快速排序、归并排序的单元测试
  • Netty 网络编程示例
  • RocketMQ 生产者/消费者代码
  • Zookeeper 分布式协调示例

5. 面试专区:大厂高频考点整理

专门整理了面向 阿里、字节、腾讯 等大厂的面试重点:

数据结构与算法面试

  • 必会排序:快排、归并、堆排(手写代码 + 复杂度分析)
  • 高频 DP:爬楼梯、最长递增子序列、0-1 背包
  • 工程算法:一致性哈希、限流算法、布隆过滤器(场景题)

Java 基础面试

  • 集合框架:HashMap 源码(扰动函数、扩容、树化)
  • 并发编程:AQS 原理、线程池参数与拒绝策略
  • JVM:内存模型、GC 算法、OOM 排查

分布式面试

  • Redis:缓存穿透/击穿/雪崩解决方案、分布式锁
  • RocketMQ:事务消息、顺序消息、重复消费
  • 分布式理论:CAP/BASE、分布式事务(2PC/TCC/Seata)、幂等性设计

云原生与工程实践面试

  • Docker:镜像分层、多阶段构建、Compose 编排、容器网络
  • Kubernetes:Pod 生命周期、Deployment 滚动更新、Service 类型、Ingress 七层负载、HPA 自动扩缩容、探针配置
  • Tomcat:NIO 线程模型、Connector 参数调优、嵌入式启动、类加载机制
  • 可观测性:ELK 日志采集流程、Prometheus Metrics 类型、Grafana 仪表盘配置、告警规则设计
  • Seata:AT 模式 Undo Log 机制、TCC 三阶段、Saga 长事务、与 Spring Cloud 集成

项目结构一览

CookBook/
├── 📚 知识文档层
│   ├── 数据结构和算法/       # 28 篇:基础结构 + 算法 + 工程实践
│   ├── Java核心/            # 枚举、注解、反射、线程池、AQS
│   ├── JVM/                 # 参数、GC、内存模型
│   ├── Spring/              # IOC、AOP、事务、拦截器
│   ├── SpringCloud/         # Eureka、Ribbon、Hystrix、Gateway
│   ├── MySQL/               # 存储引擎、索引、事务隔离
│   ├── Redis/               # 数据结构、分布式锁、持久化
│   ├── RocketMQ/            # 核心概念、最佳实践、源码阅读
│   ├── Nginx/               # 负载均衡、反向代理、配置详解
│   ├── Zookeeper/           # 分布式协调、集群配置
│   ├── Docker/              # Dockerfile、Compose、镜像优化
│   ├── Tomcat/              # 架构、线程模型、性能调优
│   ├── 分布式高并发/         # Seata 分布式事务、限流降级
│   ├── 架构/                # 高可用、微服务、缓存一致性
│   │   ├── 云原生/          # Kubernetes 容器编排
│   │   ├── ELK/             # 日志采集与分析
│   │   └── 监控/            # Prometheus + Grafana
│   ├── 设计模式/            # 12 种经典模式详解
│   └── ...
│
├── 💻 示例代码层
│   └── src/main/java/org/byron4j/cookbook/
│       ├── javacore/        # Java 核心机制演示
│       ├── netty/           # NIO/Netty 网络编程
│       ├── rocketmq/        # MQ 生产者/消费者
│       └── zk/              # Zookeeper 示例
│
└── 📋 项目文档
    ├── README.md            # 全库导航 + 学习路线
    └── PROJECT_OVERVIEW.md  # 项目架构总览

适合谁阅读?

  • 校招/社招面试准备:系统复习 Java 技术栈,算法与工程实践并重
  • 初级 → 中级工程师:夯实基础,理解框架原理
  • 中级 → 高级工程师:掌握分布式系统、性能优化、架构设计
  • 高级 → 架构师:云原生技术栈、可观测性建设、容量评估
  • 团队技术分享:可直接作为内部分享的参考资料

如何使用这个项目?

方式一:作为学习路线图

按照 README 中的 "12 周学习路线" 循序渐进,每周完成一个主题。

方式二:作为面试复习资料

直接跳到 "面试专区",针对性复习高频考点。

方式三:作为技术速查手册

遇到某个技术点(如 "Redis 分布式锁怎么实现?"、"K8s HPA 怎么配置?"),直接搜索对应文档。

方式四:运行示例代码加深理解

# 1. 克隆仓库
git clone https://github.com/Byron4j/CookBook.git
cd CookBook

# 2. 编译项目
./mvnw clean compile

# 3. 运行测试(验证算法正确性)
./mvnw -Dtest=AlgorithmBasicsTest test

如何参与贡献?

这是一个开放的知识库,欢迎提交 PR 或 Issue:

  1. Fork 本仓库
  2. 创建你的分支git checkout -b feature/your-feature
  3. 提交改动git commit -am 'Add some feature'
  4. 创建 Pull Request

目前待办清单已全部完成:

  • Tomcat 架构与调优专题
  • Docker 容器化专题
  • Kubernetes 容器编排专题
  • Seata 分布式事务实战
  • ELK 日志采集与分析
  • Prometheus + Grafana 监控体系
  • Jenkins Pipeline 流水线
  • Kafka 高级特性与源码分析

欢迎一起完善!

写在最后

技术学习没有捷径,但好的资料可以让过程更高效。

这份 CookBook 是我过去几年技术沉淀的结晶,希望能帮助更多 Java 开发者少走弯路。如果你觉得有用,欢迎:

点个 Star,这是我持续更新的动力
🍴 Fork 一份,作为自己的技术笔记
📢 分享给朋友,一起进步


GitHub 地址https://github.com/Byron4j/CookBook

关键词:Java | 数据结构与算法 | Spring Boot | 微服务 | 分布式系统 | 云原生 | Kubernetes | Docker | 面试 | 架构师


本文首发于个人技术博客,转载请注明出处。