大型网站演化历程

本文摘自<<大型网站技术架构 - 核心原理与案例分析>>

1. 初始阶段

一台服务器就绰绰有余,应用程序、数据库、文件等所有资源都在一台服务器上,使用开源的lamp.


2. 应用服务和数据服务分离:

随着网站业务快速发展,一台服务器已无法满足需求,越来越多的数据导致存储空间不足。这时就需要将应用和数据分类。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器、数据库服务器。

这三台服务器对硬件资源的要求各不相同,应用服务器需要处理大量的业务逻辑,因此需要更快更强大的cpu;数据库服务器需要快速硬盘检索和数据缓存,因此需要更快的硬盘和更大的内存;文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘。



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

大部分的业务访问集中在一小部分数据上,所以如果把这一小部分数据缓存在内存中,就可以减少数据库的访问压力,提高整个网站的数据访问速度。



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

使用集群是网站解决高并发、海量数据问题的常用手段。增加服务器可以分担原有服务器的访问及存储压力。

应用服务器实现集群是网站可伸缩集群架构设计中较为简单成熟的一种。



5. 数据库读写分离

应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库,这样当应用服务器读数据的时候,就可以通过从数据库获得数据。

数据库读写分离,可以改善数据库负载压力。



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

cdn和反向代理的基本原理都是缓存,区别在于cdn部署在网络供应商的机房,使用户在请求网站服务时,可以从距离自己最近的网络供应商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器中缓存这用户请求的资源,就将其直接返回给用户。

使用cdn和反向代理的目的都是尽快返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。



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

分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。



8. 使用Nosql和搜索引擎

随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非干洗数据库技术如Nosql和非数据库查询技术如搜索引擎。



9. 业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线。

具体到技术上,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间通过一个超链接建立关系,也可以通过消息队列进行数据分发



10.分布式服务


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
单体架构是一种传统的架构模式,它把整个应用程序作为一个单独的整体来开发、测试和部署。这种架构模式简单易用,但是在应对高并发、高可用性、可扩展性等方面存在一些问题。因此,逐渐演化为分布式架构。 分布式架构是指将一个应用程序分割成多个子系统,这些子系统可以在不同的机器或服务器上运行,通过网络进行通信和协作,共同完成应用程序的功能。它可以提高应用程序的可伸缩性、可靠性和性能。 分布式架构的演化历程可以大致分为以下几个阶段: 1.垂直拆分阶段:在单体架构的基础上,将应用程序按照业务功能进行垂直拆分,每个子系统都独立开发、测试和部署。这种方式可以提高开发效率和系统可维护性,但是单个子系统的性能和可扩展性仍然存在问题。 2.水平拆分阶段:在垂直拆分的基础上,将每个子系统按照业务流程进行水平拆分,将数据和业务逻辑分散到不同的节点上,通过负载均衡和分布式计算来提高系统的性能和可扩展性。 3.微服务架构阶段:在水平拆分的基础上,将每个子系统进一步拆分成更小的服务单元,每个服务单元负责一个特定的业务功能,通过轻量级通信协议和RESTful API来实现服务之间的通信和协作。微服务架构可以提高系统的故障隔离性、可维护性和可扩展性。 4.云原生架构阶段:在微服务架构的基础上,采用容器化技术和云计算平台,实现应用程序的快速部署、弹性伸缩和自动化运维。云原生架构可以进一步提高系统的可靠性、可用性和可管理性。 总的来说,分布式架构的演化历程是不断从单体架构中抽象出更小的、更独立的服务单元,实现应用程序的更高性能、更好的可维护性和更高的可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值