简介
微服务有两张实现架构, 一个是Pivotal团队的Spring Cloud, 一个是阿里的Dubbo.
Spring Cloud基于SpringBoot, 提供了提供了微服务开发的一些常用组件, 如服务注册和发现(Eureka)、配置中心(Spring Cloud Config)、熔断器(Hystrix)、智能路由(Zuul)、负载均衡(Ribbon)等。
Dubbo是阿里巴巴开源的一个分布式服务框架. 包含三个核心功能: PRC远程调用, 集群容错, 服务发现.
总的来说, 两者的比较本质上是比较 REST 和 RPC. SpringCloud 是一个完整的微服务解决方案, 提供分布式情况下各种解决方案的合集. 而 Dubbo 是一个高性能的 java RPC 框架.
Spring Cloud 和Dubbo的比较
- 微服务关注点 微服务关注点Spring CloudDubbo配置管理Config–服务发现Eureka,ZookeeperZookeeper负载均衡Ribbon自带网关Zuul–分布式追踪Spring Cloud Sleuth–容断Hystrix不完善通信方式Http,MessageRPC安装模块Spring Cloud Security–Spring Cloud拥有很多项目模块, 包含了微服务的方方面面.
- Spring Cloud GitHub仓库更新速度快, Dubbo更新速度慢.
- Dubbo是中文文档, 更易上手, 学习成本低. 广泛用于阿里的各大站点, 非常成熟和稳定.
Spring Cloud 和 Kubernetes的比较
- Spring Cloud是一个构建微服务的框架, k8s是通过对运行的容器的编排来实现构建微服务.
- 两者都提供了构建微服务所需的全部功能.
- Spring Cloud采用Java语言开发, 基于Spring平台, 继承Spring Boot快速开发的优势, 是Java程序员实现微服务的最佳实现. k8s是面向DevOps人员的, 要学习很多运维的知识, 学习成本很高