Spring Cloud简介及与Dubbo的比较

一、Spring Cloud的介绍

Spring Cloud是一个基于Spring Boot的完整的微服务框架,它是一个工具箱,而不是一门具体的技术

1.Sprig Cloud各组件在微服务中的角色

Sprig Cloud各组件在微服务中的角色

  • 1、请求统一通过API网关(Zuul)来访问内部服务.
  • 2、网关接收到请求后,从注册中心(Eureka)获取可用服务
  • 3、由Ribbon进行均衡负载后,分发到后端具体实例
  • 4、微服务之间通过Feign进行通信处理业务
  • 5、Hystrix负责处理服务超时熔断
  • 6、Spring Cloud Sleuth负责链路追踪
  • 7、Spring Boot Admin 监控服务间的调用
2.Spring Cloud主要组件组成

Spring Cloud主要组件组成

二、Spring Cloud和Dubbo的比较

Spring Cloud和Dubbo是目前最流行的微服务框架,那么二者有什么区别呢?

1.项目及社区活跃度
  • Dubbo是在2012年停更的,于2017年开始重新更新,目前还比较活跃,影响力主要集中在国内
  • Spring Cloud是近5年才兴起的项目,项目和社区一直比较活跃
2.项目成熟度
  • Dubbo因为是阿里巴巴开源的框架,在阿里及国内许多大中型公司都有很多的项目实践,经历多次项目检验,比较成熟
  • Spring Cloud是国外Netflix开源的项目,也经历国内外许多公司的验证,也比较成熟
3.文档
  • Dubbo有完善而且丰富的中文与英文文档
  • Spring Cloud只有英文文档,而且一般只讲解了其中的使用方法
4.组件比较
Spring Cloud Dubbo
服务注册中心 Eureka Server Zookeeper(也可以使用Redis)
服务调用方式 RPC REST API
服务网关 Zuul
熔断器 Sentinel Hystrix
分布式配置 无(可选用Disconf/Apollo) Spring Cloud Config
负载均衡 有(内置) Ribbon
服务调用 有(内置) Feign
服务追踪 Sleuth
消息总线 Spring Cloud Bus
监控 Dubbo Admin Spring Boot Admin

Spring Cloud是一个完整的工具箱,而Dubbo只集成了部分组件,其他组件依赖于第三方

5.学习成本
  • dubbo因为有完善的中文文档,可以非常快速的上手
  • Spring Cloud相对复杂一点,但难度也不是太大