大型网站架构技术一览

news/2024/5/21 0:35:29/文章来源:https://blog.csdn.net/lz0426001/article/details/50697888

网站系统架构层次如下图所示:

20150507171005663

1.前端架构

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

浏览器优化技术

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

CDN

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

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

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

图片服务

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

反向代理

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

DNS

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

2.应用层架构

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

开发框架

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

页面渲染

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

负载均衡

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

Session管理

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

动态页面静态化

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

业务拆分

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

虚拟化服务器

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

3.服务层架构

提供基础服务,供应用层调用,完成网站业务。

分布式消息

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

分布式服务

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

分布式缓存

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

分布式配置

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

4.存储层架构

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

分布式文件

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

关系数据库

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

NoSQL数据库

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

数据同步

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

5.后台架构

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

搜索引擎

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

数据仓库

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

推荐系统

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

6.数据采集与监控

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

浏览器数据采集

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

服务器业务数据采集

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

服务器性能数据采集

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

系统监控

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

系统报警

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

7.安全架构

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

Web攻击

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

数据保护

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

8.数据中心机房架构

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

机房架构

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

机柜架构

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

服务器架构

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780754.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站图片服务器架构的演进

在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足&am…

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&…

浅谈web网站架构演变过程

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理 阶段一、单机构建网站 网…

大型网站系统架构分析

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…

如何对一个网站进行分析

有时,我们浏览到某个网站,觉得不错,然后就决定把其中的某个功能或产品应用到自己的网站上。这样做或许有时候能够对自己的网站有帮助,但是这往往是一个草率的做法。最好经过充分的考虑和分析之后再做决定。从做事的逻辑结构来看&a…

超人气新书《SEO实战密码——60天网站流量提高20倍》火爆热销

超人气新书《SEO实战密码——60天网站流量提高20倍》火爆热销 11月底,《SEO实战密码——60天网站流量提高20倍》在全国读者的翘首企盼中正式面市,仅一周的时间,它便以令人窒息的速度在卓越网迅速脱销,当当网签名本2天之内抢售一空…

如何设计通用的网站模板

现在网络上已经到处可以看到使用模板开发出来的网站。使用模板开发网站有很多好处,最主要的就是模板与程序完全脱离,用户可以根据规定好的标签任意开发模板,导入到模板引擎里就能正常运行。所以美工人员跟程序编写人员彻底的独立了。提高了开…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

网站设计常用技巧(转)

先说一下写这篇文章的目的吧,这上面的东西很多不是我写的,也不是我总结的,这点我肯定,呵呵,我希望大家也能提提你自己的建议,希望不断总结, 让更多的网站设计技巧出现在这里,方便 查…

(一)高并发redis学习笔记:小电商网站架构与高并发架构区别

主要的知识: redis集群storm集群nginxtomcatmysql 真正能支撑高并发以及高可用的复杂系统中的缓存架构有哪些东西? (1)如何让redis集群支撑几十万QPS高并发99.99%高可用TB级海量数据企业级数据备份与恢复?&#xff1…

配置ISA Server以创建站点到站点*** 连接之二(接续之一)

在本练习中,您将对两个 ISAServer 阵列进行配置以创建站点到站点 *** 连接。注意:本实验室练习使用以下计算机:Denver - Florence - Berlin - Istanbul 注意:在以下任务中,您将配置 GERMANY 阵列以使用站点到站点 *** …

PHP网站头部通栏设计

1.把网站添加到桌面&#xff1a; <a href"shortcut.php">放到桌面上</a> <?PHP$Shortcut "[InternetShortcut]URLhttp://www.xxx.comIDListIconFilehttp://www.xxx.com/favicon.ico//图标IconIndex1[{000214A0-0000-0000-C000-000000000046}]P…

如何更有效使用 Rational AppScan 扫描大型网站,第 1 部分: 工作原理及技术分析...

近来看到AppScan的技术介绍&#xff0c;感觉不错&#xff0c;与同行分享。 Rational AppScan&#xff08;简称 AppScan&#xff09;其实是一个产品家族&#xff0c;包括众多的应用安全扫描产品&#xff0c;从开发阶段的源代码扫描的 AppScan source edition&#xff0c;到针对 …

黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)

自从Discuz被腾讯这头大牛收购后的确越来越强大了&#xff0c;云平台是最大的亮点&#xff0c;但是Discuz X2.0在伪静态方面仍然非常不尽人意。目前世面主流的论坛程序phpwind和Discuz都无法做到全站完美伪静态&#xff0c;这对SEO影响很大&#xff0c;如果网站的权重不够高&am…

22个优秀的网站后台模板

22个优秀的网站后台模板 2011年09月3日 发布在 设计 由ding 留下评论不错的后台模版&#xff0c;不过&#xff0c;需要自己去汉化。这个应该问题不大。 还有&#xff0c;看模版的话&#xff0c;建议用火狐或chrome。外国网站一向不是很兼容ie6的&#xff0c;你懂的。 1&a…

PrestaShop加速11招立刻加速PrestaShop外贸电子商务网站无额外插件

2019独角兽企业重金招聘Python工程师标准>>> 自从PrestaShop进入1.4时代&#xff0c;我们会发现PrestaShop越来越慢了&#xff01;比如你用的是justhost空间总会收到服务商提示你cpu超负荷的邮件&#xff0c;最后你的PrestaShop VPS被关闭了&#xff01; 今天&#…

推荐10个堪称神器的学习网站

天一早做了个恶梦&#xff0c;梦到被老板辞退了。虽然说在我们公司&#xff0c;只有我辞退老板的份&#xff0c;没有老板辞退我这一说&#xff0c;但是还是被吓得 4 点多都起来了。&#xff08;主要是因为我掌握着公司所有的核心源码&#xff0c;哈哈哈&#xff09; 既然 4 点…

发布网站详细步骤(.Net)

&#xff08;i&#xff09;打开需要发布的网站 右键需要发布的项目 点击下拉框新建配置文件&#xff0c;输入配置文件名称&#xff0c;点击确定&#xff0c;下一步 发布方法选文件系统&#xff0c;目标位置&#xff1a;项目的根目录 配置选Release 点击发布 &#xff08;ii&…

linux查看某软件是否运行,linux如何查看某个软件是否安装_网站服务器运行维护...

linux中如何重命名文件_网站服务器运行维护linux中重命名文件的方法&#xff1a;可以使用mv命令来重命名文件&#xff0c;具体用法为【mv 源文件名 目标文件名】。例如【mv aaa bbb】&#xff0c;表示将aaa文件重命名为bbb。linux有多种方式安装软件&#xff0c;查看某个软件是…

静态网站托管_MQ

静态网站托管_MQ 1、安装surge npm install --global surge2、将需要部署的静态网页放到一个文件夹 3、命令行进入到该文件夹下&#xff0c;执行surge命令 surge4、然后一直根据提示注册账号和设置密码&#xff0c;使劲敲回车回车&#xff0c;知道完成生成域名&#xff1b;然…