Dubbo速览

Dubbo现在是业内广泛使用的RPC框架,通过速览其架构,概念和涉及的技术,我们可以快速理解和掌握RPC的使用及原理。

一、Dubbo架构

Dubbo涉及以下几个交互组件:

1)Provider:服务提供者

2)Consumer:服务消费者

3)Registry:注册中心,用作服务注册发现

4)Monitor:监控中心,监控服务调用

dubbo-architucture

二、Dubbo相关技术

以下从Dubbo-用法示例中抽取的个人认为较代表性内容:

1. 关于调用路径

1)负载均衡

2)路由规则

2. 关于通讯协议

1)多协议支持和发布

3. 关于服务注册发现

1)单注册中心

2)多注册中心

4. 关于高可用

1)集群容错

2)服务降级

5. 关于运维

1)动态配置中心

6. 关于泛化

1)发布泛化服务

2)进行泛化调用

7. 关于同步异步

1)provider异步执行

2)consumer异步调用

8. 关于连接控制

1)超时设置

2)并发控制

3)连接控制

9. 关于增强

1)本地存根

2)本地伪装

三、问题场景

从以上Dubbo涉及的技术,我们可以想象其可能面临场景,然后去理解Dubbo是如何解决的,更能鞭辟入里。当然可能每个问题的解决方案都会有多种,有时候方案的选择只是迈左脚还是迈右脚的问题,没有高低只有左右。我们不能盲目的认为Dubbo现存的方案就是正确的,要辩证的学习。

  1. 网络故障
    • 单注册中心下,注册中心、Provider、Consumer之间的通路随机遭遇网络中断时会发生什么?
    • 多注册中心下,注册中心、Provider、Consumer之间的通路随机遭遇网络中断时会发生什么?
  2. 超时问题
    • provider和consumer的配置超时的区别是什么?
    • consumer实现控制超时的方法?(可利用此机制实现http请求总超时控制)
  3. 关于泛化
    • 为什么要有泛化?泛化带来了什么好处?
    • 泛化中枚举类型是如何处理的?
    • provider泛化和consumer泛化的具体使用
  4. Consumer本地缓存注册中心Provider信息
    • 缓存的失效策略是什么?重启后是否要重新从注册中心获取。
  5. 负载均衡
    • 为什么要均衡负载?

# 参考

  1. https://dubbo.apache.org/zh/docs/v2.7/user/preface/architecture/

评论