微服务学习2:Dubbo 和 Spring Cloud 技术选型

前言:Spring Cloud抛弃了传统的RPC通信,采用了基于HTTPREST方式,使得微服务接口更为灵活,服务提供者和消费者之间的依赖只需要一纸契约即可,而不存在代码级别的强依赖,这对快速演化的微服务架构更合适。前几年比较火的是阿里的Dubbo,后来一度停止维护,最近两年又起死回生,重新焕发生机。后来又出现了Spring体系下的微服务方案Spring Cloud,并迅速流行起来。个人推荐Spring Cloud,毕竟Spring生态圈很强大,当然Spring Cloud Alibaba的服务间通信也可以用dubbo组件代替Rest风格。

1、Dubbo 和 Spring Cloud 对比

微服务学习2:Dubbo 和 Spring Cloud 技术选型_第1张图片
最大区别Spring Cloud 抛弃了 Dubbo 的 RPC 通信,采用基于 HTTP 的 REST 方式

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

Dubbo 定位是一款 RPC 框架, Spring Cloud 目标是微服务架构下的一站式解决方案。


2、什么是 Spring Cloud?

Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。 Spring Cloud 并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud 可以做到那些:

  • 分布式,版本控制配置

  • 服务注册与发现

  • 路由

  • 服务到服务的调用

  • 负载均衡配置

  • 断路器

  • 分布式消息管理


3、Spring Cloud 和 Spring Boot 的关系?

Spring Cloud 是关注全局的微服务协调整理治理框架,它将 Spring Boot 开发的一个个单体微服务整合并管理起来,为各个微服务之前提供:配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话登集成服务。

Spring Boot 可以离开 Spring Cloud 独立使用,开发项目,但 Spring Cloud 离不开 Spring Boot ,属于依赖关系。

Spring Boot 专注于快速方便的开发单个个体微服务, Spring cloud 关注全局的服务治理框架


4、Spring Cloud版本

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

微服务学习2:Dubbo 和 Spring Cloud 技术选型_第2张图片

SNAPSHOT: 快照版本,随时可能修改

M: MileStone,M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版。

SR: Service Release,SR1表示第1个正式版本,一般同时标注GA:(GenerallyAvailable),表示稳定版本。(SR2以后的可以放心使用.

RC :版本英文版名字叫Release Candidate(候选版本)一般标注PRE表示预览版


参考链接:

Spring Cloud 快速入门-详细基础知识

你可能感兴趣的:(Java服务器端,dubbo,Spring,Cloud,微服务)