大型网站架构 - 1.架构的演变过程

简介: 1. 第一阶段:单服务器架构 这一阶段是我们的起步阶段,比如我们创业的时候刚购买了一台云主机。 在这一阶段,为了节约成本,我们将所有的应用程序,数据库,文件全部放在这台服务器上。 然后,CPU或者内存的成本在开发阶段也使用最小能接受的成本,然后开始我们的服务器开发之路。

1. 第一阶段:单服务器架构

这一阶段是我们的起步阶段,比如我们创业的时候刚购买了一台云主机。

在这一阶段,为了节约成本,我们将所有的应用程序,数据库,文件全部放在这台服务器上。

然后,CPU或者内存的成本在开发阶段也使用最小能接受的成本,然后开始我们的服务器开发之路。

 

2. 第二阶段:应用服务和数据服务分离

随着网站的第一次上线,我们的网站如果运营得不错的话,在这之后应该会逐渐积累人气,业务

也会随着人气的发展而进一步发展。

这个时候,1台服务器显然不能满足需求了,越来越多的用户访问导致性能变差,与此同时,数据也逐渐

变多,我们考虑增加硬盘。

这个时候,首先想到的就是:将应用和数据分离


于是,网站架构变成3台服务器:应用服务器(Web Server), 文件服务器(Resource Server), 数据库服务器(Database Server)

对于3台服务器的配置要求不太一样:

Web Server: 需要处理大量的业务,需要更快的CPU

Database Server: 需要快速检索数据和存放更多的数据,需要更大更快的硬盘,硬盘最好也是固态硬盘为主。

Resource Server: 需要存放用户上传的文件,如照片,视频等等,需要更大的硬盘,硬盘大一点,但是普通硬盘即可。

 

3. 第三阶段:使用缓存改善网站性能

网站业务遵循二八原则,80%的业务集中在20%的数据上。

因此,如果把这一小部分数据缓存起来,就可以i暗哨数据库访问的压力。

在初始阶段可以使用一些本地服务器的内存缓存,随着业务的扩展,

可以增加远程分布式的缓存服务器,应用一些成熟的框架,如: Redis

 

4. 第四阶段:应用服务器集群增加并发处理能力

集群已经显然成为现代网站处理高并发,海量数据的常规手段。

当1台服务器性能不足时,我们首先考虑的不应当是更换强大的服务器,而是应该增加服务器。

这个时候,我们的架构中应该引入负载均衡调度服务器,然后请求经过负载均衡服务器,分发到位于集群上的各个

应用服务器。

 

5. 第五阶段:数据库读写分离

缓存并不能解决所有的数据库问题,仍有很大一部分数据由于某些原因(缓存不命中,缓存过期)需要访问数据库。

通过设置数据库的主从备份结构,可以将主数据库的数据同步更新到另外的数据库上。

从而架构改为,将数据写入主数据库,而从数据库负责读取数据。

 

6. 第六阶段:使用反向代理和CDN加速网站响应

CDN和反向代理的基本原理都是缓存。

区别:

CDN部署在网络提供商的机房,用户可以从距离自己最近的网络提供商机房获取数据。

反向代理部署在网站的中心机房。

 

7. 第七阶段:使用分布式文件系统和分布式数据库

数据库需要进行拆分,拆分一般根据业务进行拆分,

将不同的数据库部署在不同的物理服务器上。

再进一步,我们可以引入NoSql和搜索引擎。

 

目录
相关文章
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
661 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
309 1
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
消息中间件 运维 Kubernetes
探索微服务架构的演变与实践
在软件开发的长河中,微服务架构如同一股清流,它改变了我们构建和部署应用的方式。本文将深入探讨微服务架构从诞生到成熟的发展历程,分析其核心价值与面临的挑战,并分享实践中的经验教训。通过具体案例,我们将揭示如何在不断变化的技术生态中有效运用微服务架构,以及如何克服实施过程中的障碍。
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
负载均衡 API 持续交付
深入探索微服务架构的演变与实践
【10月更文挑战第5天】 在当今软件开发领域,微服务架构以其独特的优势,如解耦、灵活性和可扩展性,已成为构建现代应用的首选方法。本文将全面解析微服务的核心概念、发展历程及其在实际应用中的最佳实践,帮助读者深入理解并有效实施微服务架构。
230 3
|
消息中间件 负载均衡 Cloud Native
云原生之旅:从容器到微服务的架构演变
在数字化转型的风潮中,云原生技术以其灵活性、可扩展性和弹性而备受青睐。本文将通过一个虚拟的故事,讲述一个企业如何逐步拥抱云原生,实现从传统架构向容器化和微服务架构的转变,以及这一过程中遇到的挑战和解决方案。我们将以浅显易懂的方式,探讨云原生的核心概念,并通过实际代码示例,展示如何在云平台上部署和管理微服务。
|
机器学习/深度学习 人工智能 云计算
后端架构的演变与未来趋势
本文深入探讨了后端架构的历史演变和未来发展趋势,从单体应用到微服务架构,再到无服务器架构,分析了每种架构的特点、优势及应用场景。同时,展望了未来可能的发展方向,如人工智能在后端开发中的应用、云计算技术的深度融合等,为后端开发者提供了宝贵的参考和启示。
|
人工智能 边缘计算 Serverless
后端架构演变与未来趋势
本文旨在通过对后端架构的发展历程进行梳理,探讨从单体应用到微服务架构的转变过程及其背后的驱动因素。同时,分析当前后端技术中的热门话题如容器化、Serverless架构和人工智能集成等,并对未来可能的技术趋势进行展望。通过总结现有技术的优缺点及未来可能面临的挑战,为后端开发者提供有价值的参考。这也太棒了吧!

热门文章

最新文章