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

news/2024/5/11 0:31:32/文章来源:https://blog.csdn.net/ioniconline/article/details/50387497

原文:http://www.cnblogs.com/JustOnly/p/4899615.html

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

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

初始网站架构结构

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

应用和数据服务分离

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

使用缓存

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

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

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

数据库读写分离

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

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

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

分布式文件、数据库系统

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

NoSQL和搜索引擎

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

业务拆分

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

分布式服务

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

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

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

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

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

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

 

  参考资料:《大型网站技术架构核心原理与案例分析》


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

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

相关文章

发现了好的网站

今天在查找DNN,以及rainbow的资料时,发现了几个好的网站,并在上边注册;www.dnnskins.com, www.asp.net www.codeproject.com 通过查看,对dnn,rainbow有了新的认识转载于:https://www.cnblogs.com/mengfan/arch…

影响我的网站速度的因素

测试几个主网页总结出影响我的网页速度的几个因素: 一级因素: ①启动压缩 ②浏览器缓存 二级因素: ①提供压缩后的图片 找到原因下面就好办了,对症下药,下面将一个个解决。 解决办法: 开启压缩功能-…

别找了!这5个图片素材网站分享给你,每一个都资源满满!

职场中的工作日常就是找素材,但是需要找到合适的图片素材真的是难上加难。废话就不多说了,今天小编就给大家分享5个图片素材网站,资源真的超级丰富!有需要的小伙伴记得收藏!Pixabay链接:http://pixabay.com…

大型网站架构系列:分布式消息队列

一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境&#xff0…

一个母婴电子商务网站的大数据平台及机器学习实践

母婴相对一般的电子商务网站有一些特点:第一个特点是商品周期短,在母婴网站上的商品,在线的时间不会超过5-7天,第二个是用户需求的变化快,在母婴行业,可能是用户的需求变化最快的领域,比如是用户…

大型网站架构技术一览

网站系统架构层次如下图所示: 1.前端架构 前端指用户请求到达网站应用服务器之前经历的环节,通常不包含网站业务逻辑,不处理动态内容。 浏览器优化技术 并不是优化浏览器,而是通过优化响应页面,加快浏览器页面的加载…

大型网站图片服务器架构的演进

在主流的Web站点中,图片往往是不可或缺的页面元素,尤其在大型网站中,几乎都将面临“海量图片资源”的存储、访问等相关技术问题。在针对图片服务器的架构扩展中,也会历经很多曲折甚至是血泪教训(尤其是早期规划不足&am…

大型网站架构系列:分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&…

浅谈web网站架构演变过程

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理 阶段一、单机构建网站 网…

大型网站系统架构分析

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…

如何对一个网站进行分析

有时,我们浏览到某个网站,觉得不错,然后就决定把其中的某个功能或产品应用到自己的网站上。这样做或许有时候能够对自己的网站有帮助,但是这往往是一个草率的做法。最好经过充分的考虑和分析之后再做决定。从做事的逻辑结构来看&a…

超人气新书《SEO实战密码——60天网站流量提高20倍》火爆热销

超人气新书《SEO实战密码——60天网站流量提高20倍》火爆热销 11月底,《SEO实战密码——60天网站流量提高20倍》在全国读者的翘首企盼中正式面市,仅一周的时间,它便以令人窒息的速度在卓越网迅速脱销,当当网签名本2天之内抢售一空…

如何设计通用的网站模板

现在网络上已经到处可以看到使用模板开发出来的网站。使用模板开发网站有很多好处,最主要的就是模板与程序完全脱离,用户可以根据规定好的标签任意开发模板,导入到模板引擎里就能正常运行。所以美工人员跟程序编写人员彻底的独立了。提高了开…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

网站设计常用技巧(转)

先说一下写这篇文章的目的吧,这上面的东西很多不是我写的,也不是我总结的,这点我肯定,呵呵,我希望大家也能提提你自己的建议,希望不断总结, 让更多的网站设计技巧出现在这里,方便 查…

(一)高并发redis学习笔记:小电商网站架构与高并发架构区别

主要的知识: redis集群storm集群nginxtomcatmysql 真正能支撑高并发以及高可用的复杂系统中的缓存架构有哪些东西? (1)如何让redis集群支撑几十万QPS高并发99.99%高可用TB级海量数据企业级数据备份与恢复?&#xff1…

配置ISA Server以创建站点到站点*** 连接之二(接续之一)

在本练习中,您将对两个 ISAServer 阵列进行配置以创建站点到站点 *** 连接。注意:本实验室练习使用以下计算机:Denver - Florence - Berlin - Istanbul 注意:在以下任务中,您将配置 GERMANY 阵列以使用站点到站点 *** …

PHP网站头部通栏设计

1.把网站添加到桌面&#xff1a; <a href"shortcut.php">放到桌面上</a> <?PHP$Shortcut "[InternetShortcut]URLhttp://www.xxx.comIDListIconFilehttp://www.xxx.com/favicon.ico//图标IconIndex1[{000214A0-0000-0000-C000-000000000046}]P…

如何更有效使用 Rational AppScan 扫描大型网站,第 1 部分: 工作原理及技术分析...

近来看到AppScan的技术介绍&#xff0c;感觉不错&#xff0c;与同行分享。 Rational AppScan&#xff08;简称 AppScan&#xff09;其实是一个产品家族&#xff0c;包括众多的应用安全扫描产品&#xff0c;从开发阶段的源代码扫描的 AppScan source edition&#xff0c;到针对 …

黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)

自从Discuz被腾讯这头大牛收购后的确越来越强大了&#xff0c;云平台是最大的亮点&#xff0c;但是Discuz X2.0在伪静态方面仍然非常不尽人意。目前世面主流的论坛程序phpwind和Discuz都无法做到全站完美伪静态&#xff0c;这对SEO影响很大&#xff0c;如果网站的权重不够高&am…