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. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
posted @ 2021-01-24 20:53  lvyouyou  阅读(60)  评论(0编辑  收藏  举报