Spring Cloud|03 Spring Cloud与Dubbo

几点说明服务器

一、本系列Spring Cloud的博客参考了方志朋所著《深刻理解Spring Cloud与微服务构建》;
二、你们若是想更加深刻的理解Spring Cloud 建议多实战、多看书;markdown

Dubbo简介


介绍

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可经过高性能的 RPC 实现服务的输出和输入功能,能够和Spring框架无缝集成。架构

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:负载均衡

  1. 面向接口的远程方法调用:封装了长链接的NIO框架,例如:Netty、Mina等等;框架

  2. 智能容错和负载均衡;ide

  3. 服务自动注册和发现;集成Apache的Zookeeper组件,用于用户的注册与发现;

Dubbo框架的运行流程以下:

  1. 服务提供者注册进入服务注册中心;微服务

  2. 服务消费者订阅服务;性能

  3. 服务消费者发现服务;中间件

  4. 服务消费者经过远程调度来找到服务提供者进行服务的消费;blog

  5. 服务消费者和服务提供者定时发送心跳数据到服务监控中心用于记录调用次数和时间;

Dubbo的优势:

  1. 连通性:服务注册中心、服务提供者、服务消费者、服务监控中心都是长链接;

  2. 健壮性:监控中心宕机不会影响其余的服务的正常进行,服务器集群配置的话,任意一个服务的宕机都不会影响总体的服务的运行情况;

  3. 伸缩性:能够动态增减注册中心与服务的实例数量;

  4. 升级性:服务器集群升级,不会对现有架构形成压力;

Spring Cloud 与 Dubbo

Spring Cloud|03 Spring Cloud与Dubbo

其余方面:

  1. 更新频率
    Spring Cloud保持着十分高频率的更新,而且社区活跃度也很高,这对于一个架构来讲是一件十分利好的事情,至少Spring Cloud是在飞速发展的;
    而Dubbo自从2013年3月开始暂停了更新,接下来的五年时间里都没有进行技术上的更新迭代,直到2017年9月才从新更新;

  2. 开发风格
    Spring Cloud更趋向使用注解+JavaBean的配置方式的敏捷开发;
    Dubbo则趋向于使用Spring XML的配置方式;

  3. 通讯方式Spring Cloud大多数使用的是基于HTTP Restful的风格,服务与服务之间彻底无关、解耦合;Dubbo则是基于RPC的远程调用方式,对于平台、接口、语言有强依赖;跨平台调用服务比较困难,须要额外写中间件;