SpringCloud 01 SpringCloud是什么

1.1 SpringCloud是什么


SpringCloud,基于 SpringBoot 提供了一套服务解决方案,包括服务注册与发现,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。

SpringCloud 利用 SpringBoot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理服务发现断路器路由微代理事件总线全局锁决策竞选分布式回话等等,它们都可以用 SpringBoot 的开发风格做到意见启动和部署。

SpringBoot 并没有重复的造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务架构组合起来,通过SpringBoot的风格进行的再封装,主要牛逼之处是屏蔽掉了复杂的配置和实现的原理最终给开发者留出了一套简单易懂,易部署和易维护的分布式系统开发工具包。

总结:SpringCloud 就是 分布式微服务架构的 一站式解决方案/工具包,是各个微服务架构落地技术的集合体,俗称微服务全家桶。


1.2 SpringCloud 和 SpringBoot 关系

  • SpringBoot 专注于快速方便的开发单个个体微服务。
  • SpringCloud 是关注全局的微服务协调整理治理框架,它将 SpringBoot 开发的一个哥 单体微服务整合并管理起来,为每个微服务之间提供:配置管理服务发现断路器路由微代理事件总线全局锁决策竞选分布式回话等等集成服务
  • SpringBoot 完全可以离开 SpringCloud 做独立开发,但是 SpringCloud 却不能离开 SpringBoot。属于依赖的关系。
  • SpringBoot 专注于快速、方便的开发 单个个体的微服务,SpringCloud 关注全局的服务治理框架

1.3 SpringCloud 和 Dubbo

SpringCloud 01 SpringCloud是什么_第1张图片
最大区别:SpringCloud 抛弃了 Dubbo 引以为傲的 RPC 通信,采用的是基于 HTPP 的 REST 方式。

严格来说,两种方式各有优劣,虽然从一定程度上来说,候着牺牲了服务调用的性能,看上去好像不是很乐观。但也避免了上面提到的原生RPC带来的问题。而且 REST 相比于 RPC 更为灵活,服务提供者和消费者/调用方 的依赖只倚靠一纸契约!不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加合适。

品牌机与组装机的区别

很明显,Spring Cloud 的功能比 Dubbo 更加强大,涵盖面更广,而且作为Spring的拳头项目,它也能够与SpringFramework、SpringBoot、SpringData、SpringBatch 等其他 Spring 项目完美融合,这些对于微服务而言是至关重要的。使用Dubbo构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是如果你是一名高手,那这些都不是问题,而 SpringCloud 就像 品牌机,在Spring Source 的郑和下,做了 大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。

SpringCloud 01 SpringCloud是什么_第2张图片


1.4 SpringCloud 神奇的版本号

Spring Cloud 是一个由 众多独立子项目组成的大型总和项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。Spring Cloud 通过一个资源清单 BOM(Bill of Materials)来管理每个版本的子项目。为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。

这些版本名称的命名方式 采用了 伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序,比如:最早的 Release 版本 Angel,第二个 Release 版本 Brixton 然后 是 Camden、Dalston、Edgware。当然 现在 也有 时间版本号出现了。

SpringCloud 01 SpringCloud是什么_第3张图片

Spring Cloud Netflix 学习文档

Spring Cloud 中文 API 文档

Spring Cloud 中文网

Spring Cloud 社区

你可能感兴趣的:(学习笔记,spring,cloud,微服务,java)