大型网站后台架构的演变

news/2024/5/12 3:28:31/文章来源:https://blog.csdn.net/dinglang_2009/article/details/6863701
随着用户访问量的不断增加,网站的后台也会不断变化以应对需求。本文主要从一个小型网站到大型网站的过度与变化来陈述。

  1.1 网站后台架构

  主要指由web server 、应用服务器、数据库、存储、监控等组成的网站后台系统。

  1.2 架构演变

  个人站点后台架构。如图2-1所示。

图2-1 单台一组

  如图所示,如果是个人站点,访问量不大,一般都是将web server、应用服务器、数据库部署在一台物理服务器上。从图中也可以看到,一个网站最基本的后台需要web server、应用服务器、数据库三部分组成。

  1.2.1 网站架构的进一步演变

  考虑到网站访问量的不断增加,网站的后台架构也必须不断调整和优化,进一步实现功能分离。特别是随着访问量不断增加以及考虑到数据库的负载和数据的重要性,数据库需要分离出来。从web server到数据库实现各个层次的负载均衡。

  1.2.1.1 数据库功能分离,数据库单台部署

  考虑到数据库的安全性和处理性能,数据库单台部署。如图2-2-1-1所示。

图2-2-1-1 数据库分离

  如图所示,数据库与web server 、应用服务器分离出来,单台部署。这样做有两个好处:

  (1)数据库服务器性能提高,不再和webserver 、应用服务器抢占资源。

  (2)数据库服务器安全性能提高,不会因为一台服务器宕机而影响所有服务,特别是数据库服务。

  1.2.1.2 前端负载均衡部署,用于缓解单台web server压力

  随着访问量的不断增加,单台web server 负载会加大,甚至有宕机的危险,所以需要在前端增加负载均衡器,实现web server层的负载均衡。缓解压力。如图2-2-1-2所示。

2-2-1-2 前端负载均衡

  如图所示,通过增加web server并用负载均衡器(load balance)来缓解前端的web server和应用服务器压力。并且,为了保证数据库的绝对安全,做了Master-Slave主从备份。这样当master db宕机之后,slave db可以立即启用。所以这样做有以下好处:

  (1) 前台web server 和 应用服务器压力减少,负载均衡器分流负载。

  (2) 后端数据库安全性加强,出现故障后,业务可以很快切换到slave db 上。

  1.2.1.3 增加缓存及数据库读写分离

  随着访问量的不断增加,发现整个系统的读写比例很大,对用户而言,读操作多于写操作,而且比例很大,这就需要进一步改善架构,实现读写分离。

  通过增加db proxy,实现读写分离。如图所示,2-2-1-3。

图2-2-1-3

  考虑到读写比例大的特点,如图2-2-1-3所示,通过增加db proxy,以及master-slaves ,实现读写分离,所有写操作在master db上进行,所有读操作在其他slave dbs 上进行,这样做有以下好处:

  (1) 缓解单台db的压力,减少单台db的负载

  (2) 增加多个slave,当master db宕机之后,可以很快切换到slave 上,减少所有db同时宕机的风险。

  很多用户访问,读与写操作比例很大,如图2-2-1-3所示,通过在web server层上增加缓存,可以提高访问速度。比如可以缓存css、jpg等静态文件。

  增加缓存有两个好处:

  (1) 加快用户的读请求访问速度。

  (2) 缓解web server的压力。

  1.2.1.4 解决单点故障问题,增加在线备份设备(交换设备和服务器)

  虽然上述几个架构图,从各个层面缓解了服务器压力,但是,还是存在当点故障的可能性。如果出现单点故障,没有在线物理设备提供使用,那该系统也不是一个高可用的系统。针对上述问题,增加在线物理备份设备,解决单点故障问题,如图2-2-1-4所示。

图 2-2-1-4

  如图2-2-1-4所示,增加了负载均衡器的在线备用设备和db proxy在线备用服务器,这样做可以在负载均衡器出现故障的时候,启用在线备用设备;如果db proxy出现故障,也可以启用在线备用db proxy,实现故障转移。保证系统的高可用性。


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

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

相关文章

大型网站架构演变

今天我们来谈谈一个网站一般是如何一步步来构建起系统架构的,虽然我们希望网站一开始就能有一个很好的架构,但马克思告诉我们事物是在发展中不断前进的,网站架构也是随着业务的扩大、用户的需求不断完善的,下面是一个网站架构逐步…

网站高性能的核心优势该如何打造

导读:本文根据Jeff Atwood的博文《Performance is a Feature》整理编译而来。作者就如何创建高性能网站分享了一些经验。现整理出来与大家分享。很多数据表明,网页打开和下载的速度越慢,用户越不愿使用。 从Google搜索中可看出,当…

网站提高速度的13个简易规则

本文为译文,原文地址:http://www.codinghorror.com/blog/2007/08/yslow-yahoos-problems-are-not-your-problems.html YSlow: Yahoos Problems Are Not Your Problems I first saw Yahoos 13 Simple Rules for Speeding Up Your Web Site referenced in …

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

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

大型网站架构体系的演变(上)

互联网上有很多关于网站架构的各种分享,有些主要是从运维和基础架构的角度去分析的(堆机器,做集群),太关注技术细节实现,普通的开发人员基本看不太懂。 本文上篇将主要介绍大型网站基础架构的扩展&#xff…

大型网站架构体系的演变(下)

接着上篇的继续在做扩展满足了基本的性能需求后,我们会逐渐关注“可用性”(也就是我们通常听别人吹牛时说的SLA、几个9)。如何保证真正“高可用”,也是个难题。几乎主流的大中型互联网公司,都会有用到类似的架构&#…

细说缓存在大型网站架构中的应用

缓存的基本知识 在整个计算机体系构造中(无论是硬件层面还是软件层面),缓存都是无处不在的。 在计算机硬件构造中,由于两种介质的速度不匹配,高速介质在和低速介质交互时速度趋向低速方,这就导致了高速介质…

.net 调用其它网站第一次总是访问失败_大型网站核心架构之高可用(四)

网站可用性的度量与考核网站可用性度量 网站不可用也被称作网站故障,业界通常用多少个9来衡量网站的可用性,比如QQ的可用性是4个9,即QQ服务99.99%可用,这意味着QQ服务要保证其在所有的运行时间中,只有0.01%的时间不可用…

c++怎么从主网页中读取子网站_如何用C++写一个网站

1.前言用各种语言写过一些网站之后,我不禁开始好奇,C能不能写网站呢,实际上想到这个问题的时候,我就大致有了答案。本文中我们将尝试用C写一个简单的网站,探索一些细节性的问题,并报告用C写网站的体验如何。…

基于Springboot的大学生招聘网站系统

1.项目简介 1.1 系统研究背景 伴随着中国经济的飞速发展,城市化进程的加快,求职者队伍的不断壮大,传统人才招聘的弊端初露端倪。首先,传统人才应聘的形式是求职者和企业的负责人面对面地交流。这就需要企业和求职者提前规划自己…

Springboot+vue项目体用用品销售商城网站

摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,体用用品销售商城网站当然也不能排除在外。体用用品销售商城网站是以实际运用为开发背景,运用软件工程原理…

Springboot+vue项目点餐平台网站

文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springbootvue JDK版本:jdk1.8 本系统主要实现了管理员:首页、个人中心、用户管理、菜品分类管理、菜品信息管理、菜品评价管理…

Springboot+vue项目音乐网站与分享平台

文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springbootvue JDK版本:jdk1.8 音乐网站与分享平台的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中…

Springboot+vue前后端分离的租房网站

开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架:springbootvue JDK版本:jdk1.8 本系统有管理员;首页、个人中心、用户管理、房屋类型管理、房屋信息管理、预约看房管理、在线签约管理、租赁…

SpringBoot+vue实现前后端分离的宠物销售商城网站

开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 使用框架:springbootvue JDK版本:jdk1.8 本选题则旨在通过标签分类管理等方式,实现管理员:首页、个人中心、用户管理、商品分类管理、商品信息管理、订单评价管理、系统管理…

SpringBoot+vue实现前后端分离的垃圾分类网站系统

文末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 使用框架:springbootvue JDK版本:jdk1.8 本论文主要论述了如何使用JAVA语言开发一个垃圾分类网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S…

SpringMVC+Vue项目旅游资源网站

末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架ssmvue JDK版本:jdk1.8 前言介绍 旅游资源网站的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管…

SpringMVC+Vue项目中国风音乐推介网站

末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架ssmvue JDK版本:jdk1.8 前言介绍 近年来,随着我国经济的不断发展,平台的管理制度越来越多。每个音乐推介网站也都将通过计…

SpringMVC+Vue实现前后端的志愿者招募网站

末获取源码 开发语言:Java 开发工具:IDEA /Eclipse 数据库:MYSQL5.7 应用服务:Tomcat7/Tomcat8 使用框架ssmvue JDK版本:jdk1.8 前言介绍 志愿者招募的需求和管理上的不断提升,志愿者招募网站的潜力将无限扩大,志愿者招募网站在…

SpringBoot+Vue项目漫画网站

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…