SpringCloud 与 Dubbo区别

 

首先从微服务关注点来比较 Spring Cloud 和 Dubbo 两大服务框架,如表 1-1 所示。

表 1-1                                     从微服务关注点比较 Spring Cloud 和 Dubbo

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

Spring Cloud 拥有很多的项目模块,包含了微服务系统的方方面面。 Dubbo 是一个非常优 秀的服务治理和服务调用框架, 但缺少很多功能模块,例如网关、链路追踪等。在项目模块上, Spring Cloud 占据轩更大的优势。

Spring Cloud 的更新速度非常块, Camden.SR5 版本发布于 2017 年 2 月 6 日, Camden.SR6 版本发布于 2017 年 3 月 10 日 , Dalston 版本发布于 2017 年 4 月 12 日, 基本每个月会发-次 版本的法代。 从 GitHub 的代码仓库来看, Spring Cloud 几乎每天都有更新。阿里巴巴于 2011 年 IO 月开源了 Dubbo, 开源后的 Dubbo 发展迅速, 大概每 2-3 个月有一次版本更新。然而, 从在 2013 年 3 月开始, Dubbo 暂停了版本更新, 并只在 2014 年 10 月发布了一个小版本,修 复了一个 bug, 之后长期处于版本停止更新的状态。直到 2017 年 9 月,阿里巴巴中间件部门 重新组建了 Dubbo 团队,把 Dubbo 列为重点开源项目 ,并在 2017 年 9~11 月期间, 一直保持 每月一次版本更新的频率。

从学习成本上考虑, Dubbo 的版本趋于稳定,文档完善, 可以即学即用,没有太大难度。 Spring Cloud 居于 Spring Boot 开发, 需要开发者先学会 Spring Boot。另外, Spring Cloud 版本 法代快, 需要快速跟进学习。 Spring Cloud 文档大多是英文的,要求学习者有一定的英文阅读 能力。 此外, Spring Cloud 文档很多,不容易快速找到相应的文档。

从开发风格上来讲, Dubbo 更倾向于 SpringXml 的配置方式, Dubbo 官方也推荐这种方式。 Spring Cloud 基于 Spring Boot, Spring Boot 采用 的是基于注解和 JavaBean 配置方式的敏捷开发。

从开发速度上讲, Spring Cloud 具有更高的开发和部署速度。 最后, Spring Cloud 的通信方式大多数是基于 HTTP Restful 风格的, 服务与服务之间完全 无关、无相合。由于采用的是 HTTP Rest, 因此服务无关乎语言和平台, 共需要提供相应 API 接口 , 就可以相互调用。 Dubbo 的通信方式基于远程调用 , 对接口 、 平台和语言有强依赖性。 如果需要实现跨平台调用服务,需要写额外的中间件, 这也是 Dubbo 存在的原因。 Dubbo 和 Spring Cloud 拥有各自的优缺点。 Dubbo 更易上手,并且广泛使用于阿里巴巴的 各大站点, 经历了“双 ll ” 期间高井发、 大流量的检验, Dubbo 框架非常成熟和稳定。 Spring Cloud 服务框架严格遵守 Martin Fowler 提出的微服务规范, 社区异常活跃,它很可能成为微 服务架构的标准。 

你可能感兴趣的:(面试,JAVA,微服务使用总结)