网站架构演化阶段
网站架构需要工程师从全局把握一个网站的前台、后台,要知道什么地方会有瓶颈,
对网站的可扩展性、安全性等需要有一个成熟的把握。
下面说的几个阶段可以了解网站架构演化。
1)单机部署
最简单的情况,可以把各个进程放在同一个服务器上,这就好比我们平时写程序,
就一台笔记本,那就各个进程放在一个PC上跑,好了,只管基础功能。
可能包括:应用程序服务器,文件服务器,数据库服务器。
问题:内存不够,硬盘不够,CPU竞争。
如何解决?
2)多机部署
为了解决上面的问题,把 应用程序服务器,文件服务器,数据库服务器 分别放在3个PC上
各司其职,这样就解决了内存、硬盘、CPU竞争的问题。
解决了旧的问题,还是有问题。
对一个系统来说,可能会大量访问数据库,比如是mysql数据库,
这样很容易造成瓶颈,怎么办?就有了下面的方案。
3)引入缓存系统
谁访问数据库,应用程序服务器,
那行,我在应用程序服务器本地上对数据做缓存,或者由专门的服务器作远程缓存服务器。
要知道缓存跟数据库服务器的根本区别在于:前者是一个内存概念,后者是一个硬盘概念。
存取速度不是一个数量级上。
这就解决了数据库服务器的瓶颈。
缓存=本地缓存+远程缓存
但是新的瓶颈出现了,大批量访问,导致应用程序服务器吃不消,
怎么办?
4)服务器集群
可以引入集群,多台应用程序服务器部署下来,
通过负载均衡机制,访问分摊,交给各个服务器解决。
任凭访问量变大,我无非增加应用服务器的个数就好了。
新的问题,假如缓存仍然满足不了应用程序服务器的胃口,
仍然需要访问服务器,怎么办?
5)数据库服务器读写分离
之前的方案,都是数据库服务器负责所有的读写。
现在则读写分离,
怎么个读写分离?
主数据库服务器+从数据库服务器。
写的时候,写到主服务器,主服务器会与从服务器同步,保证数据的一致性。
读的时候就读从服务器,不影响主服务器。
这里需要保证同步的即时性。
必要时考虑分片。
6)反向代理
如果反向代理服务器能够提供用户的资源,则直接返回给用户,
否则提交给真正的服务器,这个可以结合负载均衡处理。
7)引入nosql机制
目前网络的需求很多,对后台的要求也会变多
这个时候考虑引入nosql数据库,可有效解决部分问题。
8)业务拆分
之前只是从技术上解决了一些东西,实际上还有涉及到业务的。
将一个网站拆分成各个子系统,每个系统由一个小组解决,然后拼接在一起。
中间可以通过共用数据库,或者消息队列等方式来糅合。
保持子系统的关联性。
各个子系统以分布式的情景执行。
9)补充:
比如对于数据库服务器来说,主从机制解决不了主服务器宕机的问题。
这个时候要引入服务器集群,保证主服务器宕机后,有一个从服务器上升为主服务器。
保证系统365*24小时的运行。
必要时引入分布式文件系统和分布式数据库。
推荐一篇博客:http://my.oschina.net/wyyft/blog/169117
from :http://my.oschina.net/qiangzigege/blog/192213
相关推荐
#### 一、大型网站架构演化 1. **初始阶段**: - 初始阶段,网站架构较为简单,通常采用LAMP(Linux、Apache、MySQL、PHP)或LNMP(Linux、Nginx、MySQL、PHP)堆栈。 - 这个阶段的架构虽然能够满足初期的需求,...
高并发+高可用+分布广泛+安全+发展历程+初始阶段的网站架构 +数据库读写分离+使用反向代理和 CDN 加速网站响应 +使用分布式文件系统和分布式数据库系统+使用 NoSQL 和搜索引擎+使用缓存改善网站性能+业务逻辑+CPU+...
大型网站架构演化 大型网站软件系统的特点 大型网站架构演化发展历程 初始阶段 应用服务和数据服务分离 使用缓存改善网站性能 缓存类型 本地缓存 分布式缓存 缓存产品 redis 业界...
一、大型网站演化过程中的网站架构扩展 * 初始阶段:一台服务器,后续增加缓冲服务器和分布式文件系统和分布式数据库系统。 * 对数据库进行主写从读的设计,使用 NoSQL 和搜索引擎技术。 * 业务拆分:将不同的业务...
陈伟伟在其文章中详细阐述了大型电商平台架构从单一...陈伟伟在文章中提供的架构演化路径为电商企业提供了宝贵的经验和参考,帮助它们在互联网零售的大潮中能够不断优化和升级自己的技术架构,以支撑业务的快速成长。
通过上述五个步骤的逐步演化,网站架构能够应对不断增长的流量挑战,同时也为后续的扩展打下了坚实的基础。每个阶段的知识点都是构建高性能网站不可或缺的一部分,需要开发者深入了解并熟练掌握。
随着互联网技术的飞速发展,中大型网站面临着日益增长的用户访问量、数据处理需求以及复杂的业务场景,传统的网站架构已无法满足这些需求。因此,网站架构必须经历一系列的演变来应对挑战,以提高性能、可靠性和可...
1. **大型网站架构演化**: - 起始阶段:通常采用单体架构,所有功能模块都在一个应用中。随着用户量的增长,这种架构的局限性逐渐显现,如维护困难、部署复杂等。 - 分层架构:为了解决单体架构的问题,出现了...
在中期阶段,网站架构需要进一步演化以适应更高的访问量和更复杂的功能需求。 1. **数据库架构扩展**:为了应对更高的读写请求,采用了多种数据库扩展策略,包括一主多从、读写分离、分库分表等技术。通过这些技术...
阿里巴巴中文网站架构的设计与演化是一个典型案例,展示了从最初的简单架构到复杂分布式的演变过程。 #### 网站架构演变历程 1. **物理分离应用和数据库**:最简单的方案是将应用和数据库分开部署到不同的机器上,...
1. 网站架构演化发展历程 初始阶段的网站(特点:没人)应用程序、数据库、文件都在一个服务器 应用服务和数据服务分离 随着网站业务的发展,一台服务器逐渐不能满足需求:性能越来越差,存储空间不足。这是就需要...
1.2 网站后台架构的演化 1.2.1 个人站点到小型网站 在初始阶段,小型网站的后台可能只包含一台服务器,部署了Web Server、应用服务器和数据库,如图2-1所示。这种架构简洁但难以应对高流量。 1.2.1.1 数据库分离 ...
1. **烟囱式架构阶段**:最初,支付宝采用的是基于J2EE的烟囱式架构,由用户网站、内部管理后台、外部系统接口和内部批量处理等四大烟囱构成。虽然能满足初期需求,但随着业务量的激增,该架构暴露出明显的瓶颈,...
其服务器结构图揭示了解决临时问题的方案,例如采用缓存技术减轻数据库的压力,并在此基础上逐步演化为更理想的架构。通过缓存减少对后端数据库的访问,Sohu社区提升了系统的响应速度,这对于门户网站来说至关重要。...
1. **单一应用架构**:这是最简单的架构形式,适合小型网站和管理系统。所有功能集成在一个应用程序中,易于理解和部署。然而,这种架构的缺点在于性能扩展困难,协同开发和维护变得复杂。 2. **垂直应用架构**:...
- **从一台服务器到50万台服务器——Google的架构演化之路**:回顾Google从初创阶段到成长为全球最大的搜索引擎之一过程中所经历的技术变革和架构调整。 - **一秒钟一百万个订单——淘宝秒杀系统的架构设计**:解析...
2. **阿里巴巴网站架构的历史演化** - **1999年:史前时代** - 使用Perl和CGI,数据库为MySQL,服务器在美国,远程开发、测试和部署,性能受限于56K Modem。 - **2001年:石器时代** - 引入Java,采用WebMacro...
大型网站架构演化经历了初始阶段的网站架构、应用服务和数据服务分离、使用缓存改善网站性能、使用应用服务器集群改善网站的并发处理能力、数据库读写分离、使用反向代理和CDN加速网站响应、使用分布式文件系统和...
在APP架构的演进过程中,可以大致分为以下几个阶段: 1. **Web App**:这是最早的App架构形式,也称为包壳架构。它在Web业务的基础上包裹一个App外壳,实质上仍是Web技术实现,用户体验与访问PC网站相似。这种架构...
对于许多创业公司来说,随着业务的增长,网站流量的增加,架构需要不断地适应变化,以应对不同阶段的需求。 初期,当网站流量处于十万级别的时候,架构通常相对简单,可能是“ALL IN ONE”模式,即所有的服务、...