大型网站架构 - 1.架构的演变过程
1. 第一阶段:单服务器架构
这一阶段是我们的起步阶段,比如我们创业的时候刚购买了一台云主机。
在这一阶段,为了节约成本,我们将所有的应用程序,数据库,文件全部放在这台服务器上。
然后,CPU或者内存的成本在开发阶段也使用最小能接受的成本,然后开始我们的服务器开发之路。
2. 第二阶段:应用服务和数据服务分离
随着网站的第一次上线,我们的网站如果运营得不错的话,在这之后应该会逐渐积累人气,业务
也会随着人气的发展而进一步发展。
这个时候,1台服务器显然不能满足需求了,越来越多的用户访问导致性能变差,与此同时,数据也逐渐
变多,我们考虑增加硬盘。
这个时候,首先想到的就是:将应用和数据分离
于是,网站架构变成3台服务器:应用服务器(Web Server), 文件服务器(Resource Server), 数据库服务器(Database Server)
对于3台服务器的配置要求不太一样:
Web Server: 需要处理大量的业务,需要更快的CPU。
Database Server: 需要快速检索数据和存放更多的数据,需要更大更快的硬盘,硬盘最好也是固态硬盘为主。
Resource Server: 需要存放用户上传的文件,如照片,视频等等,需要更大的硬盘,硬盘大一点,但是普通硬盘即可。
3. 第三阶段:使用缓存改善网站性能
网站业务遵循二八原则,80%的业务集中在20%的数据上。
因此,如果把这一小部分数据缓存起来,就可以i暗哨数据库访问的压力。
在初始阶段可以使用一些本地服务器的内存缓存,随着业务的扩展,
可以增加远程分布式的缓存服务器,应用一些成熟的框架,如: Redis
4. 第四阶段:应用服务器集群增加并发处理能力
集群已经显然成为现代网站处理高并发,海量数据的常规手段。
当1台服务器性能不足时,我们首先考虑的不应当是更换强大的服务器,而是应该增加服务器。
这个时候,我们的架构中应该引入负载均衡调度服务器,然后请求经过负载均衡服务器,分发到位于集群上的各个
应用服务器。
5. 第五阶段:数据库读写分离
缓存并不能解决所有的数据库问题,仍有很大一部分数据由于某些原因(缓存不命中,缓存过期)需要访问数据库。
通过设置数据库的主从备份结构,可以将主数据库的数据同步更新到另外的数据库上。
从而架构改为,将数据写入主数据库,而从数据库负责读取数据。
6. 第六阶段:使用反向代理和CDN加速网站响应
CDN和反向代理的基本原理都是缓存。
区别:
CDN部署在网络提供商的机房,用户可以从距离自己最近的网络提供商机房获取数据。
反向代理部署在网站的中心机房。
7. 第七阶段:使用分布式文件系统和分布式数据库
数据库需要进行拆分,拆分一般根据业务进行拆分,
将不同的数据库部署在不同的物理服务器上。
再进一步,我们可以引入NoSql和搜索引擎。
大型网站架构 - 1.架构的演变过程相关推荐
- Mysql在大型网站的应用架构演变
原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/ 本文链接地址: Mysql在大型网站的应用架构演变 本文已经被多处转载,包括CSDN推荐以及码农周刊等等, ...
- [转]Mysql在大型网站的应用架构演变
原创文章,转载请注明: 转载自http://www.cnblogs.com/Creator/ 本文链接地址: Mysql在大型网站的应用架构演变 写在最前: 本文主要描述在网站的不同的并发访问量级下 ...
- 【推荐】大型网站图片服务器架构的演进
构建在Windows平台之上的网站,往往会被业内众多架构师认为很"保守".很大部分原因,是由于微软技术体系的封闭和部分技术人员的短视造成的.由于长期缺乏开源支持,所以只能" ...
- 说说大型网站可伸缩性架构的设计原理
可伸缩性架构指的是:不改变网站的软硬件设计,只通过改变部署的服务器数量就可以扩大或缩小网站的服务处理能力. 大型网站中的 "大型",可以表现在以下几个方面: * 用户方面 - 大量 ...
- 大型网站服务器的架构
随着用户访问量的不断增加,网站的后台也会不断变化以应对需求.本文主要从一个小型网站到大型网站的过度与变化来陈述. 1.1 网站后台架构 主要指由web server .应用服务器.数据库.存储.监控等 ...
- 图说大型网站的技术架构
一.大型网站的软件系统的特点 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 二.大型网站的架构演化发展历程 1.初始阶段的网站架构 最 ...
- 三:大型网站的核心架构要素
2019独角兽企业重金招聘Python工程师标准>>> 需要关注性能.可用性.安全性.伸缩性,可扩展性五个要素 性能: 浏览器端可以浏览器缓存,启用gzip,但是这样会增加CPU的压 ...
- 互联网高级架构师用4000字带你把大型网站的业务演变过程给讲明白
大型网站业务和架构的发展 虽然说大型网站的内部非常复杂,理解大型网站架构也是一件非常困难的事情,但是技术终究是问题驱动的,某个特定的技术在一开始就是为了解决某个特定的问题或实现某个特定的想法而生的. ...
- 大型网站采用什么系统架构保证性能稳定性
from http://www.bobd.cn/design/web/Theory/200904/31145.html 千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用 ...
- 【面试精选】关于大型网站系统架构你不得不懂的10个问题
该文已加入笔主的开源项目--JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址:github.com/Snailclimb/- .觉得不错的话,记得点个Star. ...
最新文章
- 马云自嘲只会用电脑收发邮件,网友:马老师的话,听听就行了
- CISCO 组播RPF 逆向路径转发 实验原理
- 学会python之后-python学会基础语法之后,如何提高?
- 澳洲 计算机 本科学费,澳大利亚墨尔本大学一年学费和生活费清单
- [BUUCTF-pwn]——picoctf_2018_buffer overflow 2
- 06.full_text multi_match查询
- [转载] Java中变量与常量
- java、python什么意思_Python为什么叫Python,Java又如何而来?
- 两个小块随鼠标拖动_html,类练习
- c语言输入n打印数字菱形,打印数字菱形,急啊,帮帮小女子啊。。。
- python运行界面黑色_selenium+python 去除启动的黑色cmd窗口方法
- 29th, Dec 2011 求人不如求己
- python入门教程(非常详细)-Python超详细入门教程(上)
- DICM(DICOM), IMA 医学图像 预处理 调窗(window-leveling)
- Apache Shiro框架简介
- LaTex图表中英文标题,中英文图表目录2
- 首页推荐流支持快捷修改兴趣标签,问答支持展示gif【2021.11.8】
- MATLABSTM32CubeMX联合开发系列——不用手写一行代码就能实现CAN通讯
- 放松跑、间歇跑、节奏跑和LSD
- Xilinx IDELAYCTRL
热门文章
- Color types not allowed (at ‘drawable’ with value ‘#f0f0f0’)
- 【Angular】MVVM
- 关键字—final static const的区别
- HBase—基础介绍
- (一)git简介及安装
- python文件处理系列(二):Excel文件读取库xlwings
- WPF控件自定义样式(FasControls)
- 用maven搭建 testNG+PowerMock+Mockito测试框架
- java---面试题 丑数
- ajax图片上传(asp.net +jquery+ashx)