Kubernetes

Kubernetes(通常写成“k8s”)是最开始由google设计开发最后贡献给Cloud Native Computing Foundation的开源容器集群管理项目。它的设计目标是在主机集群之间提供一个能够自动化部署、可拓展、应用容器可运营的平台。Kubernetes通常结合docker容器工具工作,并且整合多个运行着docker容器的主机集群。

 

 

Dubbo

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册

 

 

 

 

 

 

Spring Cloud 致力于为典型的使用案例和扩展机制提供良好的开箱即用的体验。

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务到服务(Service-to-service)的调用
  • 负载均衡
  • 熔断器(Circuit Breakers)
  • 全局锁
  • Leader选举和集群状态
  • 分布式消息

 

 

 

 

 

Dubbo

Spring Cloud

服务注册中心

Zookeeper

Spring Cloud Netflix 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 Bus

数据流

Spring Cloud Stream

批量任务

Spring Cloud Task

......

......

......

 

最大的区别:Spring Cloud抛弃了Dubbo 的RPC通信,采用的是基于HTTP的REST方式。
严格来说,这两种方式各有优劣。虽然在一定程度上来说,后者牺牲了服务调用的性能,但也避免了上面提到的原生RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只依靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更为合适。

 

 

 

 

 

 

下表是dubbox与Spring Cloud技术栈对比

功能

Dubbox

Spring Cloud

服务注册中心

Zookeeper

Spring Cloud Netflix Eureka

服务调用方式

RPC/REST API

REST API

服务网关

Spring Cloud Netflix Zuul

熔断器

不完善

Spring Cloud Netflix Hystrix

分布式配置

Spring Cloud Config

服务跟踪

Spring Cloud Sleuth

消息总线

Spring Cloud Bus

数据流

Spring Cloud Stream

批量任务

Spring Cloud Task

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐