架构发展
架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。
- 单体架构:未做任何拆分的Java Web程序(controller-services-dao)
- 分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。
- SOA架构:SOA是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是分布式架构的一种。
- 微服务架构在某种程度上是SOA架构的进一步的发展。微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。
技术体系
思维导图
SpringCloud主要组件
1、Eureka
Netflix Eureka 是由 Netflix 开源的一款基于 REST 的服务发现组件,包括 Eureka Server 及 Eureka Client。
2、Ribbon
Ribbon Netflix 公司开源的一个负载均衡的组件。
3、Feign
Feign是是一个声明式的Web Service客户端。
4、Hystrix
Hystrix是Netstflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。
5、Zuul
Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。
6、Gateway
Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等技术开发的网关, Spring Cloud Gateway 旨在为微服务架构提供简单、 有效且统一的 API 路由管理方式。
7、Config
Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。
8、 Bus
使用 Spring Cloud Bus, 可以非常容易地搭建起消息总线。
9、OAuth2
Sprin Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2 来保护微服务系统。
10、Sleuth
Spring Cloud Sleuth是Spring Cloud 个组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案。
架构图
参考: