Spring Cloud 和dubbo相比哪个更好用
请问Spring Cloud 和dubbo相比哪个更好用呢?如何选择呢?
推荐答案
同学,你好!Spring Cloud 和dubbo相比哪个更好用呢?个人认为Spring Cloud更好用一些。SpringCloud 在核心要素上要优于 Dubbo。在开发过程中,只要集成了 SpringCloud,就可以顺利完成微服务组件的集成,而 Dubbo 则需要通过定制来扩展各个组件。过滤器用于实现组件集成,开发难度稍大。
SpringCloud的优势
Spring 团队将来自 Pivotal、Netflix、HashiCorp 等公司的许多经过验证的开源项目组合成一个名为 Spring Cloud 的 Spring 项目。Spring Cloud 提供了库和工具,可以快速构建一些分布式系统常用的设计模式,包括:
1.服务发现
JVM 和非 JVM 服务可以在服务注册表中注册自己,并轻松发现生态系统中可用的其他服务。Spring Cloud Netflix Eureka 或 Consul 可用于此目的。
2.分布式配置
由 git 存储库支持的集中式外部配置管理。配置资源直接映射到 Spring 环境,但如果需要,可以由非 Spring 应用程序使用。
3.客户端负载平衡
负载平衡改善了跨多个服务的工作负载分布。Spring Cloud 提供 Ribbon - 一个客户端负载均衡器,它与 Service Registry 对话并使负载均衡变得容易。
4.保险丝
当对服务的方法调用失败时,断路器允许功能正常降级。使用熔断器模式可以让微服务在相关服务发生故障时继续运行,防止故障级联并给故障服务时间恢复。Spring Cloud 提供了 Hystrix,它是断路器模式的一个实现。
5.网关
Spring Cloud Gateway 是基于 Project Reactor 的智能可编程网关。
6.链接跟踪
Spring Cloud 为日志关联和跟踪提供了 Zepkin 和 Sleuth。这对于在真实生产环境中进行深入的故障排除非常有帮助。
7.安全验证
Spring Cloud 通过使用少量注解来提供对 OAuth2 服务器和资源服务的支持。使用这些库可以轻松实现授权和身份验证。
Dubbo优势
Dubbo 只实现了服务治理,而 SpringCloud 子项目涵盖了微服务架构的很多部分,服务治理只是其中的一个方面。Dubbo 提供了一个 Filter 来扩展一些缺失的特性,例如:
分布式配置管理:可以使用淘宝的diamond和百度的disconf实现分布式配置管理
服务链路追踪:可以使用京东开源的Hydra,扩展Filter,使用Zipkin进行服务追踪
批处理任务处理:可以使用当当开源的Elastic-Job和TBSchedule
综合以上,简单对比一下 Spring Cloud 和dubbo相比哪个更好用。近年来,我们也发现了一个现象(或趋势):SpringCloud 和 Dubbo两个生态逐渐融合。随着 SpringCloud Alibaba 的出现,Dubbo 已经能够很好的集成 SpringCloud 系统进行开发。Dubbo用户无需自行扩展Filter即可轻松访问SpringCloud系统的注册中心、配置中心、链接跟踪等产品。SpringCloud 用户也可以在需要高效远程调用的场景中轻松引入 Dubbo,享受 Dubbo 的 RPC 带来的性能优势。所以,虽然SpringCloud有更多优势,但SpringCloud和Dubbo逐渐融合,两个生态应该长期共存,都不会被淘汰。