大型网站架构演化发展历程

news/2024/5/12 19:06:32/文章来源:https://blog.csdn.net/matiantian666/article/details/51959595

大型网站系统的特点

1,高并发,大流量:需要面对高并发用户,大流量访问。
2,高可用:不间断服务。
3,海量数据:管理处理海量数据,使用大量服务器。
4,需求快速变更,发布频繁:互联网产品为快速适应用户需求,版本迭代。

1. 初始阶段的网站架构


2. 应用服务器和数据服务分离


随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这是就需要将应用和数据分离。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器,如图2所示。
应用和数据分离后,不同特性的服务器承担不同的服务角色,网站的并发处理能力和数据存储空间得到了很大改善,支持网站的业务进一步发展。但是随着用户逐渐增多,网站又一次面临挑战:数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验收到影响,需要进一步优化。
3. 使用缓存改善网站性能

网站使用缓存分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现和应用程序争用内存的情况。远程分布式缓存可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,可以在理论上做到不受内存容量限制的缓存服务,如图3所示。
使用缓存后,数据访问压力得到有效缓解,但是单一应用服务器能够处理的请求连接数有限,在网站访问高峰期,应用服务器成为整个网站的瓶颈。

4. 使用应用服务器集群改善网站的并发处理能力


使用集群是完整解决高并发、海量数据问题的常用手段。当一台服务器的处理能力,存储空间不足时,通过增加一台服务器分担原有的服务器的访问及存储压力。对网站结构而言,只要能通过增加一台服务器的方式改善负载压力,就可以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。
通过负载均衡调度服务器,可将来自用户浏览器的访问请求分发到应用服务器的集群中的任何一台服务器上,如果有更多的用户,就在集群中假如更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈。

5. 数据库读写分离



网站在使用缓存后,使绝大部分的数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作需要访问数据库,在网站的用户达到一定的规模后,数据库因为负载压力过高而成为网站的瓶颈。
目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据库更新同步到另一台服务器上。网站利用数据库的这一功能实现数据库读写分离,从而改善数据库负载压力,如同5所示。
应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务读数据的时候,就可以通过从数据库获得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,是数据库读写分离对应用透明。

6. 使用反向代理和CDN加速网站响应


随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。未来提供更好的用户体验,留住用户,网站需要加速网站访问速度。主要手段有使用CDN和反向代理,如图6所示。
CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户。
使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。

7. 使用分布式文件系统和分布式数据库系统


任何强大的单一服务器都满足不了大型网站持续增长的业务需求。数据库经过读写分离后,从一台服务器拆分成两台服务器,但是随着网站业务的发展依然不能满足需求,这是需要使用分布式数据库。文件系统也一样,需要使用分布式文件 系统,如图7所示。
分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同的业务的数据库部署在不同的物力服务器上。

8. 使用NoSQL和搜索引擎


随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎,如图8所示。
NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

9. 业务拆分


大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,如大型购物交易网站就会将首页、商铺、订单、买家、卖家等拆分成不同的产品线,分归不同的业务团队负责。
具体到技术上,也会根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立关系,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统,如图9所示。

10. 分布式服务


随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增长,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中,这些连接的数目是服务器规模的平方,导致数据库连接资源不足,拒绝服务。
既然每一个应用系统都需要执行许多相同的业务操作,比如用户管理、商品管理等,那么可以将这些公用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供公共业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作,如图10所示。
大型网站的架构演化到这里,基本上大多数的技术问题都得以解决,诸如跨数据中心的实时数据同步和具体网站业务相关的问题也都可以通过组合改进现有的技术架构来解决。

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

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

相关文章

android 程序开启启动监听端口,gogo电子竞技-官方网站

脱壳第三讲,UPX压缩壳,以及补充壳知识 一丶什么是压缩壳.以及壳的原理 在理解什么是压缩壳的时候,我们先了解一下什么是壳 1.什么是壳 壳可以简单理解为就是在自己的PE文件中包含了代码.而有不影响我们的PE文件的执行. 2.什么是压缩壳 压缩壳指的是让我们的PE文件变小. 3.压缩壳…

BFD基金服务器网站是真的吗,百度基金正式开售!服务器惨被挤爆惹吐槽

【PConline 资讯】10月28日消息,备受关注的百度理财产品百度百发于10月28日上午10:28正式发售。不过,由于访问量过大,百度理财官网一度无法正常登陆,引起网友吐槽。百度基金产品百发正式发售据介绍,百发是一款基金产品…

linux扫网站目录,Linux下CSF防火墙阻止恶意网站目录/文件扫描

如图,有时候我们检查Apache日记的时候会发现大量这样的单IP或多IP在短时间内请求大量不存在的目录/文件,Apache返回404状态,这不仅消耗服务器资源还可能有安全隐患。我们可以通过CSF防火墙解决,CSF可以根据返回状态次数来屏蔽请求…

js登录其他网站_JS逆向 | 某同城网站模拟登录(RSA)及指纹分析

点击上方“逆向新手”,选择“关注公众号”跟我一起学Python爬虫逆向!声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!目标网站&#xf…

富文本editor赋值_基于SpringBoot从零构建博客网站-集成editor.md开发发布文章功能...

发布文章功能里面最重要的就是需要集成富文本编辑器,目前富文本编辑器有很多,例如ueditor,CKEditor、editor.md等。这里守望博客里面是集成的editor.md,因为editor.md是markdown格式,目前markdown由于简洁好用&#xf…

奇安信cdn配置教程_网站速度优化实战教程

网站的打开速度,可以说是seo优化过程中的第一步。因为你网站内容在丰富,质量在好,加载速度慢,别人没耐心等待,也是白搭。假如你不是专门的图片或视频网站,可以根据本教程对网站加载速度做优化,以…

vue 同一个域名移动端pc端两套代码跳转_移动端网站SEO优化排名的一些注意细节...

俗话说,有搜索的地方就有SEO优化,移动端的SEO优化也逐渐的进入火热化,对于移动端的SEO优化,大家都是处于同一个阶段,就看谁花在这上面的心思更多一些了。在优化移动端网页的时候,越来越多的问题开始出现&am…

网络不稳定的原因_网站排名不稳定原因有哪些?如何保持排名稳定性?

在互联网的发展旅途中,如果网站没有排名,一切都是浮云,因为80%用户在自身有需求时都会通过搜索手段来寻找解决途径,而排名靠后根本没有用户知道你的存在,更没有人会去大海捞针。所以,想要得到更多用户的关注…

税控盘查看服务器设置的网站,税控盘系统参数设置服务器设置

税控盘系统参数设置服务器设置 内容精选换一换如果您已经创建了一台Linux云服务器,并根据业务需要进行了自定义配置(如安装软件、部署应用环境等),您可以为更新后的云服务器创建系统盘镜像。使用该镜像创建新的云服务器,会包含您已配置的自定…

mysql mha keepalive vip02安装配置,MHA的配置 - MySQL + MHA +Keepalive + VIP安装配置_服务器应用_Linux公社-Linux系统门户网站...

一、总概1、MHA介绍MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步).MHA有两部分组成:MHA Manager(管理节点)和MHA Node(数据节点).MHA Manager可以单独部署在一台独立机器上管理多个master-slave集群,也可以部…

华为外包评级5a多少钱_西安seo外包收费标准优化一个网站需要多少钱?

西安SEO外包优化一个网站需要多少钱?最近西安天勤网络营销工作室的企业微信和QQ不定时都会接到客户咨询西安SEO外包价格问题,西安SEO优化一个网站报价多少钱[1],网站优化[2]一个营销型网站SEO外包需要多少钱?网站做一个词多少钱?或者是网站…

网站留言板防重复留言_企业网站建设

企业制作官网的目的1.有利于提升企业品牌形象 一般来说,企业建立自己的网站,不但可以给企业带来新客户、新生意,同时也可以通过网站来提升自己的品牌形象。2.可以全面详细地介绍公司及展示公司产品 公司网站的一个最基本的功能,就…

您访问的网页出错了! 网络连接异常、网站服务器失去响应_出现网页错误时,数字502、404等分别是什么意思?...

TFBOYS六周年了!为了庆祝,他们将于8月10日在深圳体育馆举行“六周年演唱会”。这次演唱会官方售票网站在7月11日上午正式开通,但令粉丝们绝望的是,不仅抢票流程非常复杂,而且抢票网站还频繁出现“502错误”。502这三个…

未定义数组索引是什么意思_SEO是什么意思?什么是SEO /搜索引擎优化?

SEO是什么意思?什么是SEO /搜索引擎优化?SEO代表搜索引擎优化,这是通过自然搜索引擎结果增加网站流量的数量和质量的做法。什么是SEO什么是SEO?SEO代表“搜索引擎优化”。它是从搜索引擎上的“免费”,“有机”,“社论…

如何卸载服务器的php,centos如何完全卸载php_网站服务器运行维护,centos,php

centos7如何设置屏幕不休眠_网站服务器运行维护centos7设置屏幕不休眠的方法:1、依次点击【applications】、【syetem tools】、【settings】选项;2、进入【privacy】选项,找到【screen lock】选项,并开启此选项即可。查看全部的p…

美甲网站

基于Javaweb的美甲网站,美甲商城。数据库使用了MySQL。 以下是系统截图:

pinterest视觉社交网站商业模式和崛起原因

Pinterest是一个号称"个人版猎酷工具"的美国视觉社交网站,网站创办于2011年,目前 网站用户增长速度赶上了五年前的Facebook,是继facebook、twitter、tumblr之后,又一个受世界瞩目的网站。 Pinterest名称由Pin&#xff0…

在线c语言编程网站_怎么制作app软件?免编程app在线制作网站

怎么制作app软件呢?app制作需要哪些流程?app在线制作平台靠谱吗?现在市场上的app开发可以分为两种截然不同的方式:第一种就是找专业的开发人员进行编程开发,第二种就是利用免编程app在线制作网站,自己制作a…

java中使用itext在pdf模板中添加文字时如何控制添加文字的字体大小_如何设计和编码制作个人网站?...

许多开发人员认为擅长设计是一种天生的能力,而创造力是与生俱来的。但是设计是一项可以像其他任何东西一样学习的技能。你不必天生就可以创建一个漂亮的网站的艺术家,这需要实践。在身边的小伙伴的博客,自己的网站来看,很多人都是…

家乡介绍网站模板html_响应式网络科技公司织梦模板 HTML5软件网站开发工作室网站源码...

给老铁们分享一个逼格很高的整站网站源码,带手机版,可用于网络推广公司,XX科技公司、某企业官网、改一改名字基本通用。模板名称: (自适应手机版)响应式网络建站公司织梦模板 HTML5软件网站开发工作室网站整站源码这款模板使用范围…