Spring Cloud 组件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixx3/article/details/96422014

Spring Cloud

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,集群状态)。
分布式系统的协调使用模板模式,使用SpringCloud开发人员可以快速地支持实现这些样板的服务和应用程序。

1.Spring Cloud 主要项目和组件

Spring Cloud根据分布式服务协调治理的需求成立了许多子项目,每个项目通过特定的组件去实现,如Spring Cloud Zookeeper使用zookeeper实现服务注册与发现,再如Spring Cloud Netflix包含了很多功能强大的组件EurekaHystrixZuulArchaius等。
使用时根据业务的复杂程度选择合适的项目、组件来实现。

1.1 主要项目

  • 1.Spring Cloud Config
    配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。
  • 2.Spring Cloud Netflix
    与各种Netflix OSS组件(Eureka、Hystrix、Zuul、Archaius等)集成。
  • 3.Spring Cloud Bus
    事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
  • 4.Spring Cloud Cloudfoundry
    将应用程序与Pivotal Cloud Foundry集成。提供服务发现实现,并使实现受SSO和OAuth2保护的资源变得容易。
  • 5.Spring Cloud Open Service Broker
    提供用于构建实现开放式ServiceBroker API的ServiceBroker的起点。
  • 6.Spring Cloud Cluster
    提供Leadership选举,如:Zookeeper, Redis, Hazelcast, Consul等常见状态模式的抽象和实现。
  • 7.Spring Cloud Consul
    使用Hashicorp Consul进行服务发现和配置管理。
  • 8.Spring Cloud Security
    提供对zuul代理中负载平衡的OAuth2 REST客户端和身份验证头中继的支持。
  • 9.Spring Cloud Sleuth
    针对SpringCloud应用程序的分布式服务跟踪,兼容Zipkin、HTrace和基于日志的(如Elk)跟踪。
  • 10.Spring Cloud Data Flow
    一种用于现代运行时可组合微服务应用程序的云本地编排服务。易于使用的DSL、拖放式GUI和RESTAPI一起简化了基于微服务的数据管道的总体编排。
  • 11.Spring Cloud Stream
    数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
  • 12.Spring Cloud Stream App Starters
    SpringCloud流应用程序启动器是基于Spring引导的Spring集成应用程序,提供与外部系统的集成。。
  • 13.Spring Cloud Task
    一个短生命周期的微服务框架,用于快速构建执行有限数量数据处理的应用程序。用于向Spring引导应用程序添加功能性和非功能性功能的简单声明性。
  • 14.Spring Cloud Task App Starters
    SpringCloud任务应用程序启动器是SpringBoot应用程序,它可以是任何进程,包括不会永久运行的Spring批处理作业,它们在有限的数据处理周期后结束/停止。
  • 15.Spring Cloud Zookeeper
    操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。
  • 16.Spring Cloud AWS
    与托管的Amazon Web服务轻松集成。它提供了一种使用众所周知的Spring习惯用法和API(如消息传递或缓存API)与AWS提供的服务进行交互的方便方法。
  • 17.Spring Cloud Connectors
    使各种平台中的PaaS应用程序很容易连接到后端服务,如数据库和消息代理(该项目以前称为“SpringCloud”)。
  • 18.Spring Cloud CLI
    用于在groovy中快速创建SpringCloud组件应用程序的Springbootcli插件。
  • 19.Spring Cloud Contract
    Contract是一个伞形项目,它拥有帮助用户成功实施消费者驱动的合同方法的解决方案。
  • 20.Spring Cloud Gateway
    Gateway是一种基于工程反应器的智能可编程路由器。
  • 21.Spring Cloud OpenFeign
    OpenFeign通过自动配置和绑定到Spring环境和其他Spring编程模型习语,为Spring引导应用程序提供集成。
  • 22.Spring Cloud Pipelines
    SpringCloudPipelines提供了一个有步骤的固定部署管道,以确保您的应用程序可以以零停机的方式部署,并且很容易回滚出错的内容。
  • 23.Spring Cloud Function
    Function通过函数来促进业务逻辑的实现。它支持跨无服务器提供程序的统一编程模型,以及独立运行(本地或在PaaS中)的能力。

参考:https://spring.io/projects/spring-cloud

1.2 Spring Cloud Netflix 组件

Netflix下组件最为常用:

  • 1.Eureka
    云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。
  • 2.Hystrix
    熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。
  • 3.Ribbon
    提供云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用。
  • 4.Zuul
    Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架,Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。
  • 5.Archaius
    Archaius 是一个基于apache commons configuration的动态属性配置框架, 提供在运行时获取配置值的功能。

参考:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.0.M1/

2.Spring Cloud 应用

2.1 Spring Boot

Spring Boot遵循约定大于配置,既然很多东西都是一样的,为什么还要去配置。

  1. 通过starter和依赖管理解决依赖问题。
  2. 通过自动配置,解决配置复杂问题。
  3. 通过内嵌web容器,由应用启动tomcat,而不是tomcat启动应用,来解决部署运行问题。

2.2 Spring Boot 与Spring Cloud 关系

Spring Boot用于构建MVC或WebFlux的Web工程,它是一个独立的框架,可以根据需要集成各种持久层,MQ,API框架;
Spring Cloud依赖Spring Boot,通过Spring Boot来构建各个组件(微服务);
Spring Cloud侧重于全局的微服务协调治理,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等集成服务。

2.3 Spring Cloud 架构

官网给出的总体架构
在这里插入图片描述项目中根据不同业务需要对具体组件的应用:

在这里插入图片描述

参考资料:
[ 1 ].https://spring.io/projects/spring-cloud
[ 2 ].https://springcloud.cc/
[ 3 ].https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/2.2.0.M1/
[ 4 ].Spring Cloud微服务实战 翟永超 著 中国工信出版社/电子工业出版社 2017.5

猜你喜欢

转载自blog.csdn.net/weixx3/article/details/96422014