(零)大型网站架构演变过程

[Step1]web server与数据库分离

不满足服务器高性能的目标 因为只存在单点,任何一点发生故障,整个网站都不能访问 

web动静资源分离 

浏览器的请求分为静态请求和动态请求

静态请求: html,js,css, img

动态请求: jsp,php

http服务器主要处理静态请求  (前端服务器)

应用服务器主要处理动态请求  (后端服务器)

[Step2]缓存处理

扫描二维码关注公众号,回复: 5973212 查看本文章

对缓存的处理可以一定程度上提高对网站的访问速度 

[Step3]web server集群+读写分离

 

负载均衡

前端负载均衡

DNS负载均衡

在DNS服务器中,可以为多个不同的地址配置同一个名字,对于不同的客户机访问同一个名字,得到不同的地址。

反向代理    

使用代理服务器将请求发给内部服务器,让代理服务器将请求均匀转发给多台内部web服务器之一,从而达到负载均衡的目的。

标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。

基于NAT的负载均衡技术

LVS

F5硬件负载均衡

应用服务器负载均衡

数据库负载均衡

[Step4]CDN、分布式缓存、分库分表

CDN: 内容分发网络 

分布式缓存

目前流行分布式缓存方案:memcachedmembaseredis等,基本上当前的NoSQL方案都可以用来做分布式缓存方案 

数据库在并发量比较大的时候,会出现锁竞争,我们这时候可以采取分库分表的形式

分库

垂直分区

分表

水平分区(shard)

[Step5]多数据中心+分布式存储与计算

技术点[DFSKey-Value DB Map/Reduce

DFS分布式文件系统,如:Lustre\HDFS\GFS\TFS\FreeNas

Key-Value DB,也作为NoSQL解决方案,如:BigTable\Tair\Hbase\HyperTable

Map/Reduce算法(计算框架),基本上现有NoSQL数据库中都支持此算法。

提供完整解决方案:

   Google(GFS|BigTable|Map/Reduce)

   Apache Hadoop(HDFS|HBase|Map/Reduce)

猜你喜欢

转载自blog.csdn.net/qq_34863439/article/details/89388020