大型网站架构技术一览

网站系统架构层次:前端架构、应用层架构、服务层架构、存储层架构、后台架构、数据采集与监控、安全架构、数据中心机房架构。

1.前端架构(浏览器优化技术、CDN、动静分离,静态资源独立部署、图片服务、反向代理、DNS)
前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。

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

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

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

图片服务
图片不是指网站Logo、按钮图标等,这些文件属于上面提到的静态资源,应该和JS、CSS部署在一起。这里的图片指用户上传的图片,如产品图片、用户头像等,图片服务同样适用独立部署的图片服务器集群,并使用独立(二级)域名。

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

DNS
域名服务,将域名解析成IP地址,利用DNS可以实现DNS负载均衡,配置CDN也需要修改DNS,使域名解析后指向CDN服务器。

2.应用层架构(开发框架、页面渲染、负载均衡、Session管理、动态页面静态化、业务拆分、虚拟化服务器)
应用层是处理网站主要业务逻辑的地方。

开发框架
网站业务是多变的,网站的大部分软件工程师都是在加班加点开发网站业务,一个好的开发框架至关重要。一个好的开发框架应该能够分离关注面,使美工、开发工程师可以各司其事,易于协作。同时还应该内置一些安全策略,防护Web用攻击。

页面渲染
将分别开发维护的动态内容和静态页面模板集成起来,组合成最终显示给用户的完整页面。

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

Session管理
为了实现高可用的应用服务器集群,应用服务器通常设计为无状态,不保存用户请求上下文信息,但是网站业务通常需要保持用户会话信息,需要专门的机制管理Session,使集群内甚至跨集群的应用服务器可以共享Session。

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

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

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

3.服务层架构(分布式消息、分布式服务、分布式缓存、分布式配置)
提供基础服务,供应用层调用,完成网站业务。

分布式消息
利用消息队列机制,实现业务和业务、业务和服务之间的异步消息发送及低耦合的业务关系。

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

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

分布式配置
系统运行需要配置许多参数,如果这些参数需要修改,比如分布式缓存集群加入新的缓存服务器,需要修改应用程序客户端的缓存服务器列表配置,并重启应用程序服务器。分布式配置在系统运行期提供配置动态推送服务,将配置修改实时推送到应用系统,无需重启服务器。

4.存储层架构(分布式文件、关系数据库、NoSQL数据库、数据同步)
提供数据、文件的持久化存储访问与管理服务。

分布式文件
网站在线业务需要存储的文件大部分都是图片、网页、视频等比较小的文件,但是这些文件的数量非常庞大,而且通常都在持续增加,需要伸缩性设计比较好的分布式文件系统。

关系数据库
大部分万丈的主要业务是基于关系数据库开发的,但是关系数据库对集群伸缩性的支持表较差。通过在应用程序的数据访问层增加数据库访问的路由功能,根据业务配置将数据库访问路由到不同的物理数据库上,可实现关系数据库的分布式访问。

NoSQL数据库
目前各种NoSQL数据库层出不穷,在内存管理、数据模型、集群分布式管理等方面各有优势,不过从社区活动性角度看,HBase无疑是目前最好的。

数据同步
在支持全球范围内数据共享的分布式数据库技术成熟之前,拥有多个数据中心的网站必须在多个数据中心之间进行数据同步,以保证每个数据中心都拥有完整的数据。在实践中,为了减轻数据库压力,将数据库的事物日志(或者NoSQL的写操作Log)同步到其他数据中心,根据Log进行数据重演,实现数据同步。

5.后台架构(搜索引擎、数据仓库、推荐系统)
网站应用中,除了要处理用户的实时访问请求外,还有一些后台非实时数据分析要处理。

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

数据仓库
根据离线数据,提供数据分析与数据挖掘服务。

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

6.数据采集于监控(浏览器数据采集、服务器业务数据采集、服务器性能数据采集、系统监控、系统报警)
监控网站访问情况与系统运行情况,为网站运营决策和运维管理提供支持保障。

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

服务器业务数据采集
服务器业务数据包括两种,一种是采集在服务器端记录的用户请求操作日志;一种是采集应用程序运行期业务数据,比如待处理消息数目等。

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

系统监控
将前述采集的数据以图表的方式展示,以便运营和运维人员监控网站运行状况,做到这一步仅仅是系统监视。更先进的做法是根据采集的数据进行自动化运维,自动处理系统异常状况,是吸纳自动化控制。

系统报警
如果采集来的数据超过预设的正常情况的阀值,比如系统负载过高,就通过邮件、短信、语音电话等方式发出警报信号,等待工程师干预。

7.安全架构(Web攻击、数据保护)
保护网站免遭攻击及敏感信息泄露。

Web攻击
以HTTP请求的方式发起的攻击,危害最大的就是XSS和SQL注入攻击。但是只要措施得当,这两种攻击都是比较容易防范的。

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

8.数据中心机房架构(机房架构、机柜架构、服务器架构)
大型网站需要的服务器规模数以十万计,机房物理架构也需要关注。

机房架构
对于一个拥有十万台服务器的大型网站,每台服务器耗电(包括服务器本身耗电及空调耗电)每年大约需要人民币2000元,那么网站每年机房电费就需要两亿人民币。数据中心能耗问题日趋严重,Google、Facebook选择数据中心地理位置的时候趋向选择散热良好,供电充裕的地方。

机柜架构
包括机柜大小,网线布局、指示灯规格、不间断电源、电压规格(是48V直流电还是220V民用交流电)等一系列问题。

服务器架构
大型网站由于服务器采购规模庞大,大都采用定制服务器的方式代替购买服务器整机。根据网站应用需求,定制硬盘、内存、甚至CPU,同时去除不必要的外设接口(显示器输出接口,鼠标、键盘输入接口),并使空间结构利于散热。

时间: 2024-10-14 06:15:55

大型网站架构技术一览的相关文章

高并发访问和海量数据 大型网站架构技术一览

高并发访问和海量数据 大型网站架构技术一览 林涛 发表于:2016-4-19 12:12 分类:WebServer 标签:并发,海量数据,高并发 44次 大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手.大型网站架构主要就是解决这类问题. 本文内容大部分来自<大型网站技术架构>,这本书很值得一看,强烈推荐. 1.前端架构 前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容

【系统架构】 大型网站架构技术一览

本文地址 原文地址 对于大型网站技术的理解,可以从架构技术原理的组织方式以架构要素作为维度,从系统性能.可用性.伸缩性.扩展性.安全性几个角度阐述网站架构的技术要点.还有另一种较为直观的组织方式,是从不同架构层次所使用的网站架构技术这个维度进行描述的. 网站系统架构层次如下图所示: 这个网站架构层次,共分为8个层次,其中数据库中心机房架构是上面所有架构的物理基础:安全架构和数据库采集监控架构是贯穿在各个层次的重要保障,这两个架构主要解决五个业务相关层次的安全问题和数据采集监控问题,是一直都需要关

整理收藏一些大型网站架构技术方面的文章

整理收藏一些大型网站架构技术方面的文章,这里就作为一个导航页面吧,也许文章来自博客园好友,或者其他网站,论坛,博客,我知道地址的都会注明,偶尔也会发表一些自己的看法,仅供收藏,以备自己不时查看,也欢迎博客园好友点评 1.收集的php编写大型网站问题集 http://www.cnblogs.com/ruthon/p/4477904.html

浅谈大型网站架构技术进化

短短几十年国内互联网发生了翻天覆地的变化,特别是国家支持互联网发展,提出了“互联网+”行动计划,国内各行各业的互联网更是日新月异.作为一个九零后小白没有亲身经历互联网的演变历程,如今看的像淘宝.京东.腾讯这样的大型网站充满了无数的好奇心,这些网站是怎么运作的,如何处理大量用户的请求,如何解决海量的数据库处理···于是才有对于大型网站架构核心原理以及实例分析一系列的笔记记录.所有笔记记录参考<大型网站技术架构核心原理以及案例分析>,该系列文章没有太多的代码展示,着重是对理论知识的描述. 互联网无

大型网站架构技术总结

转自:http://www.pcsky.wang/archives/2267.html 1).前端架构: 1.前端指用户请求到网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容. 2.浏览器技术优化技术. 并不是优惠浏览器,而是通过优化响应页面,加快浏览器页面的加载和显示,常用的有页面缓存,合并http减少请求次数,使用页面压缩等. 3.CDN: 内容分发网络 ,部署在网络运营机房,通过将静态页面内容分发到离用户最近的cdn服务器,使用户通过最短路径获取内容 4,动静分离,静态

大型网站技术架构(一):大型网站架构演化

第一章:大型网站架构演化 九层之台,始于垒土:千里之行,始于足下. 对于网站的发展,亦是如此,从上世纪90年代开始,互联网经历了20多年的发展,发生了翻天覆地的变化,今天,全球有一半的人使用互联网,从信息检索到实时通信,从电子购物到文化娱乐,互联网渗透到了生活的每一个角落.但是,构建一个高性能的网站,绝非一朝一夕可以完成,我们来看下,作为一个大型网站系统应有的特点: 1.大型网站系统应有的特点 高并发,大流量:需要面对高并发用户,大流量访问.举个例子,去往迪拜的飞机有200张票,但是有100w人

《大型网站技术架构-核心原理与案例分析》之一: 大型网站架构演化

最近刚刚读完李智慧的<大型网站技术架构-核心原理与案例分析>,对每章重点内容作了一些笔记,以便加深印象及日后查阅. 一.大型网站软件系统的特点 高并发,大流量:需要面对高并发用户,大流量访问. 高可用:系统7X24小时不间断服务. 海量数据:需要存储.管理海量数据,需要使用大量服务器. 用户分布广泛,网络情况复杂:许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别. 安全环境恶劣:由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击. 需求快

大型网站架构改进历程-转 (刚进博客园就看到这么一篇好文章感触颇深)

存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难 完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程. 大型网站定义 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点 行的人也许会认为是网站在单位时间里的并发量的大小来作为指

大型网站架构改进历程

存储的瓶颈(1) 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难 完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程. 大型网站定义 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点 行的人也许会认为是网站在单位时间里的并发量的大小来作为指