架构师训练营 1 期 - 第八周总结(vaik)
本周概要
第一课主要讲解从硬盘硬件特性到文件系统的分块存储,再到Raido硬盘阵列的原理,再到分布数据系统HDFS的机制原理,如何实现几秒并行存储上T的文件。
第二课重温了数据结构和算法,包括数组,链表,Hash表,栈,队列,
第三课主要讲解二叉树,平衡二叉树,红黑树,跳表等的特性及应用
第四课重点讲解穷举算法,递归算法,贪心算法,动态规划等经典算法
第五课讲解的网络通信机制原理,七层模型,网络数据包的传输过程,IP负载均衡的实现原理,再到http协议不同版的优缺点。
第六课 从阻塞IO的由来到非阻塞IO的实现,JAVA NIO到系统IO的复用方式:select,poll,epoll
文件系统与硬盘IO
机械硬盘
物理转速有限,容易损坏,一次查找耗时几豪秒至几十毫秒,连续数据块的读取写入较快,随机数据块的读取和写入效率低慢
固态硬盘
相对机械硬盘的转速,固态硬盘是基于电子的速度,速度上是量级的提升,同样存储芯片颗粒,是物理分开的,所以连续块读取写入快,随机数据块的读写慢
B+树
即索引树,基于上述硬盘的分块存储的物理特性而设计的方件存储结构,
LSM
日志存储结构,append
文件控制块
我的理解:硬盘格式化就是把硬盘空间以块为单位划分,每个文件占若干块。
linux Inode文件控制块,四层索引,12+256+256*256+256*256*256 单个文件最大不超过70G
RAID 独立硬盘冗余阵列
可以简单的理解为基于硬件的分布式存储
分布式文件系统HDFS
name node
data node
常见数据结构与Hash表原理分析
时间复杂度,空间复杂度
NP问题
数组
链表
Hash表
栈
队列
各种树原理与性能特性
树
二叉排序树
平衡二叉树
红黑(排序)树
跳表
经典算法
递归算法(快速排序算法)
贪心算法
改进贪心算法-(最快路径)
动态规划算法
遗传算法
网络通信的基本原理与性能优化
一次Web请求所经历程
OSI七层模型与TCP/IP四层
网络数据包格式
物理层
链路层
数据链路层负载均衡
网络层
IP负载均衡
传输层
TCP3次握手
TCP4次挥手
HTTP协议
http请求七种方法,get,post,put,delete,head,trace,options
http响应5种状态
http协议版,http/1.0,http/1.1,http/2
非阻塞网络I/O
多线程服务器-客户端
线程池服务器
BIO Blocking I/O 阻塞 I/O
Socket 接收数据,系统内核的处理过程
非阻塞 I/O( Non-Blocking I/O )
Java NIO (New I/O)
系统 I/O 复用方式:select,poll,epoll
评论