这些年,系统架构经历了哪些演变?

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

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

Spring Cloud 已经发布了几年,但是国内资料少之又少,出现问题无法得到有效解决,正因如此,CSDN 博客专家、全栈工程师李熠推出了《Spring Cloud 从入门到精通》达人课。

《Spring Cloud 从入门到精通》

扫码免费试读

课程简介

本课程面向具有 Spring MVC 开发经验,并且想进一步研究微服务架构的开发者。由于 Spring Cloud 基于 Spring Boot,所以本课程将先介绍 Spring Boot 的基础知识,以便于后续对 Spring Cloud 的学习。

作者先带领读者一步步攻克 Spring Cloud 的各个模块,最后通过一个具体的实例,全面了解 Spring Cloud,最后介绍大型微服务分布式系统的部署和高质量的架构设计。

读者认真学习完本课程内容,并且按照课程上给的代码进行实战,将深入理解基于 Spring Cloud 框架的搭建、部署和设计,继续深入下去将逐渐成为一名 Spring Cloud 方面的高手。

课程亮点

1. 语言通俗易懂

课程为了照顾不同水平的读者,在语言组织方面都是力求做到精益求精,保证每个读者都能轻松读懂本课程。

2. 实例代码丰富

每一章针对每一个知识点都有很多的实例代码供读者参照,每段代码都经过作者测试,保证读者在使用本段代码时不会存在问题。

3. 知识点由浅入深

本课程先从基础知识入手,逐步深入,最后通过一个完整的案例来展示。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101B09ORW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券