Dubbo入门一

dubbo:实现了分布式系统中的互相调用
Zookeeper:统一管理的调度中心。

1 为什么说dubbo性能

远程调用最关键、最耗时的两点:序列化和网络通信。

序列化:本地对象要在网络上传输,必须要实现Serializable接口,也就是必须序列化。
序列化方式,如xml、json、二进制流等,dubbo采用二进制流效率最高,因为计算机就是二进制的。
(PS:基本数据类型、String都已经实现了序列化)

网络通信:不同于HTTP需要7步走(三次握手、四次挥手)。
dubbo采用Socket通信机制,一步到位,提升了通信效率,并且可以建立长连接,不用反复连接,直接传输数据。

其他RPC框架:gRPC、Thrift、HSF等。

2 六大核心能力

dubbo是一款高性能、轻量级的开源RPC框架,提供了六大核心能力:

  • 面向接口代理的高性能RPC调用
  • 智能容错和负载均衡
  • 服务自动注册和发现
  • 高度可扩展能力
  • 运行期流量调度
  • 可视化的服务治理与运维

官网:https://dubbo.apache.org/zh/

3 dubbo架构

节点 角色说明
Provider 暴露服务的服务提供方
Consumer 调用远程服务的服务消费方
Registry 服务注册与发现的注册中心
Monitor 统计服务的调用次数调用间的监控中心
Container 服务运行容器(指的就是spring容器
dubbo与Spring是无缝对接的)

调用关系说明

  1. 服务容器负责启动,加载,运行服务提供者。
  2. 服务提供者在启动时,向注册中心注册自己提供的服务。
  3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
  6. 服务消费者和提供者,在内存中累计调用次数调用时间,定时每分钟发送一次统计数据到监控中心。

相关文章

在网络请求时,总会有各种异常情况出现,我们需要提前处理这...
作者:宇曾背景软件技术的发展历史,从单体的应用,逐渐演进...
hello,大家好呀,我是小楼。最近一个技术群有同学at我,问我...
 一个软件开发人员,工作到了一定的年限(一般是3、4年左右...
当一个服务调用另一个远程服务出现错误时的外观Dubbo提供了多...
最近在看阿里开源RPC框架Dubbo的源码,顺带梳理了一下其中用...