SpingCloud入门概述

在这里插入图片描述

什么是SpringCloud

  SpringCloud 是基于SpringBoot提供的一套微服务解决方案,包括服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断器等组件,除了基于Netflix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件
  SpringCloud利用SpringBoot的开发便利,巧妙地简化了分布式系统基础设施开发,SpringCloud为开发人员提供了快速构建分布式系统的工具,包括配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞赛、分布式会话等,他们都可以用SpringBoot的开发风格做到一键启动和部署
  SpringBoot并没有重复造轮子,它只是将各公司开发的比较成熟,经得起考验的服务框架组合起来,通过springboot风格进行在封装,屏蔽掉了复杂的配置和实现原理,最终留给开发人员一套简单易懂,易部署和易维护的分部式系统开发工具包
  SpringCloud 是分布式微服务构架下一站式解决方案,是各个微服务构架落地技术的集合体,俗称微服务全家桶
  

SpringCloud和SpringBoot的关系
  1. SpringBoot专注于快速方便的开发单个个体微服务
  2. SpringCloud是关注全局的微服务协调治理框架,它将SpringBoot开发的单体微服务整合并管理起来,为各个微服务之间提供:配置管理、服务发现、路由、微代理、事件总线…
  3. SpringBoot可以离开SpringCloud独立使用开发,但是SpringCloud离不开SpringBoot,属于依赖关系
  4. SpringBoot专注于快速、方便的开发单体应用,SpringCloud关注全局的服务治理框架
      
Dubbo和SpringCloud技术选型

分布式+服务治理Dubbo

目前成熟的互联网架构:应用服务化拆分 + 消息中间件
在这里插入图片描述

Dubbo和SpringCloud对比

Dubbo Spring
服务注册中心 Zookeeper SpringCloud Netflix Eureka
服务调用方式 RPC REST API
服务监控 Dubbo-Monitor SpringBoot Admin
断路器 不完善 SpringCloud Netflix Hystrix
服务网关 SpringCloud Netflix Zuul
分布式配置 SpringCloud Config
服务跟踪 SpringCloud Sleuth
消息总线 SpringCloud Bus
数据流 SpringCloud Stream
批量任务 SpringCloud Task

最大的区别:SpringCloud抛弃了Dubbo的RPC通信,采用基于HTTP的REST方式
  严格的来说,这两种方式各有优劣,虽然从一定程度上说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题,而且REST相比RPC更加灵活,服务提供方和调用方只依靠一纸契约,不存在代码上的强依赖,这在强调快速演化的微服务环境下更加合适。
  而且,SpringCloud比Dubbo更能加强大,涵盖面更广,而且作为Spring的拳头项目,它能够与Spring Framework、SpringBoot、SpringData、SpringBatch等其他Spring项目完美融合,这些对于微服务而言是至关重要的。使用Dubbo构建的微服务架构就像组装机,虽然各个环节自由度很高,但是如果其中一个环节出问题,对于小公司来说可能会很难解决,毕竟不是每个公司都有大牛和真实环境去测试;而SpringCloud就像是品牌机,在Spring Source整合下,做了大量的兼容测试,保证了机器拥有更高的稳定性,就算是一个初级,也能也快的完成编码
  最为重要的是,Dubbo停更了5年之久,虽然在2017年重启,但是对于技术发展的新需求,需要由开发者自行拓展升级,这对于中小型公司想采用微服务架构明显不太合适,因为他们没有那么强大的技术能力去修改和测试源码
解决的问题领域不一样:Dubbo定位为一款RPC框架,SpringCloud的目标是微服务构架下的一站式解决方案
  

SpingCloud 能干啥
  1. 分布式/版本控制配置
  2. 服务注册与发现
  3. 路由
  4. 服务到服务的调用
  5. 负载均衡配置
  6. 断路器
  7. 分布式消息管理
  8. 全局锁

  9.   
SpringCloud版本选择

大版本说明

SpringBoot SpringCloud 关系
1.2.x Angel版本(天使) 兼容SpringBoot 1.2.x
1.3.x Brixton版本(布里克斯顿) 兼容SpringBoot1.3.x、1.4.x
1.4.x Camden版本(卡姆登) 兼容SpringBoot1.4.x、1.5.x
1.5.x Dalston版本(多尔斯顿) 兼容SpringBoot1.5.x,不兼容2.0.x
1.5.x Edgware版本(艾奇韦尔) 兼容SpringBoot1.5.x,不兼容2.0.x
2.0.x Finchley版本(芬奇利) 兼容SpringBoot2.0.x,不兼容1.5.x
2.1.x Greenwich版本( 格林威治)
2.2.x/2.3.x Hoxton版本(霍斯顿)
2.4.x 2020.0.x aka Ilford

猜你喜欢

转载自blog.csdn.net/weixin_45481406/article/details/109823146