【读书笔记】大型网站的架构演化,发展历程

news/2024/5/11 2:51:10/文章来源:https://blog.csdn.net/u013628152/article/details/51579338

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

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

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

大型网站软件系统的特点:
(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_782910.aspx

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

相关文章

如何根据关键字搜索网站中的内容_泉州机械企业网站建设,企业OA定制开发

链改(杭州)科技有限公司为您详细解读Fzxdzj泉州机械企业网站建设的相关知识与详情,企业正在网站成立之前要理解一些根本的常识才气够动手工做,要否则两眼一摸黑,没有心理筹办,但是正在网站建立之前应该理解到哪些常识呢&#xff1…

asp 退出登录修改cookie能进入后台_技术宅是如何通过Session和cookie记录你在网站的行为...

Session是什么用途Session可以记录用户的登录与行为数据,即记录下用户目前访问服务器上的那些内容,状态是什么,而考虑到这些数据用户修改的随意性很大,并没有必要直接存储在数据库中。在用户执行刷新操作时,即再次访问…

免费建站系统,Joomla 3.9.5发布

Joomla 3.9.5现已推出。这是针对3.x系列Joomla的安全修复程序版本,它解决了三个安全漏洞,包含20多个错误修复和改进。什么是3.9.5? Joomla 3.9.5包含三个安全漏洞修复程序以及一些错误和改进,包括: 安全问题已修复 低优…

从入侵到变现——“黑洞”下的黑帽SEO分析

概述 由于互联网入口流量主要被搜索引擎占据,网站在搜索引擎中的排名直接影响到市场营销效果,因此SEO服务应运而生。SEO(Search Engine Optimization)全称为搜索引擎优化,是指利用搜索引擎的规则提高网站在相关搜索引擎内的自然排名。SEO服务…

网站访问慢跟80端口_网站访问慢的原因

很多朋友在访问网站时候遇到了访问慢,或者网站打不开的问题。导致浏览不舒适,想看的内容又看到。这是什么原因造成的呢?网站不能访问或者网站范围速度慢有以下几种原因造成,如何处理解决1、网站的空间质量。每个网站都必须有空间载…

大型网站技术架构(四)网站的高性能架构

2019独角兽企业重金招聘Python工程师标准>>> 网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。 1、性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时…

HTML标记中存在h1到h7吗,利于SEO优化的H1标签使用规范

原标题:利于SEO优化的H1标签使用规范H1标签是通过网站Html代码内容优化提示,来引起搜索引擎的注意,有着一定的使用意义和注意事项,那么如何操作才能利于SEO优化呢?一.H标签定义:网上的定义很多,…

SEO–关于如何通过利用流量精灵刷百度排名及排名原理~

SEO– 关于如何通过利用流量精灵刷百度排名及排名原理这个是昨天打算开启的实验&#xff0c;实验主要是以多个排名较低&#xff08;<10&#xff09;关键词来进行&#xff0c;其中有以下四个关键词&#xff1a;七七、部落格、七七空间、七七电视。 搜索页面&#xff1a; 七七…

编程竞赛和逻辑谜题网站大集合:

编程竞赛和逻辑谜题网站大集合 我们都知道&#xff0c;每天的编程生活可能有时候会有些乏味。 看这个&#xff1a; Joanna: Peter&#xff0c;你在哪工作呢&#xff1f; Peter: Initech. Joanna: 在哪……&#xff1f;好吧&#xff0c;你在那里做什么呢&#xff1f; Peter: …

开发小白也毫无压力的hexo静态博客建站全攻略

文章目录基本原理方法1 - 本机Windows下建站 (力荐)下载安装node.js用管理员权限打开命令行&#xff0c;安装hexo-cli和hexo初始化hexo使用hexo generate生成静态资源在本地运行hexo&#xff0c;看一切是否正常在Coding.net创建与用户名相同的项目&#xff0c;并启用代码的page…

使用Varnish代替Squid做网站缓存加速器的详细解决方案

使用Varnish代替Squid做网站缓存加速器的详细解决方案 [文章作者&#xff1a;张宴 本文版本&#xff1a;v1.2 最后修改&#xff1a;2008.01.02 转载请注明出处&#xff1a;http://blog.s135.com]我曾经写过一篇文章──《初步试用Squid的替代产品──Varnish Cache网站加速器》…

windows下安装使用svn管理网站开发项目

svn是一个版本控制系统&#xff0c;其前身是cvs。所谓版本控制系统&#xff0c;就是能在一个数据库中记录开发阶段的每个开发版本&#xff0c;和所有文件的修改历史。这个功能是很有用的&#xff0c;它使得追溯代码的修改和软件的演进过程成为可能。 本文仅涉及在windows本机使…

电脑打开网页很慢_影响网站打开速度哪些,影响网站打开速度的因素有哪些?...

原标题&#xff1a;影响网站打开速度哪些&#xff0c;影响网站打开速度的因素有哪些&#xff1f;其实会影响到网站打开速度的因素有很多&#xff0c;并且每一项对网站打开速度的影响都不是很大&#xff0c;但是久而久之影响网站打开速度的因素越来越多&#xff0c;也就导致网站…

[CTO札记]SNS蜂巢模型,及其在内容型网站的应用型态

一、原始模型SNS有个典型的Honeycomb模型&#xff0c;将7个要素列举出来&#xff08;如下图&#xff09;。二、模型要素变更窃以为‘状态’要素并不合理&#xff0c;因为太窄。如果将‘状态’替换成更泛化的‘内容/信息’也许更好。三、应用于内容型网站也许大家认为SNS的内容/…

资讯交流网站设计与实现_企业公司官网如何设计建设

随着互联网的发展&#xff0c;企业对自己的官网也越来越重视&#xff0c;企业官网也逐渐成了企业中必不可少的重要一部分&#xff0c;而企业官网又可以细分为几种类型&#xff0c;不同的企业可以根据自身的业务需求开发不同类型的企业官网&#xff0c;为了让企业能够更好地定位…

35网站首页全方位优化过程分享

文章出处&#xff1a;http://ui.35.com/2009/08/10/35oz/一直以来我们都在寻找提高网站访问性能的方法&#xff0c;日益庞大的内容和页面效果使我们的网站越来越臃肿&#xff0c;速度越来越慢。有没有什么办法能有效的解决这个问题呢&#xff1f;答案是肯定的。下面是对我们公司…

一个利用ISA2006发布自己做的一个网站报错记录

1.客户在IIS6里面新建网站&#xff0c;在内部浏览到网页正常。2.透过ISA发布后&#xff0c;发现无法打开&#xff0c;报错。3.解决方法&#xff1a;发布规则中&#xff0c;侦听器--身份验证---高级----允许通过HTTP进行客户端身份验证。

大仕途网站 资源不能下载

大仕途网站&#xff0c;大多数资源&#xff08;电子书&#xff09;都不能下载&#xff0c;我不说他是骗子&#xff0c;我只是实事求是地说出我的经历。希望给看到的人一点建议&#xff0c;是不是骗子自己判断吧&#xff01; 大仕途网址&#xff1a; http://www.dashitu.com/ 我…

ZXTM专题二:使用ZXTM用自建ssl证书实现网站的https协议访问

可能一些网站的二级域名涉及交易,用户信息等敏感重要信息,所以建议使用https协议替代传统的httpd,我这里使用了负载均衡ZXTM来做这件事情. 1 创建公钥,私钥,证书 习惯借用linux下的openssl工具,zxtm也可以创建相应东东: [rootdongwm conf]# openssl genrsa -des3 1024 > ser…

网站后台管理无法登陆------inetinfo.exe进程占用CPU达100%

收到到来自山东的消息说系统出现问题,问题的表现是后台无法登陆. 步骤如下: 1 开始进行网络测试,通过Ping服务器IP时进行测试发现网络没有问题,而当ping后台管理网址的时候ping不通,数据包全部丢失.2 随后远程控制服务器,通过IIS进行浏览也不可以登陆后台.不过后来仔细观察发现…