本文共 3059 字,大约阅读时间需要 10 分钟。
Spring Cloud是一系列框架的集合,这一系列框架全部用Spring Boot的开发风格做到一键启动和部署,由于Spirng Boot开发的便利性,巧妙的简化了分布式系统基础设施的开发;比如:服务注册发现、配置中心、负载均衡、数据监控等。
Spring Cloud并不是重新开发这些框架的,而是将各家公司比较成熟的框架组合起来,然后通过Spring Boot风格进行再次封装,屏蔽了复杂的配置和实现,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Spring Cloud是一站式分布式系统解决方案,可以快速建立一个分布式系统基础设施。
微服务是一个概念、一个项目开发的架构思想。Spring Cloud 是微服务架构的一种 Java 实现。
微服务架构模式(Microservices Architecture Pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易进行局部改良。 Micro 这个词意味着每个服务都应该足够小,但是,这里的小不能用代码量来比较,而应该是从业务逻辑上比较 —— 符合 SRP(单一职责) 原则的才叫微服务。
复杂度可控、独立部署、技术选型灵活、容错、扩展。
SpringBoot与SpringCloud需要版本对应,否则可能会造成很多意料之外的错误。
spring-cloud-dependencies版本列表可查看:
spring-boot-starter-parent 版本列表可查看:大版本对应关系:
SpringBoot | SpringCloud | 关系 |
---|---|---|
1.2.x | Angel版本(天使) | 兼容Spring Boot 1.2.x |
1.3.x | Brixton版本(布里克斯顿) | 兼容Spring Boot 1.3.x,也兼容Spring Boot 1.4.x |
1.4.x | Camden版本(卡姆登) | 兼容Spring Boot 1.4.x,也兼容Spring Boot 1.5.x |
1.5.x | Dalston版本(多尔斯顿) | 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x |
1.5.x | Edgware版本(埃奇韦尔) | 兼容Spring Boot 1.5.x,不兼容Spring Boot 2.0.x |
2.0.x | Finchley版本(芬奇利) | 兼容Spring Boot 2.0.x,不兼容Spring Boot 1.5.x |
2.1.x | Greenwich版本(格林威治) | 兼容Spring Boot 2.1.x |
2.2.x | Hoxton(霍克斯顿) | 兼容Spring Boot 2.2.x |
实际开发版本关系:
spring-boot-starter-parent | spring-cloud-dependencies |
---|---|
1.5.2.RELEASE | Dalston.RC1 |
1.5.9.RELEASE | Edgware.RELEASE |
2.0.2.RELEASE | Finchley.BUILD-SNAPSHOT |
2.0.3.RELEASE | Finchley.RELEASE |
2.0.6.RELEASE | Finchley.SR2 |
2.1.4.RELEASE | Greenwich.SR1 |
2.2.2.RELEASE | Hoxton SR1 |
Spring Cloud Netflix:是对Netfilx开发的一套分布式服务框架的封装,包括服务注册发现、负载均衡、断路器等。
spring-cloud-starter-netflix-eureka-server
: 主要负责完成微服务架构中的服务治理功能中的服务端。spring-cloud-starter-netflix-eureka-client
: 主要负责完成微服务架构中的服务治理功能中的客户端。spring-cloud-starter-netflix-ribbon
:为服务实现负载均衡。spring-cloud-starter-netflix-hystrix
:为服务提供容错保护功能,实现了线程隔离、断路器等一些列服务保护功能。spring-cloud-starter-openfeign
:声明式、模板化的HTTP客户端。spring-cloud-starter-netflix-zuul
:服务网关。spring-cloud-config-server
:配置中心服务端。spring-cloud-starter-config
:配置中心客户端。spring-cloud-starter-gateway
:功能更强大的第二代服务网关,SpringCloud好像已经不会更新Zuul了,用gateway替换Zuul。Eureka
作为服务注册中心完成服务注册和发现。Feign
和Ribbon
实现服务的消费以及负载均衡。Hystrix
的容错保护机制来避免微服务架构中个别服务出现异常时引起的故障蔓延。zuul
或gateway
作为服务的路由转发、权限校验、限流控制。config
配置中心组件管理,配置信息可以放置到Git、SVN等,实现不重启应用的情况下更新配置。转载地址:http://xdchb.baihongyu.com/