大型网站架构总结

本文仅供自己学习使用,本文参考自李智慧老师著的《大型网站技术架构:核心原理与案例分析》。


大型网站的架构技术


一、前端架构

前端指的是用户请求到达服务器之前经历的环节。不包含网站业务逻辑不处理动态内容

a. 浏览器优化技术

并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存合并HTTP减少请求次数使用页面压缩

b. CDN

内容分发网络,部署在网络营运商机房,通过将静态页面内容分发到离用户距离最近的CDN服务器,使用户可以通过最短路径获取内容

c. 动静分离,静态资源独立部署

静态资源,如JS、CSS等文件部署在专门的服务器上,和Web应用动态内容服务分离,并使用专门的(二级)域名

d. 图片服务

这里的图片不是网站logo、按钮图标等。这些文件也属于静态文件,应和上面的JS、CSS部署在一起。这里的图片往往是用户上传的图片,也应该使用独立的图片服务器集群,也使用独立(二级)域名

e. 反向代理

部署在网站机房,在应用服务器静态资源服务器图片服务器之前,提供页面缓存服务

f. DNS(域名服务)

域名解析成IP地址,利用DNS可以实现DNS负载均衡


二、应用层架构

应用层是处理网站主要业务逻辑的地方

a. 开发框架

一个好的开发框架,应该能够分离关注面,使美工、开发工程师可以各司其事,易于协作

b. 页面渲染

动态内容静态页面模板集成起来,组合成最终显示给用户的完整页面

c. 负载均衡

将多台服务器组成一个集群,通过负载均衡技术将用户请求分发到不同的服务器上,来应对大量用户同时访问产生的高并发负载压力

d. Session管理

应用服务器共享Session,使用专门的分布式Session服务器集群。

e. 动态页面静态化

对于访问量特别大更新又不很频繁动态页面,可以将其静态化,即生成一个静态页面,利用静态页面的优化手段加速用户访问(之前提到的反向代理CDN浏览器缓存

f. 业务拆分

复杂而又庞大的业务拆分开来,形成多个规模较小的产品,独立开发、部署、维护,降低系统耦合度,也便于数据库业务拆分。按照业务对关系型数据库拆分,技术难度小,而且效果好

g. 虚拟化服务

将一台物理服务器虚拟化多台虚拟服务器,对于并发访问较低的业务,更容易用较少的资源构建高可用的应用服务器集群


三、服务层架构

提供基础服务(抽取出来的公共服务),供应用层调用,完成网站业务

a. 分布式消息

利用消息队列机制,实现业务和业务业务与服务之间的异步消息发送低耦合的业务关系

b. 分布式服务

提供高性能、低耦合、易复用、易管理的分布式服务,在网站实现面向服务架构SOA

c. 分布式缓存

通过可伸缩的服务器集群提供大规模热点数据的缓存服务,也是网站性能优化的重要手段

d. 分布式配置

分布式配置在系统运行期提供配置动态推送服务,将配置修改实时推送到应用系统,无需重启服务。


四、存储层架构

提供数据、文件的持久化存储访问管理服务

a. 分布式文件

文件数量非常庞大,且持续增加,需要伸缩性设计比较好分布式文件系统

b. 关系数据库

大部分网站的主要业务是基于关系型数据库开发的,但是关系型数据库对集群伸缩性的支持比较差

c. NoSQL

目前最好的NOSQL数据库是HBase

d. 数据同步

拥有多个数据中心的网站必须在多个数据中心之间进行数据同步,以保证每个数据中心都拥有完整的数据


五、后台架构

网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理

a. 搜索引擎

即使网站内部的搜索引擎,也需要进行数据增量更新及全量更新、构建索引等。这些操作通过后台系统定时执行

b. 数据仓库

根据离线数据,提供数据分析数据挖掘服务

c. 推荐系统

社交网站及购物系统通过挖掘人与人之间的关系,人与商品之间的关系,发掘潜在的人际关系和购物兴趣,为用户提供个性化推荐服务


六、数据采集与监控

监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障

a. 浏览器数据采集

通过在网站页面中嵌入JS脚本采集用户浏览器环境与操作记录,分析用户行为

b. 服务器业务数据采集

采集在服务器端记录的用户请求操作日志

采集应用程序运行期业务数据,比如待处理消息数目等

c. 服务器性能数据采集

采集服务器性能数据,如系统负载内存使用率网卡流量

d. 系统监控

将前面采集的数据以图表的方式展示,以便运营和运维人员监控网站运行状况。更先进的做法是实现自动化运维,自动处理系统异常状况,实现自动化控制

e. 系统报警

通过邮件、短信、语音电话等方式发出报警信号,等待工程师干预


七、安全架构

保护网站免遭攻击及敏感信息泄露

a. Web攻击

HTTP请求的方式发起攻击,危害最大的就是XSSSQL注入攻击,这两种攻击都是比较容易防范的

b. 数据保护

敏感信息加密传输与存储,保护网站和用户资产


八、数据中心机房架构

大型网站需要的服务器规模数以十万计,机房物理架构也需要关注

a. 机房架构

每台服务器每年大约需要2000元的电费。Google、Facebook选择数据中心地理位置的时候取向选择散热良好供电充裕的地方

b.机柜架构

机柜大小、网线布局、指示灯规格、不间断电源、电压规格等等

c. 服务器架构

大型网站大都采用定制服务器的方式代替购买服务器整机。

定制硬盘、内存、甚至CPU。同时去除不必要的外设接口(显示器输出接口、鼠标、键盘输入接口)

部署空间结构利于散热



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值