目录
1、什么是微服务
1.1、架构演进
1.2、微服务架构
1.3、微服务解决方案
2、SpringCloud概览
2.1、什么是SpringCloud
2.2、SpringCloud主要组件
- Eureka
- Ribbon
- Feign
- Hystrix
- Zuul
- Gateway
- Config
- Bus
- OAuth2
- Sleuth
1、什么是微服务
1.1、架构演进
架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。
-
单体架构:未做拆分的Java web应用
-
分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。
-
SOA架构:SOA是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是分布式架构的一种。
1.2、微服务架构
微服务架构在某种程度上是SOA架构的进一步的发展
1.3、微服务解决方案
目前最流行的两种微服务解决方案是SpringCloud和Dubbo。
2、SpringCloud概览
2.1、什么是SpringCloud
Spring Cloud 作为 Java 言的微服务框架,它依赖于 Spring Boot ,有快速开发、持续交付和容易部署等特点。 Spring Cloud 的组件非常多,涉及微服务的方方面面,并在开源社区 Spring、Netflix Pivotal 两大公司的推动下越来越完善。
SpringCloud是一系列组件的有机集合。
2.2、SpringCloud主要组件
- Eureka
Netflix Eureka 是由 Netflix 开源的一款基于 REST 的服务发现组件,包括 Eureka Server 及 Eureka Client。
- Ribbon
Ribbon Netflix 公司开源的一个负载均衡的组件。
- Feign
Feign是是一个声明式的Web Service客户端,微服务间调用。
- Hystrix
Hystrix是Netstflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。
- Zuul
Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。
- Gateway
Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等
技术开发的网关, Spring Cloud Gateway 旨在为微服务架构提供简单、 有效且统一的 API 路由
管理方式。
- Config
Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。
- Bus
使用 Spring Cloud Bus, 可以非常容易地搭建起消息总线。
- OAuth2
Sprin Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2 来保护微服务系统。
- Sleuth
Spring Cloud Sleuth是Spring Cloud 个组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案。