大型网站的架构演进
大型网站的技术问题主要来自于用户多、同时访问量大、数据量大。处理数以P计的数据和数以百万计的用户,问题就会变得非常困难。大型网站架构的主要目的就是解决这些问题。在面对一个大型网站时,首先要讨论的是大型网站的特点:高并发性、大流量、高可用性、海量数据。我们今天就来了解一下大型网站架构演化发展历程。
1.初始阶段:大型网站都是从小型网站架构逐步演化而来。通常一台服务器就绰绰有余。
2.采取应用数据分离:随着网站业务的发展,服务器逐渐不能满足需求,这时就需要应用和数据分离。应用与数据分离后,整个网站使用三个服务器:应用服务器、文件服务器和数据库服务器。
3.使用缓存改善网站性能:80%的业务访问集中在20%的数据上,将这一小部分数据存入内存就可以减少数据库访问的压力。网站使用的缓存一般分为两种:应用服务器上的本地缓存和分布式缓存服务器上的远程缓存。
4.使用应用服务器集群:使用集群是解决高并发、数据量大等问题的常用手段。由于单个应用服务器处理能力有限,网站访问高峰期会造成“拥堵”现象。因此,有必要使用负载均衡处理器。可以将访问请求从浏览器分发到应用服务器集群中的任何服务器。
5.数据库读写分离:目前主流数据库大多提供主从设备功能。通过在一个数据库中建立主从关系,一个数据库服务器的数据更新可以同步到另一个服务器。利用这一特性,实现了数据库加载与写入分离,减轻了数据库的负载压力
6.使用反向代理和CDN加速网站响应:CDN和逆代理的基本原理是缓存,不同之处在于,当用户请求网站服务时,CDN可以部署到网络提供商的机房,并从最近的网络提供商机房获取数据。当用户的请求到达中央计算机室时,首先访问的服务器是反向代理服务器。如果反向代理服务器中缓存用户请求的资源,它将直接返回给用户。
7.使用分布式文件系统和分布式数据库系统:只有当单个表的数据规模非常大时,才会使用分布式数据库拆分网站数据库。通常,更常用的数据库分区方法是在不同的物理服务器上部署不同业务数据的业务部门。
8.使用NoSQL和搜索引擎:NoSQL和搜索引擎是一种互联网技术手段,对可伸缩的分布式功能有更好的支持。应用服务器可以通过一个统一的数据访问模块访问所有类型的数据,减轻管理多个数据源的繁琐。
9.业务拆分:大型网站被分成许多不同的应用,每个应用都是独立部署和维护的。可以通过超链接建立应用之间的关系,通过消息队列进行数据分发。当然,最常见的方法是访问同一个数据存储系统以形成一个相关的完整系统。
10.分布式服务:每个应用系统需要执行的相同的业务操作,可以连接到数据库,提供通用的业务服务,而应用系统只需要管理一个用户界面,并通过分布式服务调用一个通用的业务服务来完成特定的任务。
当一个大型网站演化到此,大多数技术问题,如跨数据中心的实时数据同步,以及特定的网站业务相关问题是现有的技术架构,都可以通过合并和改进现有技术架构来解决。
- 上一篇:青岛做外贸网站哪家好?
- 下一篇:好看的英文字体收藏,再也不怕设计英文网站了!