找回密码
 立即注册
搜索
查看: 33|回复: 0

网站架构-如何架构网站-架构网站需要什么

[复制链接]

2万

主题

0

回帖

6万

积分

管理员

积分
63613
发表于 2025-4-26 18:26:07 | 显示全部楼层 |阅读模式
谈到大型网站,首先要说说大型网站的特点:具有高并发的特性,流量很大,可用性很高,数据量极为海量等。接着就来讲讲大型网站的架构演化过程吧。

1、初始阶段的网站架构

初始阶段的情况较为简单,一般来说,一台服务器就能够完成一个网站的相关工作,请看下面的图。

所有资源,如应用程序、数据库、文件等,都在一台服务器上。通常情况下,通过使用 Linux、PHP 和 MySQL 就能够完成整个项目的部署。之后,再购买一个域名,租用一台廉价的服务器,就可以开启我们的网站之旅了。

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

随着网站业务的不断发展,一台服务器渐渐无法满足需求。在这种情况下,就需要把应用和数据分离开来,就像图中所展示的那样。

对于这三台服务器要求各不相同:

应用与数据分离之后,各个部分的职责变得更加专一了。这样一来,网站的性能得到了进一步的提升。然而,随着用户持续不断地增加,我们就需要对网站的架构进行进一步的优化。

3.使用缓存改善网站性能

现在的网站基本上都会使用缓存。也就是说,在业务访问中,80%的访问会集中在 20%的数据上。

网站的缓存分为两种情况。一种是缓存在应用服务器上,这属于本地缓存;另一种是缓存在专门的分布式缓存服务器上,这属于远程缓存。



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

单一应用服务器能够处理的请求连接是有限的。在网站访问高峰时期,应用服务器会对整个网站的运行造成限制,成为瓶颈。所以使用负载均衡处理器是必然的选择。借助负载均衡调度服务器,能够把来自浏览器的访问请求分配到应用的集群中的任意一台服务器上。

5、数据库读写分离

使用缓存后,大部分操作无需经过数据库访问即可完成。然而,仍有部分读操作(如缓存访问未命中、缓存过期等)以及所有写操作需要访问数据库。当网站的用户量达到一定程度时,数据库的负载问题便会出现。

用户达到一定规模后,数据库承受的负载压力过高,进而成为网站的瓶颈。目前主流的数据库具备主从热备功能,通过对两台数据库配置主从关系,能够把一台数据库的数据更新同步到另一台服务器上。网站借助数据库的这一功能,实现了数据库的读写分离,以此改善了数据库的负载压力。

应用服务器在进行写操作时会访问主数据库,主数据库借助主从复制机制把数据同步更新至从数据库,如此一来,当应用服务器进行读操作时,就能够访问从数据库以获取数据。

6、使用反向代理和CDN加上网站相应

提高网站的访问速度,主要手段有使用CDN和反向代理。

CDN 的基本原理是缓存,它部署在网络提供商的机房。反向代理的基本原理也是缓存,它部署在网站的中心机房。当用户请求到达中心机房时,首先会访问反向代理。如果反向代理缓存着用户请求的资源,就会直接将其返回给用户。

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

任何强大的单一服务器都满足不了大型网站持续增长的业务需求。



分布式数据库是网站数据库拆分的最后一种手段,只有在单表数据规模极其大的时候才会被使用。在不是迫不得已的情况下,网站更为常用的数据库拆分手段是业务拆分,也就是把不同业务的数据部署在不同的物理服务器上。

8、使用NoSQL和搜索引擎

搜索引擎现在已经基本成为大型网站必须具备的功能了。大型网站需要采用一些非关系数据库技术,比如 NoSQL,同时也需要采用一些非数据库查询技术,例如搜索引擎。

9、业务拆分

对于大型网站,我们能够进行分而治之的操作。可以将整个网站的业务划分成不同的模块,例如大型的交易购物这一完整的业务,能够分为首页、店铺、订单、买家等部分,并且分别交给不同的业务团队去负责。

我们会把一个网站依据模块进行划分,将其拆分成多个应用。每个应用都单独进行部署和维护。这些应用之间通过超链接来建立关系,超链接指向不同的应用地址。最后,通过相同的数据存储系统,从而构成一个相互关联的完整系统。

10、分布式服务

业务进行拆分后,整个系统逐渐变大。应用的整体复杂度呈指数式上升,部署和维护变得越来越艰难。并且,所有的应用服务器都需要与数据库服务相连接。在服务器规模达到数万台时,这些连接的数量是服务器规模的平方,从而致使资源出现不足的情况。

这时候需要将相同的业务提取出来并独立部署。把那些可重用的业务以及连接数据库等内容提取出来,当作公共业务服务。而应用系统只需通过分布式服务去访问公共业务服务,以此来完成业务操作。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|【远见汇智】 ( 京ICP备20013102号-17 )

GMT+8, 2025-5-5 12:31 , Processed in 0.065257 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表