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

网站的演变

2015-08-07 14:07 225 查看
大型网站都是从小型网站逐渐发展而来的,网站的价值在于它所做的事情有什么价值,而不在于它是怎么实现的,网站的架构之路并非在网站刚开始创建时就已经设定成熟,而是根据日后网站的需求一步一步完善架构。

驱动网站架构之路的是网站业务的发展,不是所有的网站架构都是相同的,最好的架构是根据自身业务量身定做而成的,这也是网站演变的根源所在。

网站的演变:分为十个阶段

1.初始阶段

网站的诞生时期是由一台服务器提供服务,应用程序 - 文件 - 数据库 都在同一台服务器上。

2.应用服务、文件服务、数据服务分离

原因:

1.应用服务器(程序逻辑层)处理大量业务需要更强大的CPU

2.数据库服务器(程序数据层)需要非常快的磁盘读写能力,所以需更快的磁盘和更大的内存

3.文件服务器(静态文件存储:图片、js、css)需要存储大量的用户文件,所以需要更大的硬盘存储

优点:

不同特性的服务器担任不同角色,改善网站运行效率,极大的提升各服务所需资源。

3.使用缓存提升网站性能

原因:

绝大多数的网站80%的访问获取的数据集中在20%的数据上,可以对这些经常访问的数据进行缓存来减轻数据库的访问压力。

具体:

搭建分布式集群缓存服务器,应用服务器远程连接操作缓存

4.应用服务器集群改善网站并发处理能力

原因:

单一的应用服务器在网站访问高峰时会成为网站性能的瓶颈,造成用户访问效率低下

具体:

1.配置一台负载均衡调度服务器,作用是将用户请求均匀分发到应用服务器

2.应用服务器集群,配置多台应用服务器,用以处理用户请求

优点:

使用集群的方法可以极大的减轻服务器负载压力,增加一台服务器比更换一台性能更加强大的服务器性能要高的多,对
4000
于网站长期发展来讲,服务器集群是必经之路

5.数据库读写分离

原因:

网站的数据读写所占的比列不同,大部分的操作都与读有关,所以对于数据库的读写分离可以提升数据库服务器的扩展性

具体:

1.在程序的数据访问模块对操作进行读写判断

2.配置两台或者多台数据库服务器并给定主从关系,实现数据统一、实时更新

优点:

提升网站性能,以及数据库的扩展能力,可以根据实际情况增加或减少读数据库或写数据库

6.使用反向代理和CDN加速网站响应

原因:

随着网站不断壮大,用户数量的增加,不同地区的用户访问响应速度也不相同,为了提高用户体验,让网站更加受欢迎就需要对不同地区不同距离的访问作出质量的提升

补充:

访问请求流程:客户端 -> 网络提供商(联通) -> 服务方地址。 然后依次返回请求结果

原理:

相同点:CDN和反向代理原理都是缓存

不同点:

CDN:部署在网络提供商的机房,当用户发起请求时可以在最近的机房获取数据

反向代理:部署在网站中心机房,用户请求在到达负载均衡调度服务器前会先到达这里如果有相对应资源直接返回

优点:

可以尽早的将数据返回给用户,加快了访问速度,减轻了网站服务器压力。 如:腾讯新闻…

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

与应用服务器一样,作用就是为了满足网站高访问量,提升网站性能,具体步骤就是对各服务器做集群

8.使用搜索引擎

原因:

数据库的搜索是非常消耗资源的,对数据进行索引可以提升数据库性能

具体:

使用搜索引擎技术来提升对数据的搜索效率,如:sphinx

优点:

提升网站性能,减轻数据库访问压力

9.业务的拆分

原因:

也是跟实际访问有关,在不同的业务流程中用户操作的次数和操作所消耗的资源不同,所以为了提升网站的扩展,可以区别对待不同业务对其进行扩展,如:淘宝的:卖家,卖家,商铺不同角色操作必然不同,具体到应用:首页,广告,促销…又可以不同划分

具体:

对不同业务进行区分,部署在不同的服务器集群中,各自负责各自业务,对于应用的拆分可以分别对不同功能进行划分,各功能之间相互调用

优点:

拆分后的业务各自承担各自任务,服务器也一样,这样极大的提升了应用系统的扩展性,并且易于维护

10.分布式服务

原因:

业务拆分越来越细,应用系统的整体复杂度呈指数级增加,这时连接数据库系统的连接数便超出了数据库连接限制导致数据库系统拒绝服务,所以可以将共用的操作独立出来用以供应用服务器调用

具体:

在应用服务器和缓存服务器、文件服务器、数据库服务器 中间搭建分布式服务服务器集群,用应用服务器连接分布式服务服务器,再由分布式服务服务器操作缓存服务器、文件服务器、数据库服务器的集群
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构