Spring Cloud是什么?
Spring Cloud项目实现了一组在分布式系统中要用到的常见模式,以一组容易使用的Java
Spring库。Spring Cloud本身不是一个(云解决方案)cloud solution,它提供了一些功能,对于开发遵循Twelve-Factor应用原则的面向云部署的应用是必要的。通过使用Spring Cloud,开发人员只需要关注编写
业务功能使用Spring Boot,在这个过程中同时利用了Spring Cloud提供的分布式、容错,以及self-healing
功能。
Spring Cloud解决方案对部署环境的态度是agnostic,可以开发并部署在一个桌面PC机或一个弹性云上。
Spring Cloud为开发人员提供了许多可供选择的解决方案,例如服务注册可以用Eureka、ZooKeeper,或
Consul。Spring Cloud的组件是解耦的,这样,开发人员就能灵活选择哪些组件是他们所需要的。
Spring Cloud和Cloud Foundry间的区别:
Spring Cloud是一个开发工具包用来开发互联网级别的Spring Boot项目,而Cloud Foundry是一个Platform
as a Service,用于构建、部署、扩展应用。
Spring Cloud发行版:
Spring Cloud项目包含了许多不同的组件,这些组件的版本定义在
spring-cloud-starter-parent BOM中。
我们这里使用的版本是Brixton.RELEASE
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Spring Cloud的组件和一些分布式系统功能的对应关系:
Spring Cloud和Netflix OSS
许多对于微服务部署很重要的Spring Cloud组件都来自于Netflix Open Source Software center。
为了管理大规模微服务,Netflix的工程师开发出了许多工具,AWS平台上就缺少这些东西用来管理
Netflix services。后来,Netflix开源了这些组件,放在了Netflix OSS平台下,供公众使用。这些组件
在产品系统中得到了大量运用。Spring Cloud对这些组件提供了更高层次的抽象,使得对Spring开发者
更友好。它还提供了声明机制,能很好集成以及遵循了Spring Boot和Spring框架。