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

news/2024/5/15 12:16:55/文章来源:https://blog.csdn.net/weixin_34087301/article/details/93539983

  前面已经描述了大型网站系统的特点,而对一个大型网站系统,其架构也是重要的一个环节。

  大型网站技术主要的挑战来自于庞大的用户、高并发以及海量的数据这三个方面。大型网站的形成就像一颗大树的成长,历尽长时间的磨练,最后枝繁叶茂,服务他人。

初始网站架构结构

         起初的网站鉴于用户量、访问量较少,只需要一台服务器足以,应用程序、数据库、文件等其所有资源放在一太服务器上就已经足够满足此时的需求,这时候网站的架构就几个简单组成部分如下图

应用和数据服务分离

  随着网站业务需求的发展,越来越多的用户进行访问,此时一台服务器渐渐不能满足需求,数据的存储空间出现屏障。于是应用程序、数据库、文件三者面临分离,各自为首分配一台服务器,这三台服务器对硬件的要求各取所需,应用服务器处理大量的业务逻辑,需求更快更大的CPU;数据库服务器对数据库的处理需要快速搜索以及缓存,需求对内存更大,对硬盘读写能力更迅速;文件服务器需求放入大量的用户资源,对硬盘空间要求更大。此时的网站的架构组成部分展示如下图

使用缓存

  网站的架构进一步改进后可以满足了业务的发展,但是随着网站知名度提升,用户量的进一步增加,访问数据相比之前愈加频繁,数据库压力急剧上升导致网站访问出现延迟,用户的性能体验出现下滑,面临此时网站出现的性能问题,网站架构设计需要再一次的进化,鉴于网站访问也遵循二八定律,例如:新浪微博,只有经常登录的用户才会发微博,看微博,而这些用户对于总用户数只是冰山一角。既然出现这一现象,那么缓存这部分的数据是不是可以解决这现象呢?网站缓存可以分为本地缓存和分布式缓存这两种,二者的区别是本地缓存速度快但是受服务器内存限制缓存的数量有限,而分布式缓存采用的是集群处理,理论上是可以避免内存瓶颈。此时网站的架构组成部分如下图

应用服务器集群改善网站并发能力

  使用缓存后,数据库的压力得到缓解,但是在面临网站高峰期时,应用服务器处理单一的请求连接出现瓶颈,万事都有解决的办法,只是看你愿不愿去想,愿不愿去尝试做,采用集群,集群多台应用程序服务器分布原有的应用程序服务器,从而实现了系统的可伸缩性,网站架构此时演化成这样如下图

数据库读写分离

  使用缓存,虽然使用户请求数据操作大部分不直接通过数据库,但是仍有一部分数据(缓存过期、缓存数据没有命中)读写操作需要访问数据库,面对这部分数据,可能出现数据访问负载压力,把数据库读写操作分离性能效果理当会如何呢?效果无言而喻。

CDN和反向代理加速网站响应

  网络覆盖范围地区广泛,造就了网络环境复杂,从而用户访问网站性能体现也各有差异,鉴于这问题,网站架构使用CDN和反向代理以技术加速网站响应,二者原理都是缓存,CDN可以从距离用户最近网络提供点获取数据;反向代理则是首先从反向代理服务器中获取数据。

分布式文件、数据库系统

  任何单一的服务器最后都是满足不了业务需求发展。虽然前面数据库读写分离能够改善数据库负载压力但是随着业务不断壮大最终还是难以维持此时使用分布式数据库,该技术不到不得以建议不使用,而对于这个技术解决方案更常用的使用业务拆分,将不同的业务数据库部署在不同的物理服务器上。

NoSQL和搜索引擎

  该技术对于可伸缩的分布式提供更好的支持,减轻应用程序管理诸多数据源的麻烦。

业务拆分

  大型网站日益发展壮大,业务需求越来越复杂,使用分而治之手段分离整个网站的业务变成不同的产品线。具体到技术上,将一个网站拆分成许多不同的应用,每个应用独立部署,而应用与应用之间通过超链接关联,不过最多的还是通过访问同一个数据存储来构成一个关联的完整系统。

分布式服务

  一个应用系统需要执行相同业务操作,那么可以将共同的业务提取出来,独立部署,由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式调用共用业务服务完成具体业务操作。

  大型网站结构演化到这里,基本上大多数的技术问题都得以解决了,但是事物发展到一定的阶段就会摆脱初衷向更强的方向发展。目前许多的大型网站都建立自己的云平台,将计算作为一种资源进行出售。

大型网站架构演化历经了长时间磨练才发展如此,在过程中也是出现一些易步入的误区

  一味的追随大公司解决方案,大公司的经验和成功固然重要,但是不能盲目的追从,要与实际的具体业务需求有所改动;

   为了技术而技术,网站技术是为业务而存在的,但是一味的追求新技术,可能会导致结构技术之路越走越难;

  企图用技术解决所有问题,技术虽是解决业务问题的,但也不是万能钥匙,有些业务的问题也是可以通过业务手段解决。

转自:http://www.cnblogs.com/JustOnly/p/4899615.html

转载于:https://www.cnblogs.com/cheng5x/p/4899816.html

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

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

相关文章

如何获取不同网站的favicon默认图标

参考文章: 1、利用公共api提取任意网站favicon.ico图标 如何读取favicon根据设置favicon的方式,就有2种读取favicon的方法:A、默认直接读取网站根目录的favicon.ico文件。B、如果不存在根目录下的favicon.ico文件,就读取页面里fav…

如何自己搭建钓鱼网站检测系统

001基本系统架构 随着电子商务、互联网金融的快速发展,在利益的驱使下,从事“钓鱼攻击”的黑产呈逐渐上升趋势。“钓鱼攻击”不仅对企业的品牌形象造成严重损害,还对用户的账户安全、甚至资金安全构成了极大的威胁。 目前“钓鱼攻击”已经为了…

给网站配置免费的HTTS证书

最近看到网上说 https 的网站 Google 会优先收录,所以就抽时间记录下配置博客的过程。 ACME 使用 LetEncrypt 证书作为博客的 https 实现方式。 acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书. github https://github.com/Neilpang/acme.sh 主要步骤…

你写论文时发现了哪些神网站?

周不润,神经科学收录于 编辑推荐•18860 人赞同神网站算不上,都是一些为写作带来便利的网站。而且作为一些最常用网站的替代品,这些网站有的更精确,有的更便捷。(16.02.27 更新)以下内容包括:选…

网站设计师必备50教程

很必然,下面的50个教程都源自于国外,虽然是E文,但是我相信很多朋友都有能力读懂,实在不行的。。就拜托一些翻译工具吧,但是积少成多,希望别用太多,很多东西都是要靠自己来理解的,这5…

有哪些优秀的科学网站和科研软件推荐给研究生?

ljthyd ,食品科学博士,粮食加工2032 人赞同写几个常见的我觉得挺好的网站及软件,也不知道你什么学科,就写一些所有学科基本都用得到的吧。1、小木虫论坛(小木虫论坛 - 学术科研第一站)及其APP这个论坛应该相…

网站建设ASP中UTF-8与GB2312编码转换乱码问题的解决方法

现在blog程序一般都是utf-8编码的,要在网站里加入其它的程序的话,如果不是utf-8而是gb2312的话,在页面转换的时候很容易出现打开的页面时乱码,经过查找资料和测试,总结出现在最好的一个方法,先了解一下基础…

有哪些高质量的图片网站(社区)推荐?

知乎用户 ,十年饮冰,难凉热血。45 人赞同免费 可商用 不需要署名 Gratisography: Free, use as you please, high-resolution pictures.http://picjumbo.com/page/5/Life Of Pix - Free Stock Photos & ImagesIM Free - Free Images, Free Icons, Fr…

刚学编程的程序员必备这5大编程网站,你知道几个?

一个好的网站,就是程序员学编程的基地。虽说新手程序员也许知道一些在线编程网站,但是质量上乘的编程网站又知道几个呢?下面就来给大家推荐5个质量上乘的编程网站:0、LeetcodeLeetCode是大名鼎鼎的在线刷题网站,通过该网站的刷题…

如何注册域名-买服务器-备案-建设网站

谁可以提供如何注册域名-买服务器-备案-建设网站? 域名没问题、服务器也买了、备案啊?网站呢? 谁是大神请指点!

Web网站架构演变—高并发、大数据

转 Web网站架构演变—高并发、大数据 2018年07月25日 17:27:22 gis_morningsun 阅读数:599前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。 该系统具备的功能: 用户模块:用户注册和…

LNMP动态网站

LNMP基础知识 什么是LNMP 主流的企业网站平台之一L:Linux操作系统N:Nginx网站服务软件M:MySQL.MariaDB数据库P:网站开发语言(PHP.Perl.Python) 静态网站和动态网站区别 静态网页: (1)静态网页不能简单地理解成静止不动的网页,他…

项目:部署LNMP动态网站

部署LNMP动态网站 问题 部署LNMP动态网站,实现以下目标: 安装LNMP平台相关软件配置Nginx实现动静分离配置数据库,创建账户与密码上线Wordpress代码使用Wordpress后台管理界面,调整Wordpress版式 方案 实验拓扑如图所示&#…

项目:网站架构,集群

网站架构的演变 问题 单机版LNMP独立数据库服务器Web服务器集群与Session保持动静分离、数据库集群各种缓存服务器业务模型 单机版LNMP 单机版网站,拓扑如图所示。 用户量少时使用,简单、成本低、存在单点故障。 独立数据库服务器 独立数据库服务…

搭建WordPress个人网站

准备域名 搭建网站的第一步肯定拥有一个自己的域名(当然愿意用IP地址直接访问也没什么问题),域名购买途径很多,阿里云、腾讯云、百度云等服务器供应商都能购买域名,一般建议域名和服务器都在同一个平台购买&#xff0…

设计企业网站大纲_哈尔滨企业网站设计费用,网站开发公司_华阳网络

天津华阳在线科技有限公司为您详细解读哈尔滨企业网站设计费用,网站开发公司的相关知识与详情:中企动力一般会先确定客户的网站所属行业,仔细分析其市场前景,明确市场与网站的需求特点,评估网站未来的发展空间。确认网站的市场需求以上的这些就是影响网站运营的两大…

python制作动态网站_精析Python3实现动态web服务(附服务端源码)

实现一个简单的静态web网站,只需将写好的html页面上传到特定的web服务器软件即可,但静态网页其实和图片没什么区别,每次更新网站内容,都需要重新制作html页面,然后上传给提供web服务的软件,替换原来的html页面,也就完成了更新,以一个正常人的思维方式,每次更新内容都要重新生成…

博客网站源代码_网站建设技术--WORDPRESS

一、Wordpress是什么?Wordpress是世界上应用最广泛的开源CMS程序。用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。全球1/4的网站都是用wordpress制作,它起初只是一款个人博客系统,之后逐步演化成一款内容管理系统软件&#x…

无法更改域名 php网页,WordPress更改新域名后网站无法正常运行怎么办?

很多站长在吐槽WordPress站点更改域名后网站无法正常运行,其实这是一个比较简单的问题,一般新手站长会经常遇到这个问题,那么WordPress更改新域名后网站无法正常运行怎么办?方法一:修改wp-config.php1、在wp-config.ph…

Ubuntu系统下的云服务器网站搭建

Ubuntu系统下的云服务器网站搭建(一) 由于近来一直在学网页开发,所以对于WAMP环境下的网站搭建虽不能说多么精通,但是对于其中流程还是比较熟悉的。并且自己也在本机上写了一些有点规模的网站,通过把自己本地的web服务…