采用Dubbo?还是Spring Cloud?

开发 新闻
在框架选择上,纠结于到底是采用Dubbo,还是采用Spring Cloud?

实施微服务的首要条件就是选择适合团队的微服务框架。

目前市场上微服务的框架,不管是开源的还是收费的,都有很多,比如Dubbo、Spring Cloud、Tars、Helidon、SOFAStack、gRPC、Thrift、Brpc、Motan等。在选择框架时需要考虑如下技术点。

◎ 服务发布订阅:是自动发现注册,还是手动在线注册。

◎ 服务路由形式:框架中支持的服务路由(比如常用的随机路由)是否满足我们的需求,或者是否支持自定义路由。

◎ 集群容错:集群容错所支持的方式,比如快速失败、失败自动切换等常用的容错方式。

◎ 调用方式:服务的调用方式是否支持同步、异步以及并行调用。

◎ 通信协议:通信协议是否满足业务需求,是否支持自定义协议。

◎ 序列化方式:框架所支持的序列化方式是二进制序列化还是文本方式序列化。

那么在框架选择上,纠结于到底是采用Dubbo,还是采用Spring Cloud?

Dubbo是阿里巴巴(即阿里巴巴集团)开源的一款高性能、轻量级的开源优秀Java版RPC框架,可使应用通过高性能的RPC实现服务的输出/输入功能,可以和Spring框架无缝集成。

Dubbo有三大核心能力:

(1)面向接口的远程方法调用

(2)提供容错和多种负载均衡策略

(3)服务自动注册和发现功能

Spring Cloud是Spring家族的产品,专注于企业级开源框架的研发,它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发。比如,服务发现注册、配置中心、消息总线、负载均衡、熔断器、数据监控等特性都可以用Spring Boot风格做到一键部署和启动。下面我们从总体架构及编程方式方面对Dubbo和Spring Cloud进行详细对比,以便确定到底采用哪种框架。

总体架构对比

Dubbo架构

Dubbo架构的概况如图1-7所示,由Consumer、Provider、Registry、Container和Monitor这5部分组成。

◎ Consumer:调用远程服务的服务消费方(或称为服务消费者)。

◎ Provider:暴露服务的服务提供方(或称为服务提供者),可以通过jar或者容器的方式启动服务。

◎ Registry:服务注册中心和发现中心。

◎ Container:运行服务的容器。

◎ Monitor:调用时间监控中心,统计服务和调用次数。

图片

Spring Cloud架构

Spring Cloud架构的概况如图1-8所示,由Consumer、Provider及Eureka Server这3部分组成。

◎ Provider:暴露服务的提供方。

◎ Consumer:调用远程服务的服务消费方。

◎ Eureka Server:服务注册中心和服务发现中心。

图片


编程方式对比

Dubbo的服务发布和调用流程如下。

(1)先定义接口及DTO参数对象。

(2)实现接口中所定义的方法。

(3)通过XML或者注解方式发布Dubbo服务。

(4)服务消费者在Maven中依赖接口的jar包,通过接口调用服务。

Spring Cloud的服务发布和调用流程如下。

(1)定义API接口文档以及Feign的接口。

(2)服务提供者发布Rest接口。

(3)服务消费者组织接口文档中的参数,通过Feign完成接口调用。

责任编辑:张燕妮 来源: 中生代技术
相关推荐

2021-12-03 06:29:56

K8sDubboSpring

2020-05-26 12:13:43

Spring ClouDubboHTTP

2017-11-20 09:37:43

Dubbo更新Spring Clou

2018-07-10 14:55:32

Git存储配置

2017-11-27 09:35:21

DubboSpring Clou微服务

2018-03-16 09:36:04

微服务Spring ClouDubbo

2017-10-19 09:16:17

DubboSpring Clou架构

2017-10-25 06:39:38

NFVSDN网络

2017-09-20 09:46:38

Spring BootSpring Clou内存

2021-06-04 08:48:46

Spring ClouMaven Centr版本

2022-06-09 08:30:59

Istiospring clo

2017-09-05 14:05:11

微服务spring clou路由

2021-05-17 16:24:58

Spring Clou

2017-12-01 08:54:18

SpringCloudHystrix

2020-12-30 07:49:32

KubernetesJava Spring Clo

2021-11-16 11:45:00

SpringSpring ClouJava

2023-01-05 16:19:30

ERP食品行业

2018-02-09 09:36:25

DubboSpring Clou支付

2009-12-17 10:25:39

Spring 3.0

2024-02-06 18:05:54

微服务SpringCloud
点赞
收藏

51CTO技术栈公众号