SpringCloud(一)SpringCloud的简单概述以及与Dubbo对比


SpringCloud概述

一、回顾微服务

什么是微服务?微服务(Microservice Architecture)是近几年流行的一种架构思想,目前而言,对于微服务,业界没有一个统一的标准的定义。

通常而言,微服务架构是一种架构模式,或者说是一种架构风格,它提倡将单一的应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程内,服务之间相互协调相互配置,为用户提供最终价值。服务之间采用轻量级的通信机制互相沟通,每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境中。

微服务架构的四个核心问题:

  • 服务很多,客户端该如何访问? —— API 网关、zuul组件
  • 这么多服务?服务之间如何通信? —— HTTP、RPC
  • 这么多服务?如何治理? —— 注册和发现,zookeeper
  • 服务挂了怎么办? —— 熔断机制

二、SpringCloud 入门概述
2.1 什么是SpringCloud

官网:https://spring.io/projects/spring-cloud#learn

在这里插入图片描述

Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来,从而简化了开发者的代码量。

Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。

Spring Cloud 是一个由众多独立子项目组成的大型综合项目,每个子项目有不同的发行节奏,都维护着自己的发布版本号。Spring Cloud通过一个资源清单BOM(Bill of Materials)来管理每个版本的子项目清单。为避免与子项目的发布号混淆,所以没有采用版本号的方式,而是通过命名的方式。(命名方式采用伦敦地铁站的名称,同时根据字母表的顺序来对应版本时间顺序)

Spring Cloud 并不重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了各模块的开发成本。换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。

2.2 Spring Cloud 优缺点

其主要优点有:

  1. 集大成者,Spring Cloud 包含了微服务架构的方方面面。
  2. 约定优于配置,基于注解,没有配置文件。
  3. 轻量级组件,Spring Cloud 整合的组件大多比较轻量级,且都是各自领域的佼佼者。
  4. 开发简便,Spring Cloud 对各个组件进行了大量的封装,从而简化了开发。
  5. 开发灵活,Spring Cloud 的组件都是解耦的,开发人员可以灵活按需选择组件。

接下来,我们看下它的缺点:

  1. 项目结构复杂,每一个组件或者每一个服务都需要创建一个项目。
  2. 部署门槛高,项目部署需要配合 Docker 等容器技术进行集群部署,而要想深入了解 Docker,学习成本高。

Spring Cloud 的优势是显而易见的。因此对于想研究微服务架构的学者来说,学习 Spring Cloud 是一个不错的选择。

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

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

2.4 Dubbo和SpringCloud
DubboSpring Cloud
服务注册中心ZookeeperSpring Cloud Netfilx Eureka
服务调用方式RPCREST API
服务监控Dubbo-monitorSpringBoot Admin
断路器不完善Spring Cloud Netfilx Hystrix
服务网关Spring Cloud Netfilx Zuul
分布式配置Spring Cloud Config
服务跟踪Spring Cloud Sleuth
消息总线Spring Cloud Bus
数据流Spring Cloud Stream
批量任务Spring Cloud Task

最大区别:SpringCloud 抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式。

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

2.5 重要文档(中文)
  • Spring Cloud Netflix:https://www.springcloud.cc/spring-cloud-netflix.html

  • SpringCloud:https://www.springcloud.cc/spring-cloud-dalston.html


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值