1.Dubbo简介

Apache Dubbo 是一款高性能的java rpc框架,其前身是阿里巴巴开源的,轻量级的框架,

可以和spring框架集成。

那么什么是rpc呢?

rpc的全称为 remote procedure call , 即远程过程调用.

举一个例子:

假如现在有两台服务器A和B,A的上部署了一个应用,B的上部署了一个应用,如果A的应用要调用B的应用上提供的方法,,由于两个服务器不在一个内存空间,不能直接调用,所以需要通过网络来进行调用.

注意: RPC 并不是一个具体的技术,而是指整个网络远程调用过程,java的RPC框架有很多,例如 Dubbo,RMI,Hession。

Dubbo提供了三大核心能力: 1️⃣ 面向接口的远程方法调用 2️⃣ 智能容错和负载均衡 3️⃣ 服务的自动注册和发现

2.下面来简单介绍下dubbo是怎么工作的:

如图:

节点

简单说明

provider服务的提供者
consumer服务的消费者
Registry服务的注册与发现中心
Monitor服务的监控(统计服务的调用次数和调用时间)
container服务的运行容器

调用关系说明:

0. 服务的运行容器负责 加载,启动,运行服务的提供者.

1.服务的提供者 向注册与发现中心 注册自己提供的服务

2.服务的消费者 从注册与发现中心 订阅自己需要的服务

3.注册中心返回提供者的地址列表给消费者,如果有变更,注册与发现中心会通知(变更数据给)消费者

4.服务的消费者会从提供者的地址列表里基于负载均衡的算法,选一台进行调用

5.服务的消费者和服务的提供者,在内存中累计调用次数和调用时间,并将这些数据发送给服务的监控.

3.zookeeper(服务注册中心)

不难看出,上面的那幅图中Registry起到了至关重要的作用,Dubbo官方推荐使用zookeeper作为服务的注册中心

3.1 zookeeper介绍

       Zookeeper是Apache Hadoop的子项目,是一个树形的目录服务,树形的目录服务就比如自己电脑的目录服务。

       zookeeper 树型目录服务:

     

说明:

       1️⃣  服务的提供者(Provider) 启动时,向 /dubbo/service/provider 写入自己的url地址

       2️⃣  服务的消费者(Consumer)启动时, 向 /dubbo/service/provider 订阅自己需要的url地址,并向/dubbo/service/consumer 写入自己的url地址

       3️⃣ 服务的监控者(Monitor)启动时,从/dubbo/service 订阅全部的消费者和提供者的url地址

以上简单的介绍了下dubbo 和 其注册中心 zookeeper.

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐