Spring Cloud为开发人员提供了工具,以快速构建分布式系统中一些常见模式(配置管理、服务发现、断路器、智能路由、微代理、控制总线、令牌token、全局锁、领导选择、分布式session和集群状态等)。使用Spring Cloud,开发人员可以快速实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员的笔记本电脑、裸机数据中心以及Cloud Foundry等托管平台。
Spring Cloud专注于为典型的用例和可扩展性提供良好的开箱即用体验,其主要特性有以下几点:
Spring Cloud包含许多子项目,具体如下:
Netflix是一家做视频的网站,访问量非常大。也正是如此,Netflix开始把整体的系统往微服务上迁移。Netflix微服务大规模应用,在技术上毫无保留地把一整套微服务架构核心技术栈开源出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断壮大。在Netflix开源的一整套核心技术产品线的基础上,做了一系列的封装,就变成了Spring Cloud。
Spring Boot是Spring的一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具。Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架。Spring Boot使用了默认大于配置的理念,很多集成方案已经选好,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot实现的。 Spring Boot可以离开Spring Cloud独立使用开发项目;但是Spring Cloud离不开Spring Boot,属于依赖的关系,如下图所示。