这些年,系统架构都经历了怎样的演变?

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

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,我们很容易部署一套高性能高可用的微服务架构。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

互联网分层架构,为啥要前后端分离?

通用业务服务化之后,系统的典型后端结构如上: web-server通过RPC接口,从通用业务服务获取数据 biz-service通过RPC接口,从多个基础数据s...

41080
来自专栏Debian社区

2017 年会是 Serverless 爆发之年吗

中小型公司,尤其是互联网行业的创业公司,本身并没有太多的技术人员,如果设计系统时需要考虑诸多的技术问题,例如 Web 应用服务器如何配置、数据库如何配置、消息服...

10820
来自专栏阁主的小跟班的专栏

【第1期】腾讯云的1001种玩法征集,iPad mini和Kindle 等你拿!(获奖公告)

作为一名程序员,业余时间你会写个爬虫抓豆瓣mm图片,或者是自己搭个应用号,玩的不亦乐乎。但是也许做为一名hacker的你,希望在更多的云资源上施展你的项目。 抽...

37800
来自专栏腾讯开源的专栏

【开源公告】H5、小程序自动化测试框架FAutoTest正式开源

H5以及小程序越来越多,你的自动化测试跟上了吗? ? 随着业务的发展,许多项目中H5以及小程序占比逐渐增多,因为快速建设相关的自动化来提高项目的效率和质量成为...

27510
来自专栏程序猿DD

互联网分层架构,为啥要前后端分离?

作者:58沈剑,来源:架构师之路 一,典型后端架构 ? 通用业务服务化之后,系统的典型后端结构如上: web-server通过RPC接口,从通用业务服务获取数据...

31280
来自专栏企鹅号快讯

使用BOOTSTRAP设计评论过滤筛选

电子商务网站的商品评论,需要设置各种评论的类别,筛选出不同种类的评论,能直观的看出商品的口碑。如何设计评论过滤筛选,我们可以一起学习一下。 目标 使用html、...

22050
来自专栏互联网研发闲思录

对于最近线上服务以及京东等大型互联网公司对java工程师要求的一些思考

        当下线上服务为了减少上线,经常搞成配置化,配置化对于版本以及持续集成本身是很大破坏,对于此,我个人持保留态度, 是反对过多东西进行配置化,其实配...

37080
来自专栏云加头条

为什么 SQL 正在击败 NoSQL,这对未来的数据意味着什么

经过多年的沉寂之后,今天的 SQL 正在复出。缘由如何? 这对数据社区有什么影响?看看本文的分析。以下为译文。

46400
来自专栏企鹅号快讯

云数据-欲练神功必先写文档

创建云上的数据恢复计划,很重要的一点是持续跟踪基础架构,DR需求和可能的故障转移持续时间。公有云给IT部门提供了绝佳的机会来实现业务的持续性/灾难恢复计划,而无...

22170
来自专栏京东技术

京东评价晒单系统的组件化设计

31730

扫码关注云+社区

领取腾讯云代金券