SpringCloud的家族成员

SpringCloud的版本

在搞清楚SpringCloud的成员之前,先来看一下它都有哪些版本。SpringCloud的版本发布,都是以所谓的Train的版本线的方式命名的,所以我们会看到是一串的伦敦地铁站的名字,有Angel, Brixton, Camden, Dalston, Edgware, Finchley, Greenwich, Hoxton这些。
目前官网看到的GA(基本可用,或者叫发布版)有Hoxton SR8和 Greenwich SR6,如下图所示:


image.png

我们都知道SpringCloud是基于SpringBoot的,这里看一下它的和SpringBoot的版本对应关系:


image.png

SpringCloud的构成:

官网上给出的Spring Cloud成员有如下这一些:

  • Spring Cloud Azure
  • Spring Cloud Alibaba
  • Spring Cloud for Amazon Web Services
  • Spring Cloud Bus
  • Spring Cloud CLI
  • Spring Cloud for Cloud Foundry
  • Spring Cloud - Cloud Foundry Service Broker
  • Spring Cloud Cluster
  • Spring Cloud Commons
  • Spring Cloud Config
  • Spring Cloud Connectors
  • Spring Cloud Consul
  • Spring Cloud Contract
  • Spring Cloud Function
  • Spring Cloud Gateway
  • Spring Cloud GCP
  • Spring Cloud Netflix
  • Spring Cloud Open Service Broker
  • Spring Cloud Pipelines
  • Spring Cloud Schema Registry
  • Spring Cloud Security
  • Spring Cloud Skipper
  • Spring Cloud Sleuth
  • Spring Cloud Stream
  • Spring Cloud Stream Applications
  • Spring Cloud Stream App Starters
  • Spring Cloud Task
  • Spring Cloud Task App Starters
  • Spring Cloud Vault
  • Spring Cloud Zookeeper
  • Spring Cloud App Broker
  • Spring Cloud Circuit Breaker
  • Spring Cloud Kubernetes
  • Spring Cloud OpenFeign

这里我们挑几个平常使用频率比较高的分别看一下他们的用途:

1. Spring Cloud Alibaba:

Spring Cloud Alibaba提供了一个一站式的分布式应用开发的解决方案,它包含了分布式应用需要的所有组件,可以让你更简单的使用Spring Cloud开发你的应用。

使用Spring Cloud Alibaba,你只需要加上一些注解和少量的一些配置就能让Spring Cloud 程序关联上阿里的分布式方案,使用阿里的中间件生成一个分布式系统。这里说的能够使用的东西主要包括了Alibaba Sentinel(限流降级), Alibaba Nacos(服务注册), RocketMQ(消息中间件), Seata(分布式事务,保证最终一致性), Apache Dubbo RPC(RPC框架)。

要使用这些东西,我们需要加上如下的pom依赖:

com.alibaba.cloud

spring-cloud-alibaba-dependencies

{project-version}

2.Spring Cloud Bus

Spring Cloud Bus通过一个轻量级的消息协商把分布式系统上面的节点都给连起来。这样一来它就可以广播状态变更消息或者其他的管理指令。AMQP 和 Kafka会把这些工具在工程里面都给协调关联起来,另一方面,任意的粘在Spring Cloud Stream路径上的应用会像一个交通工具一样在他的载体以外工作。

Spring Cloud Netflix

Spring Cloud Netflix可能是这些组件里面最重要的了,关于它,官网里面是这样说的:Spring Cloud Netflix提供了Netflix的一套支撑系统(OSS),通过自动配置和绑定Spring Environment以及其他的Spring编程模式语法,整合了Spring Boot的各种应用。使用少量简单的注解你就能在你的应用中快速的使能和配置通用的样板,并且通过已经严格测试Netflix组件生成一个大的分布式系统。这些样板提供了服务发现(Eureka),限流熔断(Hystrix),智能路由(Zuul)和客户端一侧的负载均衡(Ribbon)。

我们来看下Eureka的使用,官网上说只要Spring Cloud Netflix和Eureka Core 在加载路径上,任意的Spring Boot应用加上了@EnableEurekaClient注解都会通过http://localhost:8761去连Eureka服务端。

给出的示例程序如下:


@SpringBootApplication

@EnableEurekaClient

@RestController

public class Application {

 @RequestMapping("/")

 public String home() {

 return "Hello World";

 }

 public static void main(String[] args) {

 SpringApplication.run(Application.class, args);

 }

}

如果要运行自己的Eureka服务端则需要在POM文件里面加上spring-cloud-starter-netflix-eureka-server依赖和并且通过@EnableEurekaServer注解去开启Eureka服务端。

Spring Cloud Zookeeper:

Spring Cloud Zookeeper通过自动配置和绑定Spring Environment以及其他的Spring编程模式语法,在Spring Boot里对Apache的Zookeeper提供了集成。只要使用少量简单的的注解你就能在应用中快速的使能和配置通用的样板,并且通过Zookeeper构造一个大的分布式系统,这些样板提供了业务发现和分布式配置。

嗯,在这里官网给出了Zookeeper在SpringCloud中的作用,作为业务发现以及作为分布式系统的统一配置中心。

只要Spring Cloud Zookeeper, Apache Curator 和Zookeeper Java 客户端在类加载路径中, 任意的Spring Boot应用加上了@EnableDiscoveryClient注解都会通过localhost:2181去连Zookeeper代理。

官网给出的示例程序如下:


@Configuration

@EnableAutoConfiguration

@EnableDiscoveryClient

@RestController

public class Application {

 @RequestMapping("/")

 public String home() {

 return "Hello World";

 }

 public static void main(String[] args) {

 SpringApplication.run(Application.class, args);

 }

}

这里还有一个要求,就是本地的Zookeeper服务端必须是运行中。

你可能感兴趣的:(SpringCloud的家族成员)