spring cloud

Spring官网:spring.io

一、介绍   

微服务:https://blog.csdn.net/weixin_41690908/article/details/86359293

1.作用

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

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

发框架的集成。

Spring Cloud为微服务架构开发涉及的配置管理,服务治理,熔断机制,智能路由,微代理,控制总线,一次性

token,全局一致性锁,leader选举,分布式session,集群状态管理等操作提供了一种简单的开发方式。

Spring Cloud为开发者提供了快速构建分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快

速和云平台资源进行对接。

2.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 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服务。

 

3.Spring Cloud的子项目

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

     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,可以让你以命令行方式快速建立云组件。

4.Spring Cloud的 版本

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

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

都维护着自己的发布版本号。

因此每个Spring Cloud版本,包含着多个不同版本的子项目,为了管理每个版本的子项目清单,避免SpringCloud版本

号与其子项目版本号混淆,没有采用版本号方式,而是采用命名方式。

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

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

5.SpringCloud和SpringBoot的关系

Springboot专注于快速方便地开发单个个体微服务。就相当于上图中的一个个microservices。

SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各

个微服务之间提供配置管理、服务发现、断路器、路由、微代理、事情总线,全局锁、决策竞选、分布式会话等等集成

服务。

Spring boot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系。

总结:SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。

6.Dubbo是怎么到SpringCloud的?

   社区活度:

      Dubbo:https://github.com/dubbo

      Spring Colud:https://gitub.com/spring-cloud     //更活跃

   对比结果:

    

   最大的区别:

      SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的rest方式。

      严格来说,这两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原

      生RPC带来的问题,而且REST相比RPC更加灵活,服务提供方与调用方的依赖只依靠一纸契约,不存在代码级别

      的强依赖,这在强调快速演化的微服务环境下,显得更加合适。

  品牌机与组装机的区别

      很显然,SpringCloud的功能比Dubbo更加强大,涵盖面更广,而且作为Spring的拳头项目,他能够与

      Spring  Framework、SpringBoot、SpringData、SpringBatch等其他Spring项目完美融合,这些对于微服务而言是至

      关重要的。使用Dubbo构建的微服务架构就像组装电脑,各环节我们的选择自由度就很高,但是最终结果很有可能因

      为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,这些都不是问题;而Spring  Cloud

      就像品牌机,在Spring Source的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用

      非原装组件外的东西,就需要对其基础有足够的了解。

6.网址资料

SpringCloud官网:http://projects.spring.io/spring-cloud

参考:  https://springCloud.cc/spring-cloud-netflix.html

             开发API说明:http://cloud.spring.io/spring-cloud-static/Dalston.html

                                     http://cloud.spring.io/spring-cloud-dalston.html

springCloud中国社区:http://springcloud.cn/

 springCloud中文网:http://springcloud.cc/

7.Spring Cloud的技术维度

   服务的注册与发现(Eureka)

   服务消费者(rest_Ribbon)

   服务消费者(Feign)

   断路器(Hystrix)

   断路器监控(Hystrix Dashborad)

   路由网关(Zuul)

   分布式配置中心(Spring Cloud Config)

   消息总线(Spring Bus)

   服务链路追踪(Spring Cloud Sleuth)

    。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值