一、系统架构演变

1.单体架构

后端服务的所有功能集中在一个项目中

springcloud多数据源 springcloud数据库_微服务


应用服务和数据服务分离

springcloud多数据源 springcloud数据库_Cloud_02


缓存使用

springcloud多数据源 springcloud数据库_springcloud多数据源_03


集群处理

springcloud多数据源 springcloud数据库_spring_04


数据库的读写分离

springcloud多数据源 springcloud数据库_Cloud_05


反向代理和CDN加速

springcloud多数据源 springcloud数据库_spring_06


分布式文件系统和分布式数据库

springcloud多数据源 springcloud数据库_springcloud多数据源_07


还可以通过NoSQL数据和搜索引擎等来来提供系统的处理能力

2.分布式架构

在上面所介绍的单体架构的基础上演变出来的。也就是将单体架构中相对独立的模块抽取出来建立程独立的系统,降低了各个模块之间的耦合性

springcloud多数据源 springcloud数据库_springcloud多数据源_08


相比较在单体架构下的场景,在分布式环境下又会出现很多很多要处理的问题,比如服务的发现,服务的治理,服务调用,配置中心等等问题

springcloud多数据源 springcloud数据库_spring_09


微服务其实也就是分布式!微服务是在分布式的基础上抽取了公共模块,增加的复用性。让整个系统架构更加的合理科学。而我们要学习的SpringCloud是分布式微服务系统的一套很好的解决方案,在SpringCloud中提供了我们在微服务中会遇到的各种问题的解决方案。

二、SpringCloud

官网:https://spring.io/projects/spring-cloud
中文网:https://www.springcloud.cc/

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

springcloud多数据源 springcloud数据库_微服务_10


springcloud多数据源 springcloud数据库_微服务_11

三、五大组件

在SpringCloud中提供的子系统非常多,而且每个都有各自特殊的功能,有些是不可或缺的,有些则
是可有可无的。那么中SpringCloud中有五大核心组件,分别是:

1 服务发现

注册中心:Netflix Eureka

2 负载均衡

Ribbon,Feign

3 断路器

Netflix Hystrix

4 服务网关

Netflix Zuul

5 分布式配置

SpringCloud Config