SpringCloud是什么?

参考链接:

http://blog.csdn.net/forezp/article/details/70148833

一、概念定义

Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案

Spring Cloud对微服务基础框架Netflix的多个开源组件进行了封装,同时又实现了和云端平台以及和Spring Boot开发框架的集成。

Spring Cloud为微服务架构开发涉及的 配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。

Spring Cloud 为开发者提供了快速构建 分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。

二、Spring Cloud的项目的位置

Sping Cloud是Spring的一个顶级项目,Spring的顶级项目列表如下

  • Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你使用maven dependency引入spring jar包时它就在工作了。
  • Spring Boot:旨在简化创建产品级的 Spring 应用和服务,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用微服务功能,可以和spring cloud联合部署。
  • Spring Framework:即通常所说的spring 框架,是一个开源的Java/Java EE全功能栈应用程序框架,其它spring项目如spring boot也依赖于此框架。
  • Spring Cloud:微服务工具包,为开发者提供了在分布式系统的配置管理、服务发现、断路器、智能路由、微代理、控制总线等开发工具包。
  • Spring XD:是一种运行时环境(服务器软件,非开发框架),组合spring技术,如spring batch、spring boot、spring data,采集大数据并处理。
  • Spring Data:是一个数据访问及操作的工具包,封装了很多种数据及数据库的访问相关技术,包括:jdbc、Redis、MongoDB、Neo4j等。
  • Spring Batch:批处理框架,或说是批量任务执行管理器,功能包括任务调度、日志记录/跟踪等。
  • Spring Security:是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。
  • Spring Integration:面向企业应用集成(EAI/ESB)的编程框架,支持的通信方式包括HTTP、FTP、TCP/UDP、JMS、RabbitMQ、Email等。
  • Spring Social:一组工具包,一组连接社交服务API,如Twitter、Facebook、LinkedIn、GitHub等,有几十个。
  • Spring AMQP:消息队列操作的工具包,主要是封装了RabbitMQ的操作。
  • Spring HATEOAS:是一个用于支持实现超文本驱动的 REST Web 服务的开发库。
  • Spring Mobile:是Spring MVC的扩展,用来简化手机上的Web应用开发。
  • Spring for Android:是Spring框架的一个扩展,其主要目的在乎简化Android本地应用的开发,提供RestTemplate来访问Rest服务。
  • Spring Web Flow:目标是成为管理Web应用页面流程的最佳方案,将页面跳转流程单独管理,并可配置。
  • Spring LDAP:是一个用于操作LDAP的Java工具包,基于Spring的JdbcTemplate模式,简化LDAP访问。
  • Spring Session:session管理的开发工具包,让你可以把session保存到redis等,进行集群化session管理。
  • Spring Web Services:是基于Spring的Web服务框架,提供SOAP服务开发,允许通过多种方式创建Web服务。
  • Spring Shell:提供交互式的Shell可让你使用简单的基于Spring的编程模型来开发命令,比如Spring Roo命令。
  • Spring Roo:是一种Spring开发的辅助工具,使用命令行操作来生成自动化项目,操作非常类似于Rails。
  • Spring Scala:为Scala语言编程提供的spring框架的封装(新的编程语言,Java平台的Scala于2003年底/2004年初发布)。
  • Spring BlazeDS Integration:一个开发RIA工具包,可以集成Adobe Flex、BlazeDS、Spring以及Java技术创建RIA。
  • Spring Loaded:用于实现java程序和web应用的热部署的开源工具。
  • Spring REST Shell:可以调用Rest服务的命令行工具,敲命令行操作Rest服务。

三、Spring Cloud的子项目

Spring Cloud包含了很多子项目,如:

SpringCloud是什么?
  • Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,支持应用配置的外部化存储,支持客户端配置信息刷新、加解密配置内容等
  • Spring Cloud Bus:事件、消息总线,用于在集群(例如,配置变化事件)中传播状态变化,可与Spring Cloud Config联合实现热部署。
  • Spring Cloud Netflix:针对多种Netflix组件提供的开发工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
  • Netflix Eureka:一个基于rest服务的服务治理组件,包括服务注册中心、服务注册与服务发现机制的实现,实现了云端负载均衡和中间层服务器的故障转移。
  • Netflix Hystrix:容错管理工具,实现断路器模式,通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。
  • Netflix Ribbon:客户端负载均衡的服务调用组件。
  • Netflix Feign:基于Ribbon和Hystrix的声明式服务调用组件。
  • Netflix Zuul:微服务网关,提供动态路由,访问过滤等服务。
  • Netflix Archaius:配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
  • Spring Cloud for Cloud Foundry:通过Oauth2协议绑定服务到CloudFoundry,CloudFoundry是VMware推出的开源PaaS云平台。
  • Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作。
  • Spring Cloud Data Flow:大数据操作工具,通过命令行方式操作数据流。
  • Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要是指OAuth2。
  • Spring Cloud Consul:封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成。
  • Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服务注册和发现。
  • Spring Cloud Stream:数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。
  • Spring Cloud CLI:基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。

四、Spring Cloud的 版本

Spring Cloud不像其他Spring子项目那样相对独立,它是一个拥有诸多子项目的大型综合项目。

Spring Cloud可以说是微服务架构解决方案的综合套件组合,其包含的子项目也都独立进行着内容更新与迭代,各自都维护着自己的发布版本号。

因此每个Spring Cloud版本,包含着多个不同版本的子项目,为了管理每个版本的子项目清单,避免SpringCloud版本号与其子项目版本号混淆,没有采用版本号方式,而是采用命名方式。

这些版本的名字采用了伦敦地铁站的名字,根据字母表顺序来对应版本时间顺序,如:Angel.SR6,Brixton.SR5,Brixton.SR7,Camden.M1.

注意:使用Brixton版本要注意SpringBoot的对应版本,必须要使用1.3.x,而不能使用1.4.x

Original: https://www.cnblogs.com/cnsanshao/p/10598805.html
Author: cn三少<script></script>
Title: SpringCloud是什么?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541398/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MongoDB学习笔记-2、MongoDB简介与安装

    1、MongoDB简介 1.1、什么是MongoDB 一个基于分布式的文件存储数据库,旨在简化开发和扩展。属于NoSQL数据库,由C++语言编写,为web应用提供可扩展的高性能数据…

    Java 2023年6月5日
    086
  • 安装RocketMQ出现问题找不到主类

    解决:1、确定安装路径没有空格 2、去修改下面文件 确定这里有双引号 posted @2022-07-31 18:20 大大怪下士 阅读(37 ) 评论() 编辑 Original…

    Java 2023年6月9日
    076
  • @Autowired注解 –required a single bean, but 2 were found出现的原因以及解决方法

    @Autowired注解是spring用来支持依赖注入的核心利器之一,但是我们或多或少都会遇到required a single bean, but 2 were found(2可…

    Java 2023年6月9日
    0121
  • java——封装

    public void setXxx(类型 参数名){ public XX getXxx(){ public Person(String name,int age,double s…

    Java 2023年6月5日
    093
  • Ajax Upload上传插件

    博客园 :当前访问的博文已被密码保护 请输入阅读密码: Original: https://www.cnblogs.com/gr13811787801/p/12354982.htm…

    Java 2023年6月5日
    061
  • android多文件上传,java服务端接收

    Android多文件上传,java服务端接收 1、Android端 代码: String uploadUrl = "http://xxx/uploadFiles&quot…

    Java 2023年6月5日
    077
  • java语言的优缺点

    转载自:https://blog.csdn.net/bingshanyijiao_fkx/article/details/51613954 角度一: 优点:简单、安全、稳定、跨平台…

    Java 2023年5月29日
    063
  • 五分钟搭建博客系统 OK?

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概要: 通过 Docker Compose 在使用 Docker容器构建的隔离环境中轻松运行 WordPress。…

    Java 2023年6月5日
    085
  • 无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口

    无需编程,基于微软mssql数据库零代码生成CRUD增删改查RESTful API接口 回顾 通过之前一篇文章无需编程,基于甲骨文oracle数据库零代码生成CRUD增删改查RES…

    Java 2023年6月6日
    078
  • Golang1.18.1在Windows10环境安装

    一、下载Golang源码包 1.Go官网下载地址为 https://golang.org/dl/,因难以下载,推荐去Go官方镜像站下载:https://google.golang….

    Java 2023年6月13日
    084
  • java.lang.NoClassDefFoundError 解决方案

    http://stackoverflow.com/questions/9870995/android-java-lang-noclassdeffounderror 像网络了上说的一…

    Java 2023年5月29日
    073
  • JavaSE前期准备2

    环境配置:JDK安装 版本 发行 开源与否 许可 优势 Oracle JDK版本 三年一发 并不是完全开源的,不会为即将发布的版本提供长期支持,用户每次都要通过更新到最新版本获得支…

    Java 2023年6月5日
    074
  • Mybatis-Spring源码分析

    Mybatis-Spring 博主技术有限,本文难免有错误的地方,如果您发现了欢迎评论私信指出,谢谢JAVA技术交流群:737698533 当我们使用mybatis和spring整…

    Java 2023年6月6日
    085
  • Redis LRU源码分析

    LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是”如果数据最近被访问过,那么将来被访问的几率也更高&…

    Java 2023年6月6日
    082
  • 删除链表的倒数第k个结点

    删除链表的倒数第k个结点 问题重述: 给你一个链表,删除链表的倒数第 k 个结点,并且返回链表的头结点。 示例 1: &#x8F93;&#x5165;&#x…

    Java 2023年6月7日
    0117
  • 常用设计模式

    化零为整,把零碎的功能拼成一个整体,对外提供一个统一接口,用来访问子系统中的多个接口。 解耦,不需要一个个对接,使用简单。 单例模式 负责创建对象,同时确保只有单个对象被创建。 线…

    Java 2023年6月7日
    072
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球