小编整理出一篇 Java 进阶架构师之路的核心知识,同时也是面试时面试官必问的知识点,篇章也是包括了很多知识点,其中包括了有基础知识、Java 集合、JVM、多线程并发、spring 原理、微服务、Netty 与 RPC 、Kafka、日记、设计模式、Java 算法、数据库、Zookeeper、分布式缓存、数据结构等等
由于 pdf 文档里的细节内容实在过多所以只编辑了部分知识点的章节粗略的介绍下,每个章节小节点里面都有更细化的内容!以下就是部分章节目录
JVM
- 线程
- JVM 内存区域
- JVM 运行时内存
- 垃圾回收与算法
- JAVA 四中引用类型
- GC 分代收集算法 VS 分区收集算法
- GC 垃圾收集器
- JAVA IO/NIO
- JVM 类加载机制
JAVA 集合
JAVA 多线程并发
- JAVA 并发知识库
- JAVA 线程实现/创建方式
- 4 种线程池
- 线程生命周期(状态)
- 终止线程 4 种方式
- sleep 与 wait 区别
- start 与 run 区别
- JAVA 后台线程
- JAVA 锁
- 线程基本方法 4.1.11. 线程上下文切换
- 同步锁与死锁
- 线程池原理
- JAVA 阻塞队列原理
- CyclicBarrier、CountDownLatch、Semaphore 的用法
- volatile 关键字的作用(变量可见性、禁止重排序)
- 如何在两个线程之间共享数据
JAVA 基础
- JAVA 异常分类及处理
- JAVA 反射
- JAVA 注解
- JAVA 内部类
- JAVA 泛型
- JAVA 序列化(创建可复用的 Java 对象)
- JAVA 复制
Spring 原理
- Spring 特点
- Spring 核心组件
- Spring 常用模块
- Spring 主要包
- Spring 常用注解
- Spring 第三方结合
- Spring IOC 原理
- Spring APO 原理
- Spring MVC 原理
- Spring Boot 原理
- JPA 原理
- Mybatis 缓存
- Tomcat 架构
微服务
- 服务注册发现
- API 网关
- 配置中心
- 事件调度(kafka)
- 服务跟踪(starter-sleuth)
- 服务熔断(Hystrix)
- Hystrix 断路器机制
- API 管理
Netty 与 RPC
- Netty 原理
- Netty 高性能
- Netty RPC 实现
- 关键技术
- 核心流程
- 消息编解码
- 通讯过程
- RMI 实现方式
分布式缓存
- 缓存雪崩
- 缓存穿透
- 缓存预热
- 缓存更新
- 缓存降级
网络
- 网络 7 层架构
- TCP/IP 原理
- TCP 三次握手/四次挥手
- HTTP 原理
- CDN 原理
- 分发服务系统
- 负载均衡系统
- 管理系统
日志
- Slf4j
- Log4j
- LogBack
- Logback 优点
- ELK
Zookeeper
- Zookeeper 概念
- Zookeeper 角色
- Zookeeper 工作原理(原子广播)
- Znode 有四种形式的目录节点
Kafka
- Kafka 概念
- Kafka 数据存储设计
- partition 的数据文件(offset,MessageSize,data)
- 数据文件分段 segment(顺序读写、分段命令、二分查找)
- 数据文件索引(分段索引、稀疏存储)
- 生产者设计
- 负载均衡(partition 会均衡分布到不同 broker 上)
- 批量发送
- 压缩(GZIP 或 Snappy)
- 消费者设计
RabbitMQ
- RabbitMQ 概念
- RabbitMQ 架构
- Exchange 类型
Hbase
- Hbase 概念
- 列式存储
- Hbase 核心概念
- Hbase 核心架构
- Hbase 的写逻辑
- HBase vs Cassandra
- MongoDB
- MongoDB 概念
- MongoDB 特点
Cassandra
- Cassandra 概念
- 数据模型
- Cassandra 一致 Hash 和虚拟节点
- Gossip 协议
- 数据复制
- 数据写请求和协调者
- 数据读请求和后台修复
- 数据存储(CommitLog、MemTable、SSTable)
- 二级索引(对要索引的 value 摘要,生成 RowKey)
- 数据读写
设计模式
- 设计原则
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
负载均衡
- 四层负载均衡 vs 七层负载均衡
- 负载均衡算法/策略
- LVS
- Keepalive
- Nginx 反向代理负载均衡
- HAProxy
数据库
- 存储引擎
- 索引
- 数据库三范式
- 数据库是事务
- 存储过程(特定功能的 SQL 语句集)
- 触发器(一段能自动执行的程序)
- 数据库并发策略
- 数据库锁
- 基于 Redis 分布式锁
- 分区分表
- 两阶段提交协议
- 三阶段提交协议
- 柔性事务
- CAP
一致性算法
- Paxos
- Zab
- Raft
- NWR
- Gossip
- 一致性 Hash
- 一致性 Hash 特性
- 一致性 Hash 原理
JAVA 算法
数据结构
加密算法
- AES
- RSA
- CRC
- MD5
Hadoop
- Hadoop 概念
- HDFS
- Client
- NameNode
- Secondary NameNode
- DataNode
- MapReduce
- JobTracker
- TaskTracker
- Task
- Reduce Task 执行过程
- Hadoop MapReduce 作业的生命周期
- 作业提交与初始化
- 任务调度与监控。
- 任务运行环境准备
- 任务执行
- 作业完成
Spark
- Spark 概念
- 核心架构
- 核心组件
- SPARK 编程模型
- SPARK 计算模型
- SPARK 运行流程
- SPARK RDD 流程
- SPARK RDD
Storm
- Storm 概念
- 集群架构
- Nimbus(master-代码分发给 Supervisor)
- Supervisor(slave-管理 Worker 进程的启动和终止)
- Worker(具体处理组件逻辑的进程)
- Task
- ZooKeeper
- 编程模型(spout->tuple->bolt)
- opology 运行
- Storm Streaming Grouping
- ResourceManager
- NodeManager
- ApplicationMaster
- YARN 运行流程
云计算
- SaaS
- PaaS
- IaaS
- Docker
- Openstack
- Namespaces
- 进程(CLONE_NEWPID 实现的进程隔离)
- Libnetwork 与网络隔离
- 资源隔离与 CGroups
- 镜像与 UnionFS
- 存储驱动