《大型网站技术架构:核心原理与案例分析》——大型网站架构演化过程

news/2024/5/20 15:48:16/文章来源:https://blog.csdn.net/benhuo931115/article/details/78368543

大型网站软件系统的特点

  • 高并发,大流量
  • 高可用
  • 海量数据
  • 用户分布广泛,网络情况复杂
  • 安全环境恶劣
  • 需求快速变更,发布频繁
  • 渐进式发展

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

初始阶段的网站架构

<img jia_000>

Linux+PHP+Apache+MySQL

应用服务和数据服务分离

  • 演化原因

    一台服务器逐渐不能满足需求,越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足

  • 演化后

    应用和数据分离后整个网站使用三台服务器

    • 应用服务器:需要更快更强大的CPU处理大量的业务逻辑
    • 文件服务器:需要更大的硬盘存储大量用户上传的文件
    • 数据库服务器:需要更快的硬盘和更大的内存进行快速磁盘检索和数据缓存

<img jia_001>

使用缓存改善网络性能

  • 演化原因

    大部分的业务访问集中在一小部分数据上,把这一小部分数据缓存在内存可以减少数据库的访问压力,提高整个网站的数据访问速度

  • 演化后

    网站使用的缓存可以分为两种

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

<img jia_002>

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

  • 演化原因

    当一台服务器的处理能力、存储空间不足时,应该增加一台服务器分担原有服务器的访问及存储压力

  • 演化后

    通过负载均衡调度服务器,可将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈

<img jia_003>

数据库读写分离

  • 演化原因

    在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈

  • 演化后

    利用数据库的主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上,实现数据库读写分离,从而改善数据库负载压力

    应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据

    应用服务器端应使用专门的数据访问模块,使数据库读写分离对应用透明

<img jia_004>

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

  • 演化原因

    不同地区的用户访问网站时,速度差别极大,为了提供更好的用户体验,需要加速网站访问速度

  • 演化后

    使用CDN和反向代理尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力

    • CDN:CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据
    • 反向代理:部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户

<img jia_005>

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

  • 演化原因

    单一服务器满足不了大型网站持续增长的业务需求,需要使用分布式数据库和分布式文件系统

  • 演化后

    将数据库拆分,把不同业务的数据库部署在不同的物理服务器上

<img jia_006>

使用NoSQL和搜索引擎

  • 演化原因

    随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂

  • 演化后

    采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎

<img jia_007>

业务拆分

  • 演化原因

    大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,如大型购物交易网站就会将首页、商铺、订单、买家、卖家等拆分成不同的产品线,分归不同的业务团队负责

  • 演化后

    根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署维护,应用之间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发

<img jia_008>

分布式服务

  • 演化原因

    随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难

  • 演化后

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

<img jia_009>

淘宝网的架构演化

2003年 LAMP架构

<img jia_010>

2004年 转向Java+Oracle

<img jia_011>

2006年

<img jia_012>

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

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

相关文章

用户行为分析大数据系统(实时统计每个分类被点击的次数,实时计算商品销售额,统计网站PV、UV )

Spark Streaming实战对论坛网站动态行为pv&#xff0c;uv&#xff0c;注册人数&#xff0c;跳出率的多维度分析_小强签名设计 的博客-CSDN博客_spark streaming uv 实时统计每天pv,uv的sparkStreaming结合redis结果存入mysql供前端展示 实时统计每天pv,uv的sparkStreaming结合…

机器学习(三)-- KNN(K近邻分类算法)、电影分类、改进约会网站的配对效果

决策树< 朴素贝叶斯< KNN K近邻算法&#xff1a;根据距离来做排序&#xff0c;距离哪些同类的数据比较近则属于哪一类 &#xff08;1&#xff09;从计算结果直观上来看&#xff0c;在这三种算法中&#xff0c;KNN算法的计算准确率普遍较高&#xff0c;且kNN算法在训练数…

【大型分布式网站】抗住千万流量的大型分布式系统架构设计

一、大型分布式网站架构技术 1.1 大型网站的特点 用户多&#xff0c;分布广泛 大流量&#xff0c;高并发 海量数据&#xff0c;服务高可用 安全环境恶劣&#xff0c;易受网络攻击 功能多&#xff0c;变更快&#xff0c;频繁发布 从小到大&#xff0c;渐进发展 以用户为中…

基于服务器的个人博客网站搭建

网站搭建 目录 网站搭建 A1 基础 A2 域名 2.1 域名解析 2.2 添加记录 2.2 域名备案 A3 ECS云服务器搭建博客 3.1 安全组添加8888端口 3.2 安装宝塔 3.3 访问网站&#xff0c;登录宝塔 3.4 安装wordpress 3.5 配置wordpress 3.6 进入后台 A4 问题 4.1 关于访问公…

网站备案后没有找到站点

A1 问题&#xff1a; A2 原因&#xff1a; 您没有将此域名或IP绑定到对应站点!配置文件未生效! A3 解决&#xff1a; 检查是否已经绑定到对应站点&#xff0c;若确认已绑定&#xff0c;请尝试重载Web服务&#xff08;大部分是这个问题&#xff0c;添加对应站点和开放端口&am…

linux一键卸载安装脚本,在使用LANMP Linux一键包卸载安装网站服务器要注意的事情...

前言之前在某个论坛里看到了一个关于Nginx如何限制并发的问题&#xff0c;也知道一些朋友也对博客做了一些访问限制(各种什么Js验证、cookie验证&#xff0c;还加了个Fail2ban什么的)然后觉得自己的博客很稳&#xff0c;恩&#xff0c;可能&#xff0c;也许&#xff0c;大概………

个人网站www.pixysoft.net设计系列: 数据库同步的思考

个人网站www.pixysoft.net设计系列: 数据库同步的思考Introduction:本网站使用WebService进行远程网站管理.因此有数据同步的问题表结构设计 说明:网站管理分为本地数据库(如上图设计)和网站数据库. 通过本地数据库管理网站数据库..SiteMapContent保存导航文件.WebPageInfo保存…

使用Web标准建站

使用Web标准建站第1天:选择什么样的DOCTYPE 前言 大家好&#xff01;这个系列文章是按阿捷自己制作这个站点的过程编写的。之前阿捷也一直没有制作过一个真正符合web标准的网站。现在边参考国外资料边制作&#xff0c;同时把过程中的心得和经验记录下来&#xff0c;希望对大家有…

一步一步SharePoint 2007之二十一:解决实现注册用户后,自动具备访问网站的权限的问题(3)——创建用户...

摘要  本篇文章将记录如何解决实现注册用户后&#xff0c;自动具备访问网站的权限的第三部分。   前面各项准备工作都做完了&#xff0c;现在我们就来进行解决实现注册用户后&#xff0c;自动具备访问网站的权限的最后一步设置吧&#xff01;正文  下面将记录每一步的实现…

[电子商务网站设计] 之 Passport

从所承担的功能上来说&#xff0c;Passport 是一个系统级别的服务&#xff0c;而不仅仅用来进行用户管理。对于任何一个网站而言&#xff0c;随着业务的发展&#xff0c;多业务的网站群整合不可避免&#xff0c;那么作为整合的通道之一&#xff0c;用户数据共享自然就是一个关键…

[CSS]30种时尚的CSS网站导航条

【原文地址】&#xff1a;http://coolshell.cn/?p562 我想&#xff0c;大家在上网的时候一定见过很多很多种各式各样的网站导航条的设计。这些导航条基本上来说都是用CSS来做的。这里&#xff0c;我们将向你介绍几种最不错的用CSS设计的网站导航条。希望你会喜欢。 1. The Men…

用python爬取网页内容_用python爬取网页文本内容,让你快速浏览网站内容

大家好&#xff0c;我是咿哑呀。今天我教大家学习网络爬虫&#xff0c;这个爬虫能够爬取网页文本内容&#xff0c;提高大家浏览网页的速度。下面我把代码贴出&#xff0c;大家仔细研究&#xff1a;from urllib import request, parsefrom urllib.parse import quoteimport stri…

python语言的主要网站是_TIOBE:2018年度编程语言 Python八年后重登王座

2003-2018 年度最佳编程语言&#xff1a;可以看到&#xff0c;Python 上一次获得此荣誉&#xff0c;是在 2010 年。 其他值得关注的变化还有&#xff1a; MATLAB —— 从第 18 名升至第 11 名 Kotlin —— 从第 39 名升至第 31 名 Rust —— 从第 46 名升至第 33 名 Julia ——…

网站变成灰色

昨天是4月4日清明节&#xff0c;全国都在为抗击疫情&#xff08;新冠肺炎&#xff09;做斗争牺牲的烈士和逝世的同胞哀悼&#xff0c;各大网站都会让自己的网站的全部网页变成灰色&#xff08;黑白色&#xff09;&#xff0c;以表示我们对逝者的悼念。当然&#xff0c;今天已经…

网站企业信息查询

1. 站长工具 2. 爱站网 3. ICP备案查询 4. 公安备案查询 5. 企业查询 站长工具中的【星网大数据】 全国组织机构统一社会信用代码公示查询平台 爱企查 天眼查

web developer tips (84):在Visual Web Developer中设置web网站的起始页

原文地址&#xff1a;How to set a Start page for your Web Site in Visual Web Developer? 如果你正在开发网站&#xff0c;为了测试网站你想启动某个特定的网页。默认的情况下&#xff0c;当你启动调试的时候&#xff0c;Visual Studio 2008运行的页面是设计器中当前激活的…

ajax nginx 转发 sessionid_教你快速使用nginx部署网站

前言如果服务器只需要放置一个网站程序&#xff0c;解析网站到服务器的网站&#xff0c;网站程序监听80端口就可以了。如果服务器有很多应用&#xff0c;借助nginx不仅可以实现端口的代理&#xff0c;还可以实现负载均衡。本文将详细介绍前端及nodeJS项目在服务器配置时需要用到…

谈谈互动型网站中垃圾贴的应对方案

在互动型网站中常常会受到垃圾贴的困扰。我分享一点个人在垃圾贴处理方面的一点心得&#xff1a; 要处理垃圾贴必然需要分析垃圾贴的特征1. 在内容上垃圾贴通常会带有一个固定域名的外部链接&#xff0c;或者带有QQ号码&#xff0c;手机号码&#xff0c;或者重复内容&#xff1…

python爬虫登录网站_Python爬虫模拟登录带验证码网站

爬取网站时经常会遇到需要登录的问题&#xff0c;这是就需要用到模拟登录的相关方法。python提供了强大的url库&#xff0c;想做到这个并不难。这里以登录学校教务系统为例&#xff0c;做一个简单的例子。 首先得明白cookie的作用&#xff0c;cookie是某些网站为了辨别用户身份…

vue企业网站模板_什么样的模板是高端企业网站模板?

要建立一个高端的企业网站&#xff0c;不管是哪种行业的企业网站&#xff0c;建立高端网站办法就是定制网站了&#xff0c;但除了定制网站&#xff0c;还有一种方法就是&#xff0c;使用高端的企业网站模板建站&#xff0c;通过对网站模板的修改达到建站目的。但是要找到一款高…