大型网站技术架构核心原理剖析( 二 )


【大型网站技术架构核心原理剖析】传统的关系数据库使用B+树,它是一种针对磁盘优化的N元排序树 。加载到内存中并继续搜索,直到找到所需的数据 。
LSM树是N阶的合并树,数据的插入、修改和删除都是在内存中进行的,并且会创建一条新的记录 。这些数据在内存中以树状结构排序 。当数据量超过设定的阈值时,将与磁盘上最新的排序树进行比较 。合并 。在合并过程中,旧数据将被最新更新的数据覆盖 。读操作从内存中的排序树开始搜索,如果没有找到,则从磁盘上的排序树开始搜索 。
LSM树上的一次数据更新不需要磁盘访问,可以在内存中完成,比B+树快很多 。
对于写入较多且最近写入的数据被密集读取的场景,使用LSM树可以大大减少磁盘访问次数,加快访问速度 。
3. RAID 和 HDFS
袭击
廉价磁盘冗余阵列主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错性 。
多盘采用RAID技术,实现多盘数据的并发读写和数据备份 。
常见的 RAID 技术:
高密度文件系统
系统在整个存储集群的多台服务器上进行并发的数据读写和备份 。HDFS 以块为单位管理文件内容 。一个文件被分成多个块 。当应用程序写入文件时,HDFS 会在写入一个块后自动将其复制到其他两台机器,确保 3 个副本 。(默认) 。在处理一个文件( )时,可以同时启动多个任务,并行读取文件的不同块,并发处理,提高读取效率 。
HDFS配置等并行计算框架处理大数据时,可以在整个集群上同时读写所有磁盘,无需RAID支持 。
高可用性
网站的可用性描述了可以有效访问的网站的特征 。
可用性指标:服务7*24可用,可用性超过99.99% 。
网站不可用时间(故障时间) = 故障修复时间点 - 故障发现(报告)时间点网站年度可用性指标=(1-网站不可用时间/年度总时间)*100%
硬件故障是常态 。网站高可用架构设计的主要目的是保证在服务器硬件出现故障时服务仍然可用,数据仍然可以保存和访问 。
高可用架构的主要手段:数据和服务的冗余备份和故障转移 。
典型的网站设计通常遵循三层架构模型:
高可用应用
应用程序的显着特征:无状态 。
无状态应用是指应用服务器不保存业务的上下文信息,只根据每个请求提交的数据进行相应的业务逻辑处理 。多台服务器强度完全相等,将请求提交到任意一台服务器,处理结果完全一样 。
通过负载均衡对无状态服务进行故障转移
通过负载均衡的方式,将流量和数据平均分配到集群组成的多台服务器上,提高系统的整体负载处理能力 。
应用服务器集群管理
管理的意思:
1. 复制应用服务器开启web容器的复制功能,在集群中的多台服务器之间同步对象,让每台服务器保存所有用户的信息,这样任何机器宕机都不会造成任何宕机 。数据丢失 。适用于小规模集群 。当集群比较大时,集群服务器之间需要大量的通信进行复制,会占用大量的服务器和网络资源 。
2. 绑定使用负载均衡的源地址Hash算法实现 。负载均衡服务器总是将来自同一个IP的请求分发到同一个服务器,也可以根据信息将来自同一个用户的请求分发到同一个服务器 。在同一台机器上,使得所有没有用户的请求在整个会话期间都在同一台服务器上处理,即绑定到特定的服务器上,也称为会话粘性 。
缺点:不满足系统高可用的要求 。如果服务器出现故障,机器上的数据将会丢失 。很少使用 。
3. 漏洞利用记录
利用浏览器支持的记录 。每次发出请求,都会在请求中发送给服务器,服务器在处理完请求后将修改后的响应发送给客户端 。