SpringCloud介绍

举报
别团等shy哥发育 发表于 2023/01/13 19:06:52 2023/01/13
【摘要】 @toc 1、简介  Spring Cloud为开发人员提供了工具,以快速构建分布式系统中一些常见模式(配置管理、服务发现、断路器、智能路由、微代理、控制总线、令牌token、全局锁、领导选择、分布式session和集群状态等)。使用Spring Cloud,开发人员可以快速实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员的笔记本电脑、裸机数据中心以及Cloud...

@toc

1、简介

  Spring Cloud为开发人员提供了工具,以快速构建分布式系统中一些常见模式(配置管理、服务发现、断路器、智能路由、微代理、控制总线、令牌token、全局锁、领导选择、分布式session和集群状态等)。使用Spring Cloud,开发人员可以快速实现这些模式的服务和应用程序。它们可以在任何分布式环境中正常工作,包括开发人员的笔记本电脑、裸机数据中心以及Cloud Foundry等托管平台。

2、Spring Cloud的特性

  Spring Cloud专注于为典型的用例和可扩展性提供良好的开箱即用体验,其主要特性有以下几点:

  • 分布式/版本化配置(distributed/versioned configuration)
  • 服务注册和发现(service registration and discovery)
  • 动态路由(routing)
  • 微服务调用(service-to-service calls)
  • 负载均衡(load balancing)
  • 断路器(circuit breakers)
  • 全局锁(global locks)
  • 领导选择和集群状态(leadership selection and cluster state)
  • 分布式消息(distuributed messaging)
    Spring Cloud采用了声明性的方法,通常只需要更改类路径或添加一个注释即可获得许多功能。

3、Spring Cloud的模块

  Spring Cloud包含许多子项目,具体如下:

  • Spring Cloud Config:由git存储库支持的集中式外部配置管理。配置资源直接映射到Spring Environment,如果需要,可以有非Spring应用程序使用。
  • Spring Cloud Netflix:与各种Netflix OSS组件继承(Eureka、Hystrix、Zuul、Archaius等)
  • Spring Cloud Bus:事件总线,用分布式消息将服务和服务实例链接在一起。对于在整个集群中传播状态更改(例如配置更改事件)很有用。
  • Spring Cloud Cloudfoundry:将应用程序与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:提供对负载均衡的OAuth2客户端和身份验证标头中继支持。
  • Spring Cloud Sleuth:用于Spring Cloud应用程序的分布式跟踪,与Zipkin、HTrace和基于日志跟踪兼容(例如ELK)。
  • Spring Cloud Data Flow:用于构建数据集成和数据处理管道(Pipelines)的工具包。
  • Spring Cloud Stream:轻量级的事件驱动型微服务框架,用于快速构建可以连接到外部系统的应用程序。在Spring Boot应用程序之间使用Apache Kafka或RabbitMQ发送和接收消息的简单声明性模型。
  • Spring Cloud Stream App Staters:基于Spring Boot的Spring Integration应用程序,可与外部系统集成。
  • Spring Cloud Task:目标是为Spring Boot应用程序提供创建短运行微服务的功能。
  • Spring Cloud Task App Staters:是SpringBoot应用程序,可以是任何进程,包括不会永远运行的Spring Batch作业,它们在有限的数据处理周期后结束/停止。
  • Spring Cloud Zookeeper:使用Apache Zookeeper进行服务发现和配置管理。
  • Spring Cloud CLI:Spring Boot CLI插件,用于在Groovy中快速创建Spring Cloud组件应用程序。
  • Spring Cloud Contract:为通过CDC(Customer Driven Contracts)开发基于JVM的应用提供支持,为TDD(测试驱动开发)提供一种新的测试方式,即基于接口。
  • Spring Cloud Gateway:Spring Cloud Gateway是基于Project Reactor的智能可编程路由器。
  • Spring Cloud OpenFeign:将OpenFeign集成到Spring Boot应用中的方式,为微服务架构下服务之间的调用提供了解决方案。
  • Spring Cloud Pipelines:提供一个可靠的部署管道,其中包含一些步骤,以确保应用程序可以零停机时间进行部署,并且可以轻松回滚某些错误。
  • Spring Cloud Function:通过功能促进业务逻辑的实现,支持五服务器提供商之间的统一编程模型以及独立运行(本地或Paas)的能力。

Netflix是一家做视频的网站,访问量非常大。也正是如此,Netflix开始把整体的系统往微服务上迁移。Netflix微服务大规模应用,在技术上毫无保留地把一整套微服务架构核心技术栈开源出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断壮大。在Netflix开源的一整套核心技术产品线的基础上,做了一系列的封装,就变成了Spring Cloud。

4、版本选择

  • springcloud是一个由众多独立子项目组成的大型综合项目,原则每个子项目上有不同的发布节奏,都维护自己发布版本号。为了更好的管理springcloud的版本,通过一个资源清单BOM(Bill of Materials),为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。这些名字是按字母顺序排列的。如伦敦地铁站的名称(“天使”是第一个版本,“布里斯顿”是第二个版本,"卡姆登"是第三个版本)。当单个项目的点发布累积到一个临界量,或者其中一个项目中有一个关键缺陷需要每个人都可以使用时,发布序列将推出名称以“.SRX”结尾的“服务发布”,其中“X”是一个数字。

  • 伦敦地铁站名称 [了解]
    Angel、Brixton、Camden、Dalston、Edgware、Finchley、Greenwich、Hoxton
    Spring Cloud与Spring Boot兼容的版本如下表所示。
    在这里插入图片描述

5、Spring Cloud与Spring Boot的关系

  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,属于依赖的关系,如下图所示。
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。