系统架构都经历了怎样的演变?

当今技术的发展日新月异,系统架构也跟随技术的发展不断升级和改进,从传统的单一架构演变为如今的微服务分布式架构,我们来看看技术架构的演变过程。

NO.1 初期网站架构

网站建设初期,访问人数有限,数据量不大,只需要一台服务器足矣,这时应用程序、文件、数据库等所有资源全部集中在这台服务器上,网站架构请看下图:

NO.2 应用和数据分离

随着网站业务的不断发展,一台服务器已经不能满足要求,用户访问量越来越大,数据量也越来越大,此时对网站的要求也逐渐变大,这就需要将应用和数据分离,变成应用服务器、文件服务器和数据库服务器。架构图如下:

NO.3 缓存数据以改善网站性能

随着用户逐渐的不断增加,数据库访问压力变大,导致访问延迟,性能较低,这时就需要缓存技术,将查询较多或者改动不大的数据缓存起来,以加快应用访问速度,下面是基本的架构图:

NO.4 应用集群

在网站访问高峰,并发量大的情况下,应用服务器就成为了整个网站的瓶颈,单一的应用服务器资源有限,高并发情况下连接很快就会超限,这时,我们就需要部署应用服务器集群,利用负载均衡器分散访问流量,减少单台服务器的压力,网站架构图如下:

NO.5 数据库读写分离

这个阶段,数据继续增加,请求数量继续加大,单个数据库已然不能满足要求,这个时候需要部署多个数据库进行读写分离,请看架构图:

NO.6 部署 CDN 节点

用户访问量的增加意味着用户地域的分散请求,如果所有请求都直接发送中心服务器的话,距离越远,响应速度越差,这时就需要用到 CDN 技术,通过 CDN 加速,保证用户访问每次都从最近的服务器获取数据,架构图如下:

NO.7 分布式数据库

分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。

不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上,如下图所示:

NO.8 使用非关系型数据库

当网站数据足够庞大,达到PB甚至更高时,关系型数据库已经达到瓶颈,这时就需要考虑采用非关系型数据库了,请看下图:

NO.9 微服务架构

随着网站业务的不断扩大,我们需要将各个业务进行拆分,形成不能的产品线,每个产品线由不同的业务团队负责,各个产品之间需要通信,这时就要用到微服务架构,请看下图:

目前,最流行的 JavaEE 框架就是 Spring 框架,该框架是最古老也就是最成熟的 Java 技术框架之一。为了适应技术的高速发展,Spring Cloud 出现了,它的出现带给了我们微服务的解决方案。通过 Spring Cloud,我们很容易部署一套高性能高可用的微服务架构。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极乐技术社区

微信小程序开放关键词搜索,让你的小程序更快被找到

怎样可以找到一个想用的小程序?可能是线下扫码、公众号、好友分享、长按小程序码、搜索小程序名称…… 今天起,多了一个新方式——小程序后台新增自定义关键词功能: 已...

1989
来自专栏程序你好

为什么应该使用微服务(Microservices) ?

如今,微服务非常流行。几乎每个人都喜欢。不仅仅是Netflix、亚马逊或谷歌,似乎几乎每个人都采用了这种架构风格。虽然微服务已经存在了很长一段时间,也有很多关于...

3613
来自专栏云计算D1net

如何最小化云API升级造成的中断?

云提供商升级API时,开发者必须升级并重新测试自己的软件,如何为这个过程做好准备并且最小化影响? 云提供商为了扩展和改善服务进行了服务升级,通常需要进行API升...

2803
来自专栏Python自动化测试

对接口自动化测试的几点思考(一)

在自动化的测试体系中,目前应用的比较多,包含了UI自动化测试和接口自动化测试,在UI的自动化测试中使用最广泛的是Selenium框架,移动端是Ap...

1584
来自专栏林德熙的博客

win10 UWP 你写我读

想要电脑读出我们写的内容,在win10,很简单 其实这个技术在windows7就有了,但是现在 win10 写出一个你写我读的软件很简单。 我们需要一个类 Me...

701
来自专栏ytkah

微信公众平台数据接口开始内测

微信公众平台每天的数据量越来越庞大了,新年红包再次延迟逐显服务器压力,微信也慢慢开放一些接口给第三方平台,这不,今天微信公众平台数据接口开始公测了。微信公众平台...

3865
来自专栏性能与架构

WEB开发将不再重度依赖JS【二】

前阶段写了一篇文章 "WEB开发将不再重度依赖JS",介绍了 WASM(WebAssembly),因为有了最新消息,所以写了这篇文章来分享 简单回顾一下 WAS...

3924
来自专栏小狼的世界

关于框架的一些思考

如果你的团队很小并且在软件开发领域也没什么经验,那么放下包袱使用开源框架吧(OSS Framework),但是如果你有一个很大而且有丰富经验的团队,那么最好还是...

833
来自专栏技术博文

你应该了解Nginx的7个原因

Nginx ("engine x")是一个高性能的HTTP和反向代理服务器,也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服...

3319
来自专栏开源优测

AutoLine开源平台源码组织结构

为了方便大家更好的阅读、理解、甚至参与到AutoLine开源平台的开发中来,本文主要分享AutoLine开源平台的源码组织结构。

1042

扫码关注云+社区

领取腾讯云代金券