springCloud简介

  尽管springCloud带有“cloud”字样,但它并不是云计算解决方案,而是在SpringBoot基础上构建的,用于快速构建分布式系统的通用的工具集。从技术架构上降低了对大型系统构建的要求,使我们以非常低的成本(技术或者硬件)搭建一套高效、分布式、容错的平台,但Spring Cloud也不是没有缺点,小型独立的项目不适合使用,另外对分布式事务的支持暂时也没有。

springcloud特点

  上面我们说了,springCloud是基于springboot开发的,那么springboot拥有的特点,springcloud也都有:

  1. 约定优于配置。
  2. 适用于各种环境。开发,部署在PC server或各种云环境(例如阿里云,AWS等)均可。
  3. 隐藏了组件的复杂性,并提供声明式,无XML的配置方式。
  4. 开箱即用,快速启动。
  5. 轻量级的组件。springcloud整合的组件大多比较轻量,例如Eureka,zuul,等等。都是各自领域轻量级的实现。
  6. 组件丰富,功能齐全。spring cloud为微服务架构提供了非常完整的支持,例如配置管理,服务发现,断路器,微服务网关等。
  7. 选型中立,丰富。例如:spring cloud支持使用Eureka,Zookeeper或Consul实现服务发现。
  8. 灵活。spring cloud的组成部分是解耦的,开发人员可按需灵活挑选技术选型。

springcloud工具集

上面我们提到,springcloud是一个工具集,那么它下面肯定有若干个小弟。我们先打个照面。

主要成员

Spring Cloud Netflix

这可是个大boss,地位仅次于老大,老大各项服务依赖与它,与各种Netflix OSS组件集成,组成微服务的核心,它的小弟主要有Eureka, Hystrix, Zuul, Archaius... 太多了

Netflix Eureka

服务中心,云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移。这个可是springcloud最牛鼻的小弟,服务中心,任何小弟需要其它小弟支持什么都需要从这里来拿,同样的你有什么独门武功的都赶紧过报道,方便以后其它小弟来调用;它的好处是你不需要直接找各种什么小弟支持,只需要到服务中心来领取,也不需要知道提供支持的其它小弟在哪里,还是几个小弟来支持的,反正拿来用就行,服务中心来保证稳定性和质量。

Netflix Hystrix

熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。比如突然某个小弟生病了,但是你还需要它的支持,然后调用之后它半天没有响应,你却不知道,一直在等等这个响应;有可能别的小弟也正在调用你的武功绝技,那么当请求多之后,就会发生严重的阻塞影响老大的整体计划。这个时候Hystrix就派上用场了,当Hystrix发现某个小弟不在状态不稳定立马马上让它下线,让其它小弟来顶上来,或者给你说不用等了这个小弟今天肯定不行,该干嘛赶紧干嘛去别在这排队了。

Netflix Zuul

Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门。当其它门派来找大哥办事的时候一定要先经过zuul,看下有没有带刀子什么的给拦截回去,或者是需要找那个小弟的直接给带过去。

Netflix Archaius

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

Spring Cloud Config

俗称的配置中心,配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。就是以后大家武器、枪火什么的东西都集中放到一起,别随便自己带,方便以后统一管理、升级装备。

Spring Cloud Bus

事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。相当于水浒传中日行八百里的神行太保戴宗,确保各个小弟之间消息保持畅通。

Spring Cloud for Cloud Foundry

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

其实就是与CloudFoundry进行集成的一套解决方案,抱了Cloud Foundry的大腿。

Spring Cloud Cluster

Spring Cloud Cluster将取代Spring Integration。提供在分布式系统中的集群所需要的基础功能支持,如:选举、集群的状态一致性、全局锁、tokens等常见状态模式的抽象和实现。

如果把不同的帮派组织成统一的整体,Spring Cloud Cluster已经帮你提供了很多方便组织成统一的工具。

Spring Cloud Consul

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.

Spring Cloud Consul 封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。

其他小弟

Spring Cloud Security

基于spring security的安全工具包,为你的应用程序添加安全控制。这个小弟很牛鼻专门负责整个帮派的安全问题,设置不同的门派访问特定的资源,不能把秘籍葵花宝典泄漏了。

Spring Cloud Sleuth

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

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 Stream

Spring Cloud Stream是创建消息驱动微服务应用的框架。Spring Cloud Stream是基于spring boot创建,用来建立单独的/工业级spring应用,使用spring integration提供与消息代理之间的连接。数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。

一个业务会牵扯到多个任务,任务之间是通过事件触发的,这就是Spring Cloud stream要干的事了

Spring Cloud Task

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

Spring Cloud Zookeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

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

Spring Cloud Connectors

Spring Cloud Connectors 简化了连接到服务的过程和从云平台获取操作的过程,有很强的扩展性,可以利用Spring Cloud Connectors来构建你自己的云平台。

便于云端应用程序在各种PaaS平台连接到后端,如:数据库和消息代理服务。

Spring Cloud Starters

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

Spring Cloud CLI

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

springCloud版本

通常情况下,spring框架的版本号的命名形式是“主版本号.次版本号.增量版本号.里程碑版本号”,对不对。例如Spring Framework稳定版本4.3.5.RELEASE,里程碑版本5.0.0.M4等。其中,主版本号表示项目的重大重构;次版本号表示新特性的添加和变化;增量版本号一般表示BUG修复;里程碑版本号表示某版本号的里程碑。

然而,spring cloud并未使用这种方式管理版本。下面来详细探讨一下spring cloud的版本。

spring Cloud是一个综合项目,它包含很多子项目。就是上面列举出来的,这些子项目自己维护着自己的版本号,和其他规则一样。那么spring cloud为了区别于这些子项目,我就不能这样定义了,毕竟我是大哥呀!

通常主版本号都是 1,2,3,4...顺序下去。spring cloud的主版本号有Angel,Brixton,Camden,Dalston,Edgware,Finchley等。这些都是伦敦地铁站的名称,注意首字母你会发现,它们按照字母顺序发行。那么同一个版本需要做些小修小改呢?后面怎么表示?用SRX的形式命名。比如:

  首先发行:Edgware RELEASE.

  做了一次小修小改之后,再发行:Edgware SR1

  再做一次修补,发行:Edgware SR2

就是这样。

spring cloud/spring boot版本兼容性

  • Angel版本基于Spring boot 1.2.x构建,在一些场景下,与Spring Boot 1.3.x及以上版本不兼容。
  • Brixton版本基于Spring boot1.3.x构建,也可使用1.4.x进行测试,与1.2.x不兼容。
  • Camden版本基于Spring boot1.4.x构建,也可使用1.5.x进行测试。
  • Dalston版本基于Spring boot1.5.x构建,不兼容Spring boot2.0.x。
  • Edgware版本基于Spring boot1.5.x构建,不兼容Spring boot2.0.x。
  • Finchley版本基于Spring boot2.0.x构建,不兼容Spring boot 1.x 。

转载于:https://www.cnblogs.com/fengyuduke/p/10537163.html

springcloud(一)-初识相关推荐

  1. SpringCloud核心技术 | 初识SpringCloud微服务解决方案

    最近这几个月文章更新处于停滞状态,因为公司的事情比较多,公司系统一直处于高速的迭代更新阶段, 尽管如此,我这段时间也一直在整理接下来要更新的文章大纲以及知识点的梳理,希望在后续的文章更新中能给这段时间 ...

  2. python二维向量运算模拟_python二维向量运算_[VB.NET][C#]二维向量的基本运算

    前言 在数学中,几何向量是指具有大小和方向的几何对象. 在编程中,向量有着广泛的应用,其作用在图形编程和游戏物理引擎方面尤为突出. 第一节 构造函数 通过创建一个二维向量的类(或结构体),实现向量的表 ...

  3. 【Java进阶】初识SpringCloud

    初识SpringCloud Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从 ...

  4. 微服务springCloud初识

    现代化的Java开发构建是通过springboot协调是通过springcloud 二:微服务常见面试题

  5. 初识springcloud

    springcloud的基础是springboot,简单地说,就是通过写的springboot应用,使用springcloud集成. 在学习springcloud的过程中,自己的开发环境不能保证和博客 ...

  6. springcloud的简单使用_微服务架构:初识Spring Cloud

    现在无论大小公司,都会讲究微服务设计,无论应用大小,都会进行微服务架构,面试的时候,也会把微服务当成必谈的知识点.那么什么是微服务呢? "微服务"一词源于Martin Fowler ...

  7. 【SpringCloud从0到6】 第一节:初识微服务微服务的雪崩效应

    1 . 传统单机服务 概念 : 所有的功能模块全部写在一起 , 打到一个war包里进行发布 , 除了容器(Tomcat等)以外基本没有其他依赖 . 它的结构图如下 : 单机服务中 , 一个模块包含了U ...

  8. SpringCloud(第一部分)

    文章目录 1. 系统架构 1.1 流动计算架构(SOA) 1.2 微服务 2. 服务调用方式 2.1 RPC和HTTP 2.2 Http客户端工具 2.3 Spring的RestTemplate 3. ...

  9. 初识Sentinel

    雪崩问题 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务. 如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞.此时,其它不依赖于服务I的业务 ...

最新文章

  1. Android 中MVC实例之Activity,Window和View
  2. GDCM:DICOM文件的输入和输出流测试程序
  3. php修改数组元素,php数组特定元素修改方法
  4. 使用Mono平台前,请牢记产品观点(所有.Net程序员都建议知道的)
  5. MapReduce 2 中一些基础数据类型
  6. 关于“Exchange Server 地址列表服务未能响应”的错误解决方法。
  7. Firefox 密码管理器 Lockbox 推出 Android 版
  8. C++Primer Plus第6版C Primer Plus第6版 中文版免费分享啦
  9. 【webpack】webpack 常用插件集合
  10. 初步接触Java中的Lambda表达式
  11. 光域网(IES)在Unity3d中的应用【2020】
  12. 南佛罗里达大学计算机科学硕士,南佛罗里达大学计算机工程理学硕士研究生申请要求及申请材料要求清单...
  13. igraph基本用法
  14. 视频教程-jQuery交互式前端开发(第一季):初体验/选择器/事件绑定-jQuery
  15. 手写Vue个人组件库——fl-Lazyimg 图片懒加载
  16. 计算机网络 万维网的文档
  17. 网络 | NAT、SNAT、DNAT
  18. 【限时删】刘*55页ppt大瓜,比项*醒的还要精彩!
  19. 手机海豚模拟器怎么添加游戏_人偶战斗模拟器2手机版下载,人偶战斗模拟器2手机版安卓游戏 v1.2...
  20. 一个留学生的自白:清华vsMIT

热门文章

  1. 797C C. Minimal string
  2. Protege5.0.0入门学习
  3. Nginx概述与安装
  4. 计算机桌面文件管理窗口,隐藏Win10此电脑窗口的6个额外文件夹
  5. ++实现 kill_如何设计并实现一个秒杀系统?(含完整代码)
  6. 大唐杯5g题库_“大唐杯”全国大学生移动通信技术大赛暨5G教育创新论坛成功举行...
  7. CTF web题总结--http header 修改、cookie注入
  8. 获得目录下文件数和文件行数
  9. LOJ 3094 「BJOI2019」删数——角标偏移的线段树
  10. Bluetooth Low Energy 嗅探