您的位置:首页 > 运维架构 > 网站架构

网站架构的演化

2016-11-18 16:09 134 查看

网站架构的演化

一、网站架构发展历程

1.单台服务器

小型网站最开始时没太多人访问,只需要一台服务器就绰绰有余,应用程序、数据库、图片等资源都在一台服务器上。

2.应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求,大量的用户访问产生大量的程序计算和数据存取导致服务器性能遇到瓶颈,这时就需要将应用和数据进行分离,使用三台服务器:应用服务器、文件服务器、数据库服务器。

3.使用缓存

80%的业务访问集中在20%的数据上,把小部分的数据缓存在内存中,可以减少数据库的访问压力,提供整个网站的数据访问速度,改善数据库的写入性能。使用的缓存可以分两种:1.本地缓存(应用服务器上)2.远程缓存(分布式缓存服务器上)。

4.使用服务器集群

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,更恰当的做法是增加一台服务器分担原有服务器访问及存储的压力。通过负载均衡调度服务器可将来自用户的请求分发到应用服务器集群的任何一台服务器上。

5.数据库读写分离

网站在使用缓存后,使绝大部分数据操作访问都可以不通过数据库就能完成,但仍有一部分操作需要访问数据库,当用户达到一定规模后,数据库因为负载压力过大而成为网站的瓶颈。目前大部分主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据同步更新到另一台服务器上,实现数据库的读写分离。应用服务器在写数据的时候访问主数据库,主数据库通过主从复制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据。

6.使用反向代理和CDN

有研究表明,网站访问延迟和用户流失率成正相关。反向代理和CDN的基本原理都是缓存,区别在于CDN部署在网络服务提供商的机房,使用户在请求服务时,可以从距离自己最近的网络服务提供商机房获取资源。而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户。

7.使用分布式数据库系统

分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。不到万不得已时,网站更常用的是业务分库,将不同业务的数据库部署在不同的物理服务器上。

8.使用NoSQL和搜索引擎

NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

9.业务拆分

将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

10.分布式服务

每一个应用系统都需要执行许多相同的业务操作,那么可以将这些共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作。

二、网站架构正确的价值观

1.网站架构的核心是随网站所需灵活应对

2.驱动网站架构发展的主要力量是网站的业务发展

3.不能一味追随大公司的解决方案

4.不要企图用技术解决所有问题

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构 互联网架构