几点说明
1、本系列 Spring Cloud 的博客参考了方志朋所著《深入理解 Spring Cloud 与微服务构建》;
2、大家如果想更加深入的理解 Spring Cloud 建议多实战、多看书;
Dubbo 简介
介绍
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。
Dubbo 是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:
-
面向接口的远程方法调用:封装了长连接的 NIO 框架,例如:Netty、Mina 等等;
-
智能容错和负载均衡;
-
服务自动注册和发现;集成 Apache 的 Zookeeper 组件,用于用户的注册与发现;
Dubbo 框架的运行流程如下:
- 服务提供者注册进入服务注册中心;
- 服务消费者订阅服务;
- 服务消费者发现服务;
- 服务消费者通过远程调度来找到服务提供者进行服务的消费;
- 服务消费者和服务提供者定时发送心跳数据到服务监控中心用于记录调用次数和时间;
Dubbo 的优点:
- 连通性:服务注册中心、服务提供者、服务消费者、服务监控中心都是长连接;
- 健壮性:监控中心宕机不会影响其他的服务的正常进行,服务器集群配置的话,任意一个服务的宕机都不会影响整体的服务的运行状况;
- 伸缩性:可以动态增减注册中心与服务的实例数量;
- 升级性:服务器集群升级,不会对现有架构造成压力;
Spring Cloud 与 Dubbo
服务关注点 | Spring Cloud | Dubbo |
---|---|---|
配置管理 | config | 无 |
服务发现 | Eureka、Consul、Zookeeper | Zookeeper |
负载均衡 | Ribbon | 自带 |
网关 | Zuul | 无 |
分布式追踪 | Spring Cloud Sleuth | 无 |
容错 | Hystrix | 不完善 |
通信方式 | HTTP、Message | RPC、NIO |
安全模块 | Spring Cloud Security | 无 |
其他方面:
- 更新频率
Spring Cloud 保持着十分高频率的更新,并且社区活跃度也很高,这对于一个架构来说是一件十分利好的事情,至少 Spring Cloud 是在飞速发展的;
而 Dubbo 自从 2013 年 3 月开始暂停了更新,接下来的五年时间里都没有进行技术上的更新迭代,直到 2017 年 9 月才重新更新; - 开发风格
Spring Cloud 更趋向使用注解 +JavaBean 的配置方式的敏捷开发;
Dubbo 则趋向于使用 Spring XML 的配置方式; - 通信方式
Spring Cloud 大多数使用的是基于 HTTP Restful 的风格,服务与服务之间完全无关、解耦合;
Dubbo 则是基于 RPC 的远程调用方式,对于平台、接口、语言有强依赖;跨平台调用服务比较困难,需要额外写中间件;
END
2019 年 8 月 13 日 10:12:22
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于