springcloud参考指南001

 

介绍篇

先简单概括下springcloud到底是个什么吧,主要基于Finchley.RELEASE版本的资料整理的。

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

SpringCloud和SpringBoot的关系

Spring Boot是Spring的一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring Boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;Spring Boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大一部分是基于Spring Boot来实现。

SpingCloud的组件们

微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,SpringCloud技术就是这些微服务架构的总称,包括很多组件,主要有:Spring Cloud Config、Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius)、Spring Cloud Bus、Spring Cloud for Cloud Foundry、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI。


各组件功能概述

1.Spring Cloud Netflix

与各种Netflix OSS组件集成,组成微服务的核心,主要有Eureka,Hystrix,Zuul,Archaius等。

  • Netflix Eureka

服务中心,发现和定位基于REST的云端服务,以实现云端中间层服务发现和故障转移。

  • Netflix Hystrix

熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

扫描二维码关注公众号,回复: 3337059 查看本文章
  • Netflix Zuul

在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。

  • Netflix Archaius

配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。可以实现动态获取配置,原理是每隔60s(默认,可配置)从配置源读取一次内容,这样修改了配置文件后不需要重启服务就可以使修改后的内容生效,前提是使用archaius的API来读取。

2.Spring Cloud Config

配置中心,为分布式系统中的外部化配置提供服务器和客户端支持,可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

3.Spring Cloud Bus

事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。

4.Spring Cloud for Cloud Foundry

是VMware推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

5.Spring Cloud Open Service Broker

为构建service broker提供一个启动点,这个service broker实现了Open Service Broker API。

6.Spring Cloud Cluster

Spring Cloud Cluster将取代Spring Integration。提供在分布式系统中的集群所需要的基础功能支持,如:选举、集群的状态一致性、全局锁、tokens等常见状态模式的抽象和实现。
如果要把不同的系统组织成统一的整体,Spring Cloud Cluster已经帮你提供了很多方便组织成统一整体的工具。

7.Spring Cloud Consul

是一个支持多数据中心分布式,高可用的服务发现和配置共享的服务软件,由HashiCorp公司用Go语言开发,基于Mozilla Public License 2.0的协议进行开源。Consul支持健康检查,并允许HTTP和DNS协议调用API存储键值对。
它封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

8.Spring Cloud Security

基于spring security的安全工具包,为应用程序添加安全控制。专门负责整个系统的安全问题,设置不同的访问特定的资源的权限。

9.Spring Cloud Sleuth

日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案。

10.Spring Cloud Data Flow

Data flow是一个用于开发和执行大范围数据处理,其模式包括ETL,批量运算和持续运算的统一编程模型和托管服务。
对于在现代运行环境中可组合的微服务程序来说,Spring Cloud data flow是一个原生云可编配的服务。使用Spring Cloud data flow,开发者可以为像数据抽取,实时分析,和数据导入/导出这种常见用例创建和编配数据通道(data pipelines)。
Spring Cloud data flow是基于原生云对spring XD的重新设计,该项目目标是简化大数据应用的开发。Spring XD的流处理和批处理模块的重构分别是基于Spring Boot的stream和task/batch的微服务程序。这些程序都是自动部署单元而且支持Cloud Foundry、Apache YARN、Apache Mesos和Kubernetes等。
Spring Cloud data flow为基于微服务的分布式流处理和批处理数据通道提供了一系列模型和最佳实践。
主要包括以下组件:
Spring Cloud Data Flow Local Server
Spring Cloud Data Flow Cloud Foundry Server
Spring Cloud Data Flow Kubernetes Server
Spring Cloud Data Flow Apache Yarn Server
Spring Cloud Data Flow Apache Mesos Server

11. Spring Cloud Stream

是创建消息驱动微服务应用的框架。Spring Cloud Stream是基于Spring Boot创建,用来建立单独的/工业级spring应用,使用spring integration提供与消息代理之间的连接。数据流操作开发包,封装了与Redis,Rabbit,Kafka等的接口。
一个业务会牵扯到多个任务,任务之间是通过事件触发的,这就是Spring Cloud stream要干的事了。

1.2Spring Cloud Stream App Starters

是基于Spring Boot的Spring Integration应用程序,用来提供对外部系统的集成。

13.Spring Cloud Task

它主要解决短命微服务的任务管理,任务调度的工作,比如说某些定时任务晚上就跑一次,或者某项数据分析临时就跑几次。

14.Spring Cloud Task App Starters

是Spring Boot应用,可以是任何进程,包括永远不运行的Spring批处理作业,并且它们在某个点结束/停止。它可以与Spring Cloud Data Flow一起使用,以创建、部署和协调短生命周期的数据微服务。

15.Spring Cloud Zookeeper

操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理。

16.Spring Cloud for Amazon Web Services

集成Amazon Web Services。

17.Spring Cloud Connectors

它简化了在云平台中(如Cloud Foundry和Heroku)连接到服务和获取操作环境配置的过程,尤其对于spring应用来说。
它被设计为具有很强的扩展性:例如,可以利用一个已存在的cloud connectors或为自己的云平台写一个连接,并且可以使用内置的常用服务支持(关系数据库/MongoDB/Redis/RabbitMQ)或扩展Spring Cloud Connectors来与自己的服务一起工作。

18.Spring Cloud Starters

Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。

19.Spring Cloud CLI

基于Spring Boot CLI,可用命令行方式快速建立云组件。

20.Spring Cloud Contract

是一个整体的项目集成解决方案(umbrella project holding solutions),可帮助用户成功实施Consumer Driven Contracts的方法。当前的Spring Cloud Contract包括了Spring Cloud Contract Verifier项目,该项目是能开发基于JVM应用的工具,它是用Groovy或YAML编写的Contract Definition Language(DSL)实现的。Contract定义用于生成下列资源:
     默认情况下,当在客户端代码(client tests)上进行集成测试时,WireMock(HTTP Server Stub)将使用JSON存根定义。测试代码必须手工编写,测试数据由Spring Cloud Contract Verifier生成。
     如果使用消息路由,并与Spring Integration,Spring Cloud Stream 和Apache Camel集成。如果愿意,可以设置自己的集成方式。
     如果API的服务器端的实现是符合约定(服务器测试)的,则用于验证验收测试(默认用JUnit或Spock),全量测试则用Spring Cloud Contract Verifier生成。
Spring Cloud Contract Verifier将TDD推到软件体系结构的层次上。

21.Spring Cloud Gateway

是基于Project Reactor的智能可编程路由器。提供了一个用于在Spring MVC之上构建API网关的库,旨在提供一种简单而有效的方法来路由API并提供对它们的横切关系(cross cutting concerns),例如:安全性、监视/度量和弹性。

22.Spring Cloud OpenFeign

通过自动配置和绑定到Spring环境和其它Spring编程模型风格(idioms),为Spring Boot应用程序提供集成。

23.Spring Cloud Pipelines

提供一个固定的部署管道,并有步骤地确保应用程序可以零宕机的方式部署,在出错时容易回滚。

24.Spring Cloud Function

通过函数提升业务逻辑的实现。它支持跨无服务器型提供者的统一编程模型,以及独立运行的能力(本地或在PaaS中)。
具有以下高层级目标:
     通过函数提升业务功能实现。
     将业务逻辑的开发生命周期与任何特定运行时目标解耦,以便相同的代码可以作为Web终端,流处理器或任务运行。
     支持无服务器提供者之间的统一编程模型,以及独立运行(本地或在PaaS中)的能力。
     在无服务器提供者上启用Spring Boot功能(自动配置,依赖注入,指标)。
     它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。
 

这样,基本把springcloud的主要组件都过了一遍,先对它有个整体认识吧。

最后,推荐篇雄文:https://www.cnblogs.com/ityouknow/p/9034377.html,了解微服务和spring等的关系。

专门介绍微服务的:https://blog.csdn.net/shurenyun/article/details/77936558

 

猜你喜欢

转载自blog.csdn.net/casepk/article/details/81676254
今日推荐