Spring Cloud 概述

1. Spring Cloud 引言

首先我们打开spring 的官网:https://spring.io/

我们会看到这样一张图片

这个图片告诉我们,开发我们的应用程序就像盖楼一样,

首先我们需要搭建Spring Boot, 在此基础上可以搭建Spring Cloud,再往上面可以搭建Spring Cloud Data Flow

2.Spring Cloud 概述

协调:分布式系统简化

构建分布式系统不需要很复杂且容易出错。

Spring Cloud为最常见的分布式系统模式提供了简单易用的编程模型,帮助开发人员构建弹性,可靠和协调的应用程序。

Spring Cloud建立在Spring Boot的基础之上,使开发人员可以轻松上手并快速提高生产力。

看到这个图片是不是一脸懵逼?不要怕,下面我们就一次来讲解上面图片是神马东东。

2.1 Spring Cloud 核心特色

2.1.1 服务发现(Service Discovery)

一个动态目录,支持客户端负载平衡和智能路由

2.1.2 断路器 (Circuit Breaker)

微型服务容错与监控仪表板

2.1.3 配置服务器 (Configuration Server)

为您的分散式应用程序提供动态,集中的配置管理

2.1.4 API 网关(API Gateway)

API消费者(浏览器,设备,其他API)的单一入口点

2.1.5 分布式追踪(Distributed Tracing)

分布式系统的自动应用程序检测和操作可见性

2.1.6 OAuth2

支持单点登录,令牌中继和令牌交换

2.1.7 Consumer-Driven Contracts

服务演进模式支持基于HTTP和基于消息的API

2.2 Spring Cloud 参考手册

Spring Cloud 参考手册:http://cloud.spring.io/spring-cloud-static/Edgware.SR3/

Getting Started Guides

3. Spring Cloud

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁定,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致锅炉板模式,使用Spring Cloud开发人员可以快速站出实现这些模式的服务和应用程序。 它们可以在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。

Spring Cloud通过提供一大堆库来增强应用程序在添加到类路径时的行为,从而构建Spring Boot。

您可以利用基本的默认行为来快速入门,然后在需要时可以配置或扩展以创建自定义解决方案。

3.1 快速开始

发行版标签(见下文)实际上只在一个工件中明确使用:“spring-cloud-dependencies”(所有其他标签都有与其父项目相关的普通数字发布标签)。

灵活性POM是您可以用作依赖关系管理的物料清单。 使用配置客户端和eureka的最新版本的示例(更改工件标识以引入其他启动器):

在项目中开始使用spring-cloud的推荐方法是使用依赖管理系统 - 下面的代码片段可以复制并粘贴到您的构建中。 需要帮忙? 请参阅我们有关使用Maven和Gradle构建的入门指南。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.M9</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId></groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <dependency>
        <groupId></groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
</dependencies><repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/libs-milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

3.2 特色

Spring Cloud专注于为典型用例和可扩展性机制提供良好的即时体验,以覆盖其他人。

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务对服务呼叫
  • 负载均衡
  • 断路器
  • 全局锁定
  • 领导选举和集群状态
  • 分布式消息

Spring Cloud采用非常明确的方法,通常只有类路径更改和/或注释才能获得许多功能。 作为发现客户端的示例应用程序:

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

3.3 主要的项目

Spring Cloud Config

由git存储库支持的集中式外部配置管理。 配置资源直接映射到Spring`Environment`,但如果需要可以由非Spring应用程序使用。

Spring Cloud Netflix

与各种Netflix OSS组件(Eureka,Hystrix,Zuul,Archaius等)集成。

Spring Cloud Bus

用于将服务和服务实例与分布式消息一起链接的事件总线。 用于跨群集传播状态更改(例如配置更改事件)。

Spring Cloud for Cloud Foundry

将您的应用程序与Pivotal Cloud Foundry集成。 提供服务发现实现,还可以轻松实现受SSO和OAuth2保护的资源。

Spring Cloud Open Service Broker

为构建实现Open Service Broker API的服务代理提供了一个起点。

Spring Cloud Cluster

领导选举和常见的有状态模式,为Zookeeper,Redis,Hazelcast,Consul提供和实施。

Spring Cloud Consul

与Hashicorp Consul进行服务发现和配置管理。

Spring Cloud Security

为Zuul代理中的负载均衡OAuth2休息客户端和身份验证报头中继提供支持。

Spring Cloud Sleuth

Spring Cloud应用程序的分布式跟踪,与Zipkin,HTrace和基于日志的(例如ELK)跟踪兼容。

Spring Cloud Data Flow

现代运行时组合式微服务应用程序的云本地编排服务。 易于使用的DSL,拖放式GUI和REST-API一起简化了基于微服务的数据管道的整体编排。

Spring Cloud Stream

轻量级事件驱动的微服务框架,可快速构建可连接到外部系统的应用程序。 使用Apache Kafka或RabbitMQ在Spring Boot应用程序之间发送和接收消息的简单声明模型。

Spring Cloud Stream App Starters

Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,可与外部系统集成。

Spring Cloud Task

一个短命的微服务框架,用于快速构建执行有限数据处理的应用程序。 向Spring Boot应用程序添加功能性和非功能性功能的简单声明。

Spring Cloud Task App Starters

Spring Cloud任务应用程序启动器是Spring Boot应用程序,可能是任何进程,包括不能永久运行的Spring Batch作业,并且会在有限的数据处理期结束/停止。

Spring Cloud Zookeeper

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

Spring Cloud for Amazon Web Services

与托管的Amazon Web Services轻松集成。 它提供了一种使用众所周知的Spring成语和API(如消息传递或缓存API)与AWS提供的服务进行交互的便捷方式。

开发人员可以围绕托管服务构建应用程序,而无需关心基础架构或维护。

Spring Cloud Connectors

让各种平台上的PaaS应用程序轻松连接到后端服务,如数据库和消息代理(该项目以前称为“Spring Cloud”)。

Spring Cloud Starters

Spring Boot式初学者项目,可以减轻Spring Cloud消费者的依赖性管理。 (作为一个项目终止并与Angel.SR2之后的其他项目合并。)

Spring Cloud CLI

Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序

Spring Cloud Contract

Spring Cloud Contract是一个涵盖各种解决方案的综合项目,可帮助用户成功实施消费者驱动合同方法。

Spring Cloud Gateway

Spring Cloud Gateway是基于Project Reactor的智能可编程路由器。

Spring Cloud OpenFeign

Spring Cloud OpenFeign通过自动配置和绑定到Spring Environment和其他Spring编程模型成语来为Spring Boot应用程序提供集成。

Release Trains

Spring Cloud是一个由独立项目组成的综合项目,原则上它有不同的发布节奏。 为了管理投资组合,BOM(物料清单)与个别项目(参见下文)中的一组策略一起发布。 发行版有名称,而不是版本,以避免与子项目混淆。 名称是一个字母顺序(所以你可以按时间顺序排列)与伦敦地铁站的名字(“天使”是第一个版本,“布里克斯顿”是第二个)。 当单个项目的点数累积达到临界质量时,或者其中一个项目的关键缺陷需要提供给每个人时,发布培训将推出名为“.SRX”的“服务版本”, 其中“X”是一个数字。

发布内容列表

Component Edgware.SR3 Finchley.M9 Finchley.BUILD-SNAPSHOT
spring-cloud-aws 1.2.2.RELEASE 2.0.0.M4 2.0.0.BUILD-SNAPSHOT
spring-cloud-bus 1.3.2.RELEASE 2.0.0.M7 2.0.0.BUILD-SNAPSHOT
spring-cloud-cli 1.4.1.RELEASE 2.0.0.M1 2.0.0.BUILD-SNAPSHOT
spring-cloud-commons 1.3.3.RELEASE 2.0.0.M9 2.0.0.BUILD-SNAPSHOT
spring-cloud-contract 1.2.4.RELEASE 2.0.0.M8 2.0.0.BUILD-SNAPSHOT
spring-cloud-config 1.4.3.RELEASE 2.0.0.M9 2.0.0.BUILD-SNAPSHOT
spring-cloud-netflix 1.4.4.RELEASE 2.0.0.M8 2.0.0.BUILD-SNAPSHOT
spring-cloud-security 1.2.2.RELEASE 2.0.0.M3 2.0.0.BUILD-SNAPSHOT
spring-cloud-cloudfoundry 1.1.1.RELEASE 2.0.0.M3 2.0.0.BUILD-SNAPSHOT
spring-cloud-consul 1.3.3.RELEASE 2.0.0.M7 2.0.0.BUILD-SNAPSHOT
spring-cloud-sleuth 1.3.3.RELEASE 2.0.0.M9 2.0.0.BUILD-SNAPSHOT
spring-cloud-stream Ditmars.SR3 Elmhurst.RC3 Elmhurst.BUILD-SNAPSHOT
spring-cloud-zookeeper 1.2.1.RELEASE 2.0.0.M7 2.0.0.BUILD-SNAPSHOT
spring-boot 1.5.10.RELEASE 2.0.0.RELEASE 2.0.0.BUILD-SNAPSHOT
spring-cloud-task 1.2.2.RELEASE 2.0.0.M3 2.0.0.RELEASE
spring-cloud-vault 1.1.0.RELEASE 2.0.0.M6 2.0.0.BUILD-SNAPSHOT
spring-cloud-gateway 1.0.1.RELEASE 2.0.0.M9 2.0.0.BUILD-SNAPSHOT
spring-cloud-openfeign   2.0.0.M2 2.0.0.BUILD-SNAPSHOT

Finchley构建并使用Spring Boot 2.0.x,并且不希望与Spring Boot 1.5.x一起使用。

Dalston和Edgware发行版建立在Spring Boot 1.5.x上,并且不希望与Spring Boot 2.0.x一起使用。

Camden发行版建立在Spring Boot 1.4.x上,但也使用1.5.x进行测试。

注意:Brixton和Angel发布的列车在2017年7月被标记为生命周期(EOL)。

Brixton发行版建立在Spring Boot 1.3.x的基础上,但也使用1.4.x进行测试。

天使版本系列建立在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.x中的OAuth2功能时(大多数情况下它们被移植到1.3.0中的Spring Boot)需要进行更改。

使用您的依赖管理工具来控制版本。如果您使用的是Maven,请记住第一个版本声明为胜,所以按照顺序声明BOM,第一个版本通常是最新的版本(例如,如果要使用Spring Boot 1.3.6和Brixton.RELEASE,则将Boot BOM第一)。如果您使用Spring依赖管理插件,则同样的规则适用于Gradle。

注意:发行版包含弹簧云依赖项以及spring-cloud-starter-parent。您可以像使用spring-boot-starter-parent一样使用父级(如果您使用的是Maven)。如果您只需要依赖管理,“依赖”版本是同一事物(仅包含依赖管理,无插件声明或对Spring或Spring Boot的直接引用)的BOM-only版本。如果您使用Spring Boot父POM,则可以使用Spring Cloud中的BOM。情况正好相反:使用云端父级使得不可能或至少不可靠,也可以使用启动物料清单来更改Spring Boot的版本及其依赖关系。

Sample Projects

原文地址:https://www.cnblogs.com/xingyunblog/p/8727899.html

时间: 2024-10-08 11:58:41

Spring Cloud 概述的相关文章

Spring Cloud概述

基于SOA系统架构 面向服务的架构,是一种程序开发架构的设计思想.它将不同的功能单元使用一个作为独立的程序运行,并且提供访问的入口(将这些单独运行的每个程序称为服务). 一个SOA架构的web应用程序,是多个服务组成的!!! SOA架构的思想就是用于实现,程序分布式的.所以我们也可以将SOA架构的思想理解为分布式架构的思想. Spring Cloud的作用 问题:以上SOA架构,这样的系统架构,有什么问题? 答:(1)无法检查服务的健康状态(服务是否可用). (2)无法对服务进行管理. 我们可以

spring cloud教程 下载

什么是微服务 微服务一词来源 Martin Fowler 的“Microservices”一文,微服务是一种架构风格,将单体应用划分为小型的服务单元,微服务之间使用 HTTP 的 API 进行资源访问与操作.在对单体应用的划分上,微服务与前面的 SOA 架构有点类似,但是 SOA 架构侧重于将每个单体应用的服务集成到 ESB 上,而微服务做得更加彻底,强调将整个模块变成服务组件,微服务对模块的划分粒度可能会更细.以我们前面的销售.会员模块为例,在 SOA架构中,只需要将相应的服务发布到 ESB

.NET Core下的Spring Cloud&mdash;&mdash;前言和概述

前言 前几年一直在写类似dubbo,Srping Cloud的微服务框架辗辗转转重复了多次,也重构推翻了很多次,其中诞生了"Rabbit.Rpc","Go","RabbitCloud"等开源项目. 其中不乏他人对这些项目的完善.很高兴自己的开源项目能够给他人提供思路和复用代码. 关于Rabbit.Rpc相关的文章: <.NET轻量级RPC框架:Rabbit.Rpc> <拥抱.NET Core,跨平台的轻量级RPC:Rabbit.

(一)Java版Spring Cloud B2B2C o2o鸿鹄云商平台--概述

近期公司正在升级Spring Cloud版本的b2b2c o2o鸿鹄云商平台,我亲自参与了整个产品的研发及升级工作.大概统计了一下,用Java Spring Cloud技术研发电子商务平台的公司少之甚少,借此我想将整个研发的过程通过博客的方式分享出来,希望各位IT网友看到此系列文章多给本人留言,一起进步. 第一篇文章我不会过多的强调技术,而是通过清单方式给大家展示一下整个b2b2c o2o全套解决方案 Java版Spring Cloud B2B2C鸿鹄云商平台全套解决方案 使用技术: Sprin

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 微服务概述 单体应用通常指在一个程序中满足多个业务或技术领域的需求,不同的需求领域内化为模块.假定我们要开发一个Web应用,通常的MVC模式可以满足要求.针对不同领域有不少代码生成工具

《Spring Cloud与Docker微服务架构实战》配套代码

不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将代码放出. 本次放出的代码: 共计70+个DEMO 覆盖Eureka.Ribbon.Feign.Hystrix.Zuul.Spring Cloud Config.Spring Cloud Bus.Spring Cloud Sleuth.Docker.Docker Compose等. 1-11章代码地址: ht

Spring-Boot:Spring Cloud构建微服务架构

概述: 从上一篇博客<Spring-boot:5分钟整合Dubbo构建分布式服务> 过度到Spring Cloud,我们将开始学习如何使用Spring Cloud 来搭建微服务.继续采用上一篇博客中所使用到的图: 我们先来观察一下Spring Cloud 的组成,从上图中可以发现,Spring Cloud 的服务会比Dubbo 完善太多,Spring Cloud 包括了配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等一系列的服务.在后续,我们

Spring Cloud(中文版)

原文链接:Spring Cloud I.云原生应用 Spring Cloud上下文:应用上下文服务 2.1.Bootstrap应用程序上下文 2.2.应用程序上下文层次结构 2.3.更改Bootstrap属性的位置 2.4.覆盖远程属性的值 2.5.自定义Bootstrap配置 2.6.自定义Bootstrap属性源 2.7.记录配置 2.8.环境变化 2.9.刷新范围 2.10.加密和解密 2.11.端点 Spring Cloud Commons:Common Abstractions 3.1

springcloud(五):Spring Cloud 配置中心的基本用法

Spring Cloud 配置中心的基本用法 1. 概述 本文介绍了Spring Cloud的配置中心,介绍配置中心的如何配置服务端及配置参数,也介绍客户端如何和配置中心交互和配置参数说明. 配置中心服务器部分内容包括:服务创建,git,svn,native后端的配置,各种url访问 配置中心客户端部分内容包括:访问配置.failfast,重试 2. Spring Cloud Config的服务端 2.1. 简述 我们在开发大的系统时,由于服务较多,相同的配置(如数据库信息.缓存.开关量等)会出