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

news/2024/5/13 23:13:52/文章来源:https://blog.csdn.net/Busquets5/article/details/51584367

今天开始读《大型网站技术架构:核心原理与案例分析》,觉得这本书将的全面而又通俗易懂,有兴趣的同学可以看一看。下面对大型网站的架构演化,发展历程做了整理,小伙伴们一起来学习一下。 

传统企业应用面对的挑战:复杂,千变万化的业务逻辑。(功能性需求) 
大型网站面对的挑战:处理超大量的用户访问和海量的数据处理。(非功能性需求)

网站核心架构要素:性能,可用性,伸缩性,扩展性,安全性

大型网站软件系统的特点: 
(1)高并发,大流量:需要面对高并发用户,大流量访问。 
(2)高可用:系统7*24小时不间断服务。大型互联网网站的宕机时间通常会成为新闻焦点。 
(3)海量数据:需要存储,管理海量数据,需要使用大量服务器。 
(4)用户分布广泛,网络情况复杂:许多大型互联网都是为全球用户提供服务的。在国内,还有各个运营商网络互通难的问题。而中美光缆的数次故障,也让一些国外用户依赖较大的网站不得不考虑在海外建立数据中心。,发布频繁: 
(5)安全环境恶劣:由于互联网的开放性,使得互联网更容易受到攻击,大型网站几乎每天都被黑客攻击。 
(6)需求快速变更:和传统软件产品或企业应用系统不同,互联网产品为快速时应市场,满足用户需求,其产品发布频率是极高的。 
(7)渐进式发展:与传统软件产品或企业应用系统一开始就规划好全部功能和非功能需求不同,几乎所有的大型互联网网站都是从一个小网站开始,逐渐发展起来的。

=======》其实大型网站存在的难题,传统软件产品和企业应用都存在,只是没有暴漏出来,用户比较局限。

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

(1)初级阶段

大型网站都是从小型网站发展而来,小型网站最开始没有太多人访问,只需要一台服务器就够了。应用程序,数据库,文件等所有资源都在同一台服务器上,通常服务器操作系统用linux,部署在Tomcat上,使用MySQL数据库,汇集各种免费的开源软件及一台廉价的服务器就可以网站的发展之路了。 

(2)应用程序和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问,导致性能越来越差,越来越多的数据导致存储空间不够。这个时候就需要将应用和数据分离。 
应用和数据分离后,整个网站使用三台服务器:应用服务器,文件服务器,数据服务器。 
这三台服务器对硬件资源的需求各不相同:应用服务器需要处理大量的业务逻辑,需要更快更强大的CPU;数据库服务需要快速磁盘检索和数据缓存,需要更快的硬盘和更大的内存;文件服务器需要存储大量用户上传的文件,需要更大的硬盘。

(3)使用缓存改善网站性能

网站访问特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。 
既然大部分的业务访问集中在一小部分数据上,那么可以将这一小部分数据缓存在内存中,减少数据库的访问压力,提升网站的数据访问速度,改善数据库的写入性能。

网站使用的缓存分为两种:应用服务器本地缓存和专门的分布式服务器远程缓存。 
本地缓存的访问速度更快一些,但是受应用服务器内存限制,其缓存数据量有限,而且会出现跟程序争内存的情况。 
远程分布式缓存可以使用集群的方式,部署大内存的服务器做为专门的缓存服务器,可以理论上做到不受内存容量的限制。 

(4)应用服务器集群

当一台服务器的处理能力和存储空间不足时,不要企图去更换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问和存储压力。 
对网站架构而言,只要能通过增加一台服务器改善负载压力,就可以通过同样的方法持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。应用服务器实现集群是网站可伸缩性集群架构设计中较为成熟的一种。 
通过负载均衡调度服务器,可将原来来自用户浏览器的访问请求分发到服务器集群的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器不再成为整个网站的瓶颈。

(5)数据库读写分离

网站在使用缓存后,使绝大部分数据操作都可以不通过数据库完成,但是仍有一部分数据(缓存访问不命中,缓存过期)和全部的写操作需要访问数据库,在网站用户到一定规模,数据库因为压力过高而成为网站的瓶颈。 
目前大部分的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器数据更新到两外一台服务器上,实现读写分离,从而改善数据库的负载压力。 

(6)使用反向代理和CDN加速

CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,用户请求网站的时候,可以从距离自己近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房。 

(7)分布式文件系统和分布式数据库系统

分布式数据库是网站数据拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。网站更常用的数据库拆分手段是业务分库,将不同的业务的数据库部署在不用的物理服务器上。 

(8)使用NoSQL和搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系型数据库技术如NoSQL和非数据库查询技术如搜索引擎。 

(9)业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线。具体到技术上,也会根据产品线划分,将一个网站拆分成不同的应用,每个应用独立部署维护。 

(10)分布式服务

随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增长,部署维护变得越来越困难。既然每个应用系统都需要执行许多相同的业务操作,比如用户管理,商品管理等,那么可以将这些公共应用提取出来,单独部署。应用系统只需要管理界面,通过分布式服务调用公共业务服务完成具体的业务操作。

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

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

相关文章

学习从现在开始!免费计算机技术教程网站大汇聚!

嘿嘿,不多说了~大家想提高自己的电脑水平的话,就来看看吧~~保证你有收获de!网页设计、编程、网络管理、应用技巧、设计、硬件所有咚咚应有尽有一个都没少~~而且绝大部分都是免费d&am…

网站用户单点登录系统解决方案

网站用户单点登录系统解决方案 1 背景   在网站建设的过程中,多个应用系统一般是在不同的时期开发完成的。各应用系统由于功能侧重、设计方法和开发技术有所不同,也就形成了各自独立的用户库和用户认证体系。随着网站的发展,会出现这样的用…

迅速提高网站流量的方法

这么好的网站,我才发现,真是相见狠晚。 看见这么多网友发表文章,手也有点痒了,我也来凑个热闹,哈哈,,,好了书归正转! 1.网络站优化法[Google]我认为这种方法是最有效的&a…

网站推广常用的29个方法

搜索引擎策略 以网站最重要的关键词在主要搜索引擎中排名领先,这是搜索引擎推广中最重要的策略。搜索引擎的"搜索机器人spiders" 会自动搜索网页内容,因此搜索引擎策略从优化网页开始。 1、添加网页标题(title)。 为每页…

企业网站服务器负载均衡技术

Internet的快速增长使网络服务器,特别是Web服务器,面对的访问者数量快速增加,网络服务器需要具备提供大量并发访问服务的能力。例如sohu每天会收到数千百万次的访问请求,因此对于提供大负载Web服务的服务器来讲,CPU、I…

门户网站运营工作全流程

值得大家关注的是,网站的运营(Operate)大家会跟网站的推广(Promotion)混同起来,实际上,网站的推广工作只是网站运营的一部分,除此之外,还有网站及栏目或活动的策划工作&a…

BUGKU 网站被黑

首先打开链接 我的金币要不够了我就先不打开了 然后打开之后我吗会发现用F12检查了之后也没有什么有用的信息 用bp抓包也没有 然后使用御剑去扫描一下使用第二个批量扫描后台 然后再这张图的添加上点添加将网址输在里面再点击选择PHP.txt 然后点击开始扫描就可以得出几个网…

网站根目录设置

转载于:https://www.cnblogs.com/hellowzd/p/4143314.html

WordPress小工具开发教程(网站公告)

WordPress小工具开发教程(网站公告) BY TIANQIXIN 2012 年 12 月 26 日 wordpress主题小工具,可以自由拖动到侧边栏,并在前台实现相应功能!一般自带的小工具功能有限,我们可以通过自己开发小工具来增强wor…

SEO之HTML优化:让你的网站HTML代码更符合SEO规范

摘要HTML优化是网站内部优化的重点,可能对SEO新手来说,容易忽略。符合搜索引擎习惯的HTML代码是极利于SEO的,可以让你的网站获得更好的搜索引擎排名。如何制作一个标准的HTML网页,如何做HTML优化,本文将为你详细阐述。…

MySQL在大型网站的应用架构演变

写在最前: 本文主要描述在网站的不同的并发访问量级下,Mysql架构的演变。 可扩展性 架构的可扩展性往往和并发是息息相关,没有并发的增长,也就没有必要做高可扩展性的架构,这里对可扩展性进行简单介绍一下&#x…

上传网站

上传网站 FlashFXP是一款功能强大的FXP/FTP软件,如果你使用其它ftp工具受到挫折,就改用这款好用的软件吧。FlashFXP使用简单,并且有汉化版。 本文介绍FlashFXP最基本的功能,设置站点,上传网站。 1.打开FlashFXP&…

ASP.NET遇到问题---onmouseover

Problem3: 下面红色部分出错: 提示: <% Page Language"VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat"server&q…

IIS网站迁移(二)

环境&#xff1a;原环境SERVER2008R2IIS7.0&#xff0c;新服务器环境SERVER2008R2IIS7.0 新服务器如何搭建IIS服务器请百度 网站资源数据自行备份和还原这里不描述 1、 备份和还原IIS环境相关配置 1.1备份应用程序池和站点 1.1.1、备份旧服务器“应用程序池”CMD命令行输入…

IIS网站迁移(三)

问题&#xff1a; 我有一个Windows Server 2003是运行IIS 6的几百个网站&#xff0c;我需要复制网站到Windows Server 2008服务器运行IIS 7.5。怎么复制迁移&#xff1f; Copy IIS 6 to IIS 7.5 Migrate a Web Site from IIS 6.0 to IIS 7 or above 解决方案&#xff1a; …

在本地怎样更换域名IP访问其他网站

TCP/IP的通讯协议 这部分简要介绍一下TCP/IP的内部结构&#xff0c;为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行&#xff0c;部分原因是因为它可以用在各种各样的信道和底层协议&#xff08;例如T1和X.25、以太网以及RS-232串行接口&#xff09;之上。确切…

在Nginx用htpasswd对网站进行密码保护的设置方法

很多时候我们需要对一些网站进行密码保护&#xff0c;比如团队内部的站点、demo站点等等。这里所说的密码保护是服务器级的&#xff0c;并非网站应用层的注册登录那一套&#xff0c;而是利用服务器配置和htpasswd文件来实现访问的密码验证 最后的效果就类似&#xff08;不同浏览…

X64系统下IIS运行ASP网站HTTP500错误 【安装FoxMail Server时出现】

错误如上 解决办法 使用管理员模式运行CMD 输入cscript C:\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 true 回车即可解决 转载于:https://www.cnblogs.com/xdoudou/p/3235367.html

给IIS添加网站配置权限

1.新建一个网站&#xff0c;填好名字&#xff0c;路径和主机名端口等等 2.为网站添加一个用户 3.用户隶属于Guests&#xff0c;和IIS_IUSRS 4.把网站的完全控制权限赋给刚才的用户。 在网站右键&#xff0d;&#xff0d;编辑权限&#xff0d;&#xff0d;安全 或者在网站文件夹…

SSM团购网站(1):架构设计与技术选型

网站的功能模块设计 技术选型 需求分析 网站需求 首页分类/列表页详情页预售购买和支付个人信息及订单站内通知注册登录 管理后台需求 权限商品订单供应商地区图片处理 技术选型原则 平台依赖性可扩展性、可集成性技术稳定性文档及应用范围 技术陷阱 需求不清追求新技术…