随着用户访问量的不断增加,网站的后台也会不断变化以应对需求。本文主要从一个小型网站到大型网站的过度与变化来陈述。

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宕机之后,slavedb可以立即启用。所以这样做有以下好处:

(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://blog.csdn.net/longxibendi/article/details/6628480

作者:凤凰舞者 qq:578989855

转载于:https://blog.51cto.com/coolfire/830563

大型网站后台架构的演变相关推荐

  1. 大型网站后台架构的Web Server与缓存

    1.1 Web server Web server 用来解析HTTP协议.当web服务器接收到一个HTTP请求时,会返回一个HTTP响应,例如送回一个HTML页面.为了处理一个请求,web服务器可以响 ...

  2. 读书笔记之 大型网站技术架构(核心原理与案例分析)

    前言 坚持看了十几天的书,终于完成了毕业后第一次静下心来,利用业务时间看书并做笔记的成就了.废话不多说,这回看的是一直很膜拜的李智慧大神写的大型网站技术架构-核心原理与案例分析. 简短的读后感 极其推 ...

  3. 大型网站技术架构 笔记

    大型网站架构演化 特点: 高并发.大流量 高可用 海量数据 用户分布广泛.网络情况复杂 安全环境恶劣 需求快速变更.发布频繁 渐进式开发 演化发展历程 0. 演变原因     在现有架构下,我们来看看 ...

  4. 《大型网站技术架构》《K8S进阶实战》等书籍!送45本!读完工资多个0!

    学习如逆水行舟,不进则退.所以又来给各位读者送书了,这次送45本技术书,内容涉及深度学习.Python.Dubbo.Flutter等. 感谢本次活动的赞助商『电子工业出版社博文视点』 另外!急于购书的 ...

  5. 【面试精选】关于大型网站系统架构你不得不懂的10个问题

    该文已加入笔主的开源项目--JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址:github.com/Snailclimb/- .觉得不错的话,记得点个Star. ...

  6. 51CTO专访人人网黄晶:SNS网站后台架构探秘

    [51CTO独家专访]51CTO在此之前报道过一篇名为<世界最大的PHP站点 Facebook后台技术探秘>的文章,让我们了解到Facebook是如何保证5亿用户的系统一直保持稳定.可靠运 ...

  7. 大型网站系统架构演化之路(转)

    前言 一个成熟的大型网站(如淘宝.京东等)的系统架构并不是开始设计就具备完整的高性能.高可用.安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式.技术架构.设计思 ...

  8. 大型网站系统架构分析--转

    大型网站系统架构分析 原文地址:http://www.cnblogs.com/Mainz/archive/2009/04/28/1445424.html 千万级的注册用户,千万级的帖子,nTB级的附件 ...

  9. 大型网站系统架构演化之路

    前言 一个成熟的大型网站(如淘宝.京东等)的系统架构并不是开始设计就具备完整的高性能.高可用.安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式.技术架构.设计思 ...

最新文章

  1. MSF for CMMI Process Improvement项目体验: Work Items : Requirement (更新版)
  2. Java项目开发全程实录pdf
  3. 工程用计算机是什么样子的,【2人回答】学软件工程的应该买什么样的处理器电脑?-3D溜溜网...
  4. Kafka消息压缩与解压
  5. java中soo_soo_ - SegmentFault 思否
  6. 虚拟化软件Xen的简单应用
  7. Anaconda 国内镜像源整理
  8. 一个拼凑sql,输出变量的 存储过程
  9. VS2012 无法启动IIS Express Web服务器的解决方案
  10. Java Scheduler ScheduledExecutorService ScheduledThreadPoolExecutor示例
  11. 信息系统综合知识二 信息化基础知识
  12. 【原创】ESXI获取虚拟机的moid,并使用VMRC登录远程虚拟机
  13. Android控件 TabHost,Android控件之TabHost用法实例分析
  14. 【国内首套H3C V7交换机实战课程-1】Comware V7使用、维护与管理-王达-专题视频课程...
  15. 谷“哥”性丑闻还要对谷姐性侵犯?
  16. php publish,Laravel执行php artisan vendor:publish卡住问题解决方法
  17. 实现60fps的网易云音乐首页
  18. phpcms下载页直接显示下载真实地址方法
  19. 矩阵的模的平方matlab,matlab求矩阵、向量的模
  20. 一张小学二年级的请假条

热门文章

  1. 将 gitblog 的博客内容搬迁到 CSDN
  2. 1.5-1.6 oozie部署
  3. (转)MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验...
  4. Redhat 6.2安装Oracle 11gclient及遇到的问题分析
  5. ipython notebook笔记(待续)
  6. Lucene.Net 精品教程
  7. 现有工程项目上加响应式
  8. 12个开源后台管理系统
  9. linux 怎么删除大文件,如何在Linux中删除超大的(100-200GB)文件
  10. matlab神经网络工具箱创建神经网络,matlab神经网络工具箱创建神经网络