大型网站架构技术一览

news/2024/5/12 2:16:17/文章来源:https://blog.csdn.net/weixin_30861797/article/details/96668965

导读:大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解决这类问题。

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

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

欢迎访问我们的技术交流群650385180

转载于:https://www.cnblogs.com/lfs2640666960/p/8533632.html

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

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

相关文章

python_flask小项目实例-编一个小网站

要完成是这样一个网站:http://www.yushu.im/,该网站主要是赠送书的一个平台(公益性的) 网站框架功能: 网站的搭建 前期准备(用pycharm直接创建应该也可以,感觉直接创简单) 新建文件夹,创建虚拟环…

网站sitemap.xml 无法访问

<?xml version"1.0" encoding"UTF-8"?> <?xml-stylesheet type"text/xsl" href"sitemap.xsl"?> <!-- Free Sitemap Generator http://www.sitemapx.com --> <urlset xmlns"http://www.sitemaps.org/sch…

常见的免费遥感卫星数据服务网站

** 常见的免费遥感卫星数据服务网站 ** 其他的文章链接&#xff1a; 0.遥感常用资料一览&#xff1a; https://blog.csdn.net/weixin_44143671/article/details/101058973 1.ArcGIS操作视频与数据&#xff1a; https://blog.csdn.net/weixin_44143671/article/details/1009…

sql server ssl安全错误_网站HTTPS之路——安装、配置SSL证书及强制开启HTTPS

从2018年年底开始&#xff0c;谷歌浏览器Chrome对于http://站点将显示不安全的标志。所以最近终于开始琢磨SSL证书的事&#xff0c;让自己的网站不再显示不安全。一、证书申请对于个人站点而言&#xff0c;当然首选免费的SSL证书&#xff0c;毕竟财力有限&#xff0c;况且用户和…

开发好还是实施好_企业建站是选择模板建站好还是定制开发?

目前&#xff0c;很多企业找网站建设公司做网站&#xff0c;一般有两种选择&#xff0c;定制网站和模板网站。然而&#xff0c;这两种网站建设方法的价格相差甚远。企业应根据实际需要选择自己的网站建设方法。那么企业的网站建设选择定制还是模板好&#xff1f;首先&#xff0…

买的美国服务器怎么上传文件,美国服务器部署网站的时候要如何迁移数据

随着业务的不断发展不少租用美国服务器部署网站的用户渐渐的会发现原先的配置已经无法满足业务的需求&#xff0c;而如果要更换服务器的配置的话一般少不了对网站的数据进行迁移&#xff0c;那么具体需要做哪些工作呢&#xff0c;今天USA-IDC就来简单介绍一下网站迁移的主要步骤…

想学习Python? 知道这些开源电子书网站吗?

Python开源电子书网站&#xff0c;各个领域的精品&#xff0c;你值得学习收藏。 Python 入门 《A Byte of Python&#xff08;简明 Python 教程&#xff09;》 豆瓣评分&#xff1a;8.7 一句话介绍&#xff1a;Python 初学者的极佳教材。 网址&#xff1a;https://wizardfor…

程序员的强迫症 — 便捷打开常用网站

引言 根据上一篇 程序员的强迫症–如何让电脑桌面变得非常干净&#xff1f;可以让电脑桌面非常简洁、干净&#xff0c;win r 快速打开应用程序、常用文件夹。 这篇就介绍 win r 便捷打开常用网站&#xff0c;优化管理 我们在日常生活、办公中都有一些常用网站&#xff0c;我们…

.网站数字证书制作与使用

网站服务器与数字证书由于Windows NT系统的容易维护&#xff0c;很多单位或者ISP都采用它&#xff0c;大部分是做WEB服务器使用。虽然IIS存在很多新的漏洞和安全问题&#xff0c;但只要我们做好合理的安全配置&#xff0c;还是可以避免很多安全隐患的。因此&#xff0c;本文选择…

自学宝典:10个学习Android开发的网站推荐

摘要&#xff1a;本文作者Tikitoo总结自己在学习Android开发过程中发现的好网站&#xff0c;包括Android Developers、GitHub等&#xff0c;以给初学者一些建议&#xff0c;少走一些弯路。 1. Android Developers 作为一个Android开发者&#xff0c;官网的资料当然不可错过&am…

大型网站架构体系的演变

&#xfeff;&#xfeff;转载地址&#xff1a;http://mp.weixin.qq.com/s?__bizMjM5MzA0OTkwMA&mid209324678&idx1&sn74ad681fa74547426493f2f44af045cc#rd 互联网上有很多关于网站架构的各种分享&#xff0c;有些主要是从运维和基础架构的角度去分析的&#xff…

电脑证书错误即上网站打不开提示证书错误

上一些网站&#xff0c;老打不开&#xff0c;提示我证书错误&#xff1b;出现网站证书错误&#xff0c;一般有以下几个原因&#xff1a;首先是网站证书过期&#xff0c;其次是系统浏览器自身设置问题&#xff0c;下面为大家介绍下不错的解决方法 最近我上一些网站&#xff0c;老…

考证必备的五个网站

大学期间&#xff0c;考证是额外的技能加持。 这种技能可能成为你的副业&#xff0c;也有可能在以后应聘时因此而获得HR的青睐。 所以说&#xff0c;考证&#xff0c;尤其是考一些必备证书&#xff0c;是很有必要的。 大多数人都曾有这样的感受&#xff0c;很想要考某一个证件。…

一行命令发布一个网站

一行命令发布一个网站1.通常发布一个网站&#xff08;静态网站&#xff0c;就是不需要后台和数据库&#xff09; 我们需要把文件放到一台服务器上。Zeit Now&#xff0c;只需要一行命令就能将本地的网站发布到Zeit服务器上&#xff0c;得到一个域名来访问该网站。 Vercel提供免…

Nativefier一行代码快速将网站打包成桌面程序

Nativefier简介 Nativefier是一个命令行工具&#xff0c;仅仅通过一行代码就可以轻松地为任何的网站创建桌面应用程序&#xff0c;应用程序通过Electron打包成系统可执行文件。 作者github&#xff1a; https://github.com/jiahaog/nativefier安装 建议使用cnpm全局安装 cn…

【实战】教你如何使用 Bootstrap 搭建一个企业网站——《Bootstrap实战》

文章目录一、准备启动文件1.完成之前的效果&#xff1a;2.完成之后的效果3.文件清单4.本章目标二、页头区1.需要完成的效果特性&#xff1a;2.将Logo放在导航条上方3.调整导航条三、添加实用导航1.要实现的效果2.添加代码和样式四、调整响应式导航五、调整配色六、调整折叠后的…

【笔记】《Bootstrap实战》——第5章 电子商务网站

文章目录一、商品页的标记二、面包屑、页面标题和分页导航三、调整商品网格四、侧边栏和筛选选项1.基本布局2.Clearance Sale按钮3.选项列表4.为选项链接添加Font Awesome图标复选框5.使用LESS混入在栏中对齐选项6.针对平板和手机调整选项列表布局7.在手机上折叠选项面板构建了…

【笔记】《Bootstrap实战》——第6章 单页营销网站

文章目录一、概况二、初始文件三、了解页面内容四、调整导航条五、定制高清图六、美化功能列表七、装饰用户评论区1.定位及美化说明2.调整说明元素的位置3.添加 Bootstrap 的网格类4.下载并链接 JavaScript 插件5.初始化 Masonry 插件6.切齐图片7.适应小微屏幕八、吸引人的价目…

【笔记】个人博客建立(域名选择、网站备案、公安联网备案、安全评估报告)

文章目录一、域名选择二、网站备案三、公安联网备案四、安全评估报告五、域名邮箱一、域名选择 域名查询结果_域名信息_域名交易-万网-阿里云旗下品牌 既然是个人网站&#xff0c;域名最好是带有个人名字全拼&#xff0c;或是网名全拼&#xff0c;我选出wenda.zone和gaowenda.c…

【实战】Windows使用任务计划执行批处理定时重启IIS部署的网站

文章目录一、windows定时任务1.Windows 任务计划程序2.Windows Service二、命令行方式启停IIS网站三、例&#xff1a;定时启停IIS网站目标任务步骤查看成果一、windows定时任务 1.Windows 任务计划程序 直接搜索&#xff1a; 或是&#xff1a;计算机(右键)->管理 &#x…