文档章节

大型网站后台架构的演变

Yomut
 Yomut
发布于 2015/06/25 15:34
字数 1263
阅读 199
收藏 3
随着用户访问量的不断增加,网站的后台也会不断变化以应对需求。本文主要从一个小型网站到大型网站的过度与变化来陈述。

  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://blog.csdn.net/dinglang_2009/article/details/6863701

Yomut
粉丝 19
博文 191
码字总数 167789
作品 0
厦门
后端工程师
私信 提问
架构学习资料汇总

知名网站架构分析 探索Google App Engine背后的奥秘(1)–Google的核心技术 探索Google App Engine背后的奥秘(2)–Google的整体架构猜想 探索Google App Engine背后的奥秘(3)- Google App Eng...

peter8015
2016/04/22
302
0
学习“大型网站系统架构”读书清单

大型分布式网站架构设计与实践(陈康贤 著); 大型网站技术架构:核心原理与案例分析(李智慧 著); 分布式Java应用基础与实践(林昊 著); 企业应用架构模式(Martin Fowler 著); 大型...

isam
2016/04/11
56
0
大型网站框架的演变

来自Ackarlix博客: http://www.ackarlix.com/2010/12/02/398 之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变...

Ackarlix
2010/12/02
2.5K
18
各大互联网公司架构演进之路汇总

大型网站架构演化历程 大型网站架构技术一览 Web 支付宝和蚂蚁花呗的技术架构及实践 支付宝的高可用与容灾架构演进 聚划算架构演进和系统优化 (视频+PPT) 淘宝交易系统演进之路 (专访) ...

星逝流
2016/02/16
561
3
我也要谈谈大型网站架构之系列(1)——纵观历史演变(上)

我也要谈谈大型网站架构之系列(1)——纵观历史演变(上)   我们知道一个网站都是随着业务的发展,逐渐演变成几万服务器,几亿用户数的大型网站,经历了若干年,甚至上十年的 发展成为大...

蜗牛奔跑
2015/06/25
16
0

没有更多内容

加载失败,请刷新页面

加载更多

对比ubuntu与centos系统 ​​​​

CentOS与Ubuntu该如何选择,哪个更好用。笔者在自媒体平台收集了一些网友的观点,较为经典,分享给大家。至于应该选择哪个,希望看完本文章后,读者心中有数。 观点1:CentOS适用于服务器,U...

老孟的Linux私房菜
今天
12
0
Java的基本类型

一、Java的基本类型 Java的基本类型有哪些? boolean char byte short int long float double ? 延伸思考 思考一:为什么有的书籍说Java存在第9种数据类型? 实际上,JAVA中还存在另外一种基...

yumoop
今天
14
0
OSChina 周四乱弹 —— 富婆小时候

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @猿敲月下码 :#今日歌曲推荐# 分享陈慧娴的单曲《夜机》 《夜机》- 陈慧娴 手机党少年们想听歌,请使劲儿戳(这里) @開源中國張學友 :早上...

小小编辑
今天
23
0
MyMinimad ── Linux下用libmad写的mp3解码播放程序(四)

优化了内存使用,不再使用mmap映射整个文件到内存 /* * 本程序是从 minimad 改进而来,如要更详细的说明请参看 minimad.c * * Gu Zhou, 2009/12/25, SiChuan University, China *...

代码强国
今天
18
0
Minikube安装

1、下载Minikube二进制文件 sudo curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/latest/minikube-linux-amd64 2、设置权限 sudo chmod +x minikube......

RogueQ
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部