大型网站技术架构 大纲

news/2024/5/9 12:45:03/文章来源:https://blog.csdn.net/weixin_30664615/article/details/96931078

本文内容大部分来自《大型网站技术架构》,这本书很值得一看,强烈推荐。

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

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,同时去除不必要的外设接口(显示器输出接口,鼠标、键盘输入接口),并使空间结构利于散热。

转载于:https://www.cnblogs.com/wangdaijun/p/6828623.html

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

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

相关文章

knewone最新分享购物网站模板

演示效果:http://www.erdangjiade.com/templates/390 效果图片:

DTCMS 网站管理系统

dtcms适合开发一些简单小型网站 开发的过程中遇见了各种问题,下面总结下我遇见的问题 1.遇见提示未开启生成静态功能 在系统设置里面将“伪URL重写”为“生成静态”可以解决 2.在生成静态页面的时候提示生成页面完成,但是右下角却显示失败 这个可能是在新…

oracle em 此网站,Oracle 11g em启动报此网站的安全证书有问题的解决方案

今天配置完Oracle 11gR2 em后,在IE中输入https://kermart:1158/em直接报错,打不开提示:“证书错误,此网站安全证书有问题”,在网上找了好久没有找到解决的方案,其中有人说要卸载win7的windows补丁3KKB26612…

商城模板网站html5手机端_网站建设商城模板设计排版不同,但不可缺少的重要板块都会有 - 企业建站...

有的企业建网站,是为了宣传产品、树立企业形象,此类多为建设企业官方网站;有的企业建网站,销售产品是根本,此类都建设商城网站。建设网站又有两种方法,一类模板建站,一类定制建站。对于网站建设…

list的contains方法为什么不好使_为什么你的网站优化效果不好?

当新手网站管理员优化他们的网站,他们不能总是产生良好的结果。是他们的优化方法使用不好,还是网站本身有问题,比如苏州网站优化,哪里有困难,为什么经常做不好,长期没有排名的网站,优化效果不好…

做网站用什么语言_外贸独立站卖家如何做多语言网站SEO?

在各国经济文化交流的频繁和跨境业务数量增长的背景下,想要实现海外营销,获得更多的关注和收益,外贸卖家们就必须针对目标市场进行网站的多语言优化,针对新的国家或地区进行策略的制定网站内容本地化,仅翻译网站内的文…

如何集成varnish到已有的网站架构

如何集成varnish到已有的网站架构 在我们现有的架构中通常是已经成熟稳定的架构,如何将高性能的缓存服务器部署在已有的环境上呢,同时部署容易,如何始终让用户看到的是最新的内容,即便是缓存命中的状态? 因此&#xff…

activemq 各种版本区别_响应式网站和PC+手机端网站有什么区别?

企业建站普遍会遇到这样一个选择难题:网站选择什么类型?常见的类型分为3种:PC端,PC手机端,响应式。PC端大家都知道,主要的选择难点是后两种有什区别。今天小编就帮大家来分析一下响应式网站和PC手机端网站的…

阿根廷最大社交网站Taringa遭遇大规模数据泄漏,超过2800万用户数据暴露

本文讲的是阿根廷最大社交网站Taringa遭遇大规模数据泄漏,超过2800万用户数据暴露,如果你有Taringa(也被称为“拉丁美洲的Reddit”)网站账号,那么请注意,你的账户详细信息可能已经在大规模数据泄漏事件中泄…

实现网站验证码切换功能

实现网站验证码切换功能 一、样例 样例1、 样例2、 二、实现原理 三、实现代码 com.fry.servlet.VerifyCodeServlet 1 package com.fry.servlet;2 3 import javax.imageio.ImageIO;4 import javax.servlet.ServletException;5 import javax.servlet.annotation.WebServlet;6 im…

从零开始编写自己的C#框架(25)——网站部署

导航 1、关掉访问保护 2、发布网站 3、复制网站到服务器 4、添加新网站 5、设置网站访问权限 6、设置文件夹访问权限 7、控制可更新文件夹执行权限 8、设置“应用程序池”.net版本与模式 9、附加数据库 10、添加数据库访问用户 11、设置数据库链接 12、部署注意事项 对于网站的…

linux系统怎么重启网络连接wifi密码,怎么查看linux连接wifi的密码?_网站服务器运行维护,linux,wifi...

如何使用外部硬盘安装linux系统?_网站服务器运行维护使用外部硬盘安装linux系统的方法:首先将格式化的U盘和固态硬盘连接到电脑上并按F9;然后从菜单选择U盘启动并按enter;接着按linux minit程序安装系统并选择中文;最后…

织梦网站调用变量失败_浙江栢塑科技解析织梦被挂马被黑解决流程

织梦被黑恶意挂马并不奇怪,本身织梦程序案例漏洞过多,如不做好安全更新或备份,造成数据丢失并影响排名。 一个SEOVIP同学遇到织梦的问题,接下来把处理的流程记录下来,帮助大家解决问题。 1,分析网站源码&am…

3格式是什么意思_推荐一个万能格式转换网站

老Y在以前的文章中推荐过一个专注格式转换的网站→推荐一个万能的在线格式转换网站,功能非常的强大。也推荐过一个PC端的转换神器→办公利器(PDF工具|格式转换|图片编辑|文字识别|图片处理…)今天老Y再推荐一个国内的功能同样强大的格式转换网…

一些常用的网站——Mark

2019独角兽企业重金招聘Python工程师标准>>> CDN加速: 又拍云:http://www.bootcdn.cn/ 百度:http://cdn.code.baidu.com/ 新浪:http://lib.sinaapp.com/ 七牛云存储:https://www.staticfile.org/ 转载于:ht…

网站备案那些事----云里雾里知多少?

前言:备案流程几大步 文章目录: 1、购买域名 1.1、国内外几个域名提供商推荐 1.2、域名购买时需要提交的信息 1.3、域名购买后需要提交哪些材料 2、确定网站文件存储空间是购买还是自备 2.1、网站文件存储空间购买的话该如何备案 2.2、网站文件存储空间为…

linux网站5秒盾,宝塔面板建站后接入CF自动开启5秒盾证码脚本

有大神分享了CF自动开启5秒盾 验证码脚本,原理就是通过检测系统负载(cpu或load)自动开启cloudflare UAM和challenge质询(验证码)!!这里分享下宝塔面板下如何用起来,使用的前提是你的域名需要接入cloudflare。1、简介项目&#xf…

网站部署到linux 在进行压测,在Linux CentOS上搭建Jmeter压测环境

本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程,来满足我们日常工作中对于压力测试环境搭建、压力测试执行过程的需求。一、首先我们要准备四个东西,在搭建环境的时候需要使用到1、Xshell、puTTy等终端连接工具(…

几个可以免费下载知网文档,和查重的网站

前一段时间小七分享过几个免费下载知网,万方等一下写论文下载文献的方法,当时有小伙伴在后台询问有没有论文免费查重的方法,其实小七手里面有几个可以免费查看论文权重的软件,但是小七却没有分享,因为这些软件都是个人…

两个免费的文献翻译网站,支持多种专业翻译,多种语言!

小七,小七,有没有文档翻译软件,免费不花钱的那种 简单,安排 搜狗翻译:https://fanyi.sogou.com/ 搜狗翻译,不用注册账号,直接上传文档翻译即可。支持文字,图片,10兆以…