spring cloud学习笔记-1

本文介绍了Spring Cloud作为分布式系统开发工具包的功能和模式,包括配置管理、服务发现、熔断机制等。同时,详细列举了如Spring Cloud Config、Netflix OSS组件、Spring Cloud Bus等核心项目,以及它们在服务治理、集群状态管理和安全等方面的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方网站:http://spring.io/projects/spring-cloud

第一章 spring cloud 概述

1.1 spring cloud 包含的模式

    spring cloud是一组开发工具包,这组工具包给分布式系统的开发者提供了通用的模式。

    spring cloud 提供的通用的分布式模式包括:

1.配置管理

2.服务发现

3.熔断机制

4.智能路由

5.微服务代理

6.控制总线

7.一次性令牌

8.全局锁

9.领导选举

10.分布式会话

11.集群状态

1.2 spring cloud特性

   spring cloud 专注于提供好的典型场景扩展体验和扩展机制,包括:

1.分布式/版本 配置

2.服务注册和服务发现

3.路由

4.服务对服务调用

5.负载均衡

6.熔断机制

7.全局锁

8.领导选举和集群状态

9.分布式消息

    spring cloud 提供了非常简洁的声明式方法,你常常可以只修改一个路径或者使用一个注解,就能获得一组功能。

    例如下面的例子:

@SpringBootApplication
@EnableDiscoveryClient
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}
}

 这个简单的类就是一个spring 服务发现客户端应用。

1.3 spring cloud主要的项目

    1.3.1  Spring Cloud 配置

     对外集中式的配置管理是用的git仓库进行实现的。这些配置的资源文件里的参数与spring的环境变量直接映射。但是,这些参数可以用在非spring项目中。

    1.3.2 spring  cloud 网飞

     整合了网飞公司的一系列开源组件(例如Eureka, Hystrix, Zuul, Archaius,等)

    1.3.3 spring  cloud 总线

     这种总线是一种事件总线,它通过分布式消息的方式,将服务实例与服务实例连接了起来。

    1.3.4 spring  cloud 云铸造厂

      使用关键云铸造来整合应用。提供了一种服务发现的实现方式。这也使单点登录,auth2等保护资源的方式变得更简单。

    1.3.5 spring  cloud开发式服务的代理者

       提供了服务代理的起点,也提供了构建开放式服务代理的接口。

    1.3.6 spring  cloud 集群

      领导选举和公共状态模式,对Zookeeper, Redis, Hazelcast, Consul 进行了抽象,提供实现。

     1.3.7  spring  cloud  执行官(Consul)

       服务发现和配置管理可以用 哈希科普(Hashicorp )执行官(Consul)  来 实现。

      1.3.8 spring  cloud 安全(Security)

       提供对 负载平衡的OAuth2 rest客户端和zuul代理中的认证头中继提供支持

      1.3.9 spring cloud 侦查(Sleuth)

        Spring云应用的分布式跟踪,兼容Zipkin、HTrace和基于日志(例如ELK)的跟踪

      1.3.10 spring cloud 数据流转(Data Flow)

       一个对正在运行中的复杂微服务应用提供本地云编排的服务。易于使用的DSL,拖拽式的gui和rest风格的api共同简化了基于微服务的数字管道的总体编排。

      1.3.11 spring cloud流(Stream)

一个轻量级的事件驱动的微服务框架,用来快速构建可以与外部进行连接的应用。在spring boot 应用之间,通过kafka或者RabbitMQ发送接收消息的简单声明的模型。

       1.3.12 spring cloud流 应用启动器(Stream App Starters)

    spring cloud 流应用启动器是基于spring boot的spring集成应用。提供了与外部系统的集成。

        1.3.13 spring cloud 任务(Task)

        一个短生命周期的微服务框架,用于快速构建执行有限数量数据处理的应用程序。简单描述为给spring boot 应用 增加功能性和非功能性特性

       1.3.14 spring cloud 任务启动器(Task App Starters)

      是spring boot应用程序,它可能是包含spring 批量任务的应用。这些批量任务不是一直执行的,他们在数据处理一段时间之后终止或者暂停。

      1.3.15 spring cloud zookeeper

      用Apache Zookeeper进行服务发现和配置管理

     1.3.16 spring cloud AWS

       使用托管的Amazon Web服务的简单集群。它提供了一种与AWS交互的简单方式,使用知名的spring风格的接口来提供服务,例如消息或缓存接口。开发者可以围绕着主机服务构建自己的应用,而不需要关心基础设施或维护。

     1.3.17 spring cloud 连接器(Connectors)

       使pass应用在不同的平台上更加简单,来连接后端服务,例如数据库和消息中间件(通常认为的“spring cloud项目”)

    1.3.18 spring cloud 启动器(Starters)

        spring-boot风格的项目启动器。以简化Spring Cloud用户的依赖管理。(在Angel.SR2版本之后,其他项目合并了,不再单独作为一个项目)

    1.3.19 spring cloud CLI

      spring cloud CLI插件,使用groovy语言来快速创建spring cloud 组件。

    1.3.20 spring cloud 约定(Contract)

Spring Cloud Contract是一个包含解决方案的伞形项目,帮助用户成功地实现消费者驱动的契约方法。

1.3.21 spring cloud 网关(Gateway)

Spring云网关是一种基于工程反应器(Project Reactor)的智能可编程路由器。

1.3.22 spring cloud 开放想象(OpenFeign)

Spring Cloud OpenFeign通过自动配置和绑定到Spring环境和其他Spring编程模型习惯用法,为Spring引导应用程序提供集成。

1.3.23 spring cloud 管道(Pipelines)

spring cloud 管道提供了可选的部署通道,使用steps来保证你的应用可以零停机方式部署,并可以在出错的时候简单的回滚。 

1.3.24 spring cloud 函数(Function)

spring cloud 函数通过函数保证了逻辑业务的实现。它提供了一种通过无服务提供者的统一的编程模型,和独立运行一样(单独运行或者在pass上运行)

 

1.4发行序列(截止2019.3.6)

spring cloud 是一个伞状的项目,包含了独立的项目,原则上这些不同的独立项目有不同的发行版本的节奏,互相不依赖。为了管理这些独立的项目组合,发布了一个Bom文件,这个bom文件对包含的单个项目的依赖,指定了发行序列。这些发行序列有名字,为了防止与子项目的版本号混淆,这个名字不是版本号。这些名字是字母序的(因此你可以按照时间顺序排列)。当单个项目的点发布累积到一个临界质量时,或者如果其中一个项目中有需要对每个人可用的关键bug,则发布序列将推出名称以“服务发布”结尾的“服务发布”。SRX",其中X是一个数字。

发布序列spring boot版本号
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
Dalston

1.5.x

发布序列 内容

ComponentEdgware.SR5Finchley.SR2Finchley.BUILD-SNAPSHOT

spring-cloud-aws

1.2.3.RELEASE

2.0.1.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-bus

1.3.3.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-cli

1.4.1.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-commons

1.3.5.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-contract

1.2.6.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-config

1.4.5.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-netflix

1.4.6.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-security

1.2.3.RELEASE

2.0.1.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-cloudfoundry

1.1.2.RELEASE

2.0.1.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-consul

1.3.5.RELEASE

2.0.1.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-sleuth

1.3.5.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-stream

Ditmars.SR4

Elmhurst.SR1

Elmhurst.BUILD-SNAPSHOT

spring-cloud-zookeeper

1.2.2.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-boot

1.5.16.RELEASE

2.0.6.RELEASE

2.0.7.BUILD-SNAPSHOT

spring-cloud-task

1.2.3.RELEASE

2.0.0.RELEASE

2.0.1.BUILD-SNAPSHOT

spring-cloud-vault

1.1.2.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-gateway

1.0.2.RELEASE

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-openfeign

 

2.0.2.RELEASE

2.0.2.BUILD-SNAPSHOT

spring-cloud-function

1.0.1.RELEASE

1.0.0.RELEASE

1.0.1.BUILD-SNAPSHOT

Finchley 是用spring boot2.0.x构建起来的,不指望能用spring boot 1.5.x版本构建 发行名Finchley 的发行序列.

注意:1.Dalston 和Edgware  版本序列是用spring-boot 1.5.x构建的,不期待使用spring boot2.0.x 构建该发行序列

           2.Camden  发行序列被标注为了最终序列。

             Camden 发行序列用spring boot 1.4.x 构建,但是也使用1.5.x.

          3.Brixton 和Angel 发行序列在2017年7月被标注为了最终发行序列。

            Brixton发行序列用spring boot 1.3.x 构建,但是也使用1.4.x.

           4.Angel 发行序列用spring boot 1.2.x构建,有些地方和spring boot 1.3.x不兼容。

             Brixton 用spring boot 1.3.x构建,同样也不兼容 1.2.x .有些类库和应用使用Angel构建,将会在Brixton序列上运行良好,但是spring-cloud-security 1.0的OAuth2特性需要在任何地方进行更改。(他们大部分迁移到spring boot1.3.0版本上了)

        使用你的依赖管理工具来控制版本。如果你使用maven记得第一个版本标记为wins,然后按顺序生命boms。第一个通常是最新的(例如,如果你想使用spring boot1.3.6 用Brixton.RELEASE发行序列,把boot的pom放在第一位)。同样的规则也是用Gradle,如果你使用sping的依赖管理工具的话。

        5.发行序列包含了spring-cloud-dependencies也包含了spring-cloud-starter-parent 。您可以像使用spring-boot-starter-parent那样使用父类(如果你用的是maven的话)。如果你只需要依赖管理,“dependencies”版本和只有Bom版本是一回事(它只包含依赖管理,不包含插件和对spring ,spring boot的依赖)。如果你使用spring boot 父pom,那么你可以使用spring cloud的bom。反之则不成立。使用cloud父pom是不可能的或者至少是不可行的,使用boot 的pom更改spring boot和它的依赖版本也是一样。

6.讨论和视频

Beginner’s Guide To Spring Cloud  :https://www.youtube.com/watch?v=aO3W-lYnw-o

7.快速启动

你可以使用spring initializr来启动应用:https://start.spring.io/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水上冰石

希望能帮助到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值