码迷,mamicode.com
首页 > Web开发 > 详细

浅谈网站架构演变

时间:2019-03-07 00:53:09      阅读:290      评论:0      收藏:0      [点我收藏+]

标签: 用户    行数据    架构    搭建    vpc    apache    分享    分布式数据库    安全性   

浅谈网站架构

 

 

 

作为一个从事后台开发已经2年的程序员来讲,大部分时间都忙于业务逻辑分析,往往忽略了业务之上的架构层面的设计。

本文作为网站架构知识的补充,不仅开拓了眼界,也对以后的程序设计益处多多。下面我们就一起来看看网站架构的演变历史。

 

网站架构的演变大致分为如下几个阶段:

 

1

 

初始阶段的网站架构

网站在最初开始时没有太多人访问,用一台服务器就完全可以胜任,此时的网站架构如下图所示。

技术图片

应用程序,文件存储,数据库所有的资源都在一台服务器上。也就是经典的LAMP架构模型(Linux操作系统+部署在Apache上+MySql存储+PHP开发)。

 

2

 

应用服务和数据服务分离

网站有了越来越多的用户,不断增长的访问量导致网站性能越来越差,数据库存储空间也越来越不足,此时由初始架构演变为应用程序与数据服务分离的架构,如下图所示。

技术图片

各个服务器对硬件的资源要求各不相同:

  1. 应用服务器由于处理大量业务逻辑,因此需要更强大的CPU;

  2. 数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存;

  3. 文件服务器需要存储大量的文件,因此需要更大的硬盘。

 

3

 

缓存改善网站性能

网站访问也遵循二八定律:80% 的业务访问集中在 20% 的数据上。

既然大部分的业务访问集中在一小部分数据上,那么把这一小部分数据缓存在内存中,自然可以提高网站性能,加入缓存后的网站架构如下图所示。

技术图片

网站使用的缓存分为两种:

  1. 缓存在应用服务器上的本地缓存;

  2. 缓存在专门的分布式缓存服务器上的远程缓存。

那两者的区别有哪些呢?

本地缓存访问速度更快,但是受本地服务器内存限制,缓存数据有限。

远程分布式缓存一般使用集群的方式,部署大内存服务器作为专门的缓存服务器,可以理论上做到不受内存容量限制的缓存服务。

 

4

 

应用服务器集群

加入缓存后,数据访问压力缓解,但是单一服务器可以处理的请求有限,在访问高峰期,这会成为网站的瓶颈。

所以对于网站来说,既然可以通过增加一台服务器的方式改善负载压力,那就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。应用服务器集群则应运而生。此时网站架构如下图所示。

技术图片

通过负载均衡将请求分发到应用服务器集群,如果用户访问量持续增长,那么就在集群中加入更多的服务器,使服务器的负载压力不再成为整个网站的瓶颈。

 

5

 

数据库的读写分离

随着网站用户不断增多,服务器搭建了集群便不再是网站的瓶颈,数据库反而会因为负载过高而成为瓶颈。

由于大部分主流数据库都有主从热备的功能,通过配置两台数据库的主从关系,可是实现数据库之间的数据复制,从而实现数据库的读写分离,减轻数据库压力。

此时网站架构如下图所示。

技术图片   

读写分离:

应用服务器在写数据时,访问数据库,主数据库通过主从复制机制将数据更新到从数据库,当应用服务器读数据的时候就可用通过从数据库读取数据。

 

6

 

CDN和反向代理

CDN和反向代理本质也是缓存。加入CDN和反向代理会有效加速网站访问速度。此时网站架构如下图所示。

技术图片

CDN一般部署在网络提供商的机房,使得用户在请求网站服务时,可从最近的网络提供商机房获取数据。

反向代理则部署在网站的中心机房,当用户请求到达中心机房后,先访问反向代理服务器,获取反向代理服务器中的缓存的资源,直接返回给用户。

 

7

 

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

单一服务器都满足不了大型网站持续增长的需求,这时数据库要使用分布式数据库,文件系统使用分布式文件系统。此时网站架构如下图所示。

技术图片

分布式数据库是网站数据库拆分的最后手段,只有在单表数据特别大时才使用。一般更常用的是业务分库,将不同业务的数据库部署在不同机器上。

 

8

 

使用NoSQL数据库和搜索引擎

随着网站运营越来越久,业务增长越来越大,数据的产生也就越来越大。此时对数据的检索和存储也就越来越复杂,那就需要采用非关系数据库技术-NoSQL数据库和数据库查询技术-搜索引擎。此时网站架构如下图所示。

技术图片

 

9

 

业务拆分

大型网站业务日益复杂,会使用拆分的手段将整个网站分为不同的产品线。在技术角度上讲,就是讲网站拆分成许多不同的应用,每个应用都要独立部署。此时网站架构如下图所示。

技术图片

 

应用之间可以通过超链接建立关系,如在首页导航栏添加各个应用的链接地址。也可以通过消息队列进行数据分发,进行业务调用。

 

10

 

分布式服务架构

随着业务拆分越来越细,存储系统则越来越大,可能会出现不同的应用系统需要执行许多相同的业务操作的情况。那将这些共用的业务提出出来,独立部署。通过分布式服务调用共用业务服务完成具体的业务操作。此时网站架构如下图所示。

技术图片

大型网站架构演化到这一步,也就是时下流行的分布式架构。但架构发展并不会止步于此,目前许多大型网站都开始有自己的云计算平台,将计算作为一种资源出售。一些中小网站不需要再关心技术架构问题,未来的网站架构肯定还会继续发展下去,会继续适应未来持续增长的业务需求。

 

网站架构概述大致分为以上几个阶段,后续我们会针对网站架构优化方面再做分享,主要从网站的性能、可用性、伸缩性、扩展性、安全性这几个方面入手,继续讨论网站架构方面所遇到的问题,分享架构优化的知识。

 

 

参考资料:《大型网站技术架构》----李智慧 

 

关注一下,我写的就更来劲儿啦 

 

技术图片

 

浅谈网站架构演变

标签: 用户    行数据    架构    搭建    vpc    apache    分享    分布式数据库    安全性   

原文地址:https://www.cnblogs.com/fanyi0922/p/10486943.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
友情链接
兰亭集智   国之画   百度统计   站长统计   阿里云   chrome插件   新版天听网
关于我们 - 联系我们 - 留言反馈
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!

玻璃钢生产厂家西宁玻璃钢装饰造型批发漳州玻璃钢花坛定西玻璃钢茶几批发湘潭玻璃钢花槽厂家河源玻璃钢座椅厂家亳州玻璃钢装饰批发海南商场美陈多少钱广安玻璃钢装饰长春玻璃钢花池加工抚州玻璃钢垃圾桶临汾玻璃钢装饰造型定制昆明商场美陈加工莱芜玻璃钢花箱定制随州玻璃钢花瓶厂郑州玻璃钢种植池厂荆门玻璃钢花盆加工珠海玻璃钢坐凳定做阳泉玻璃钢花瓶厂泸州玻璃钢装饰制作银川玻璃钢花瓶定做焦作玻璃钢茶几定做青岛玻璃钢坐凳制作邢台玻璃钢装饰吉安玻璃钢种植池加工大连玻璃钢动物雕塑定做宜春玻璃钢茶几江西玻璃钢花钵公司衡水玻璃钢花槽厂家直销运城玻璃钢树池坐凳公司石家庄玻璃钢公仔雕塑生产厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化