01 | Dubbo源码环境搭建

  • Dubbo 架构

Dubbo主要包含了以下几个方面

  • registry :注册中心 负责服务地址的注册与查找。 服务的Provider和Consumer 在启动时和注册中心进行交互 注册中心通过长连接感知Provider的存在,在Provider出现宕机的时候,注册中心会立即推送相关事件通知Consumer
  • Provider : 服务的提供者。启动时会向注册中心进行注册操作,将自己的服务地址和相关的配置信息封装到URL中,然后注册到注册中心之中。
  • Consumer :服务消费者。启动时会向注册中心进行订阅操作,订阅操作会从ZooKeeper这个注册中心之中获取Provider注册时提供的URL信息,获取到Provider URL之后,Consumer会和Provider建立连接,然后根据负载均衡算法选择一个Provider向其发起RPC调用。如果Provider URL发生变更,Consumer会通过之前订阅过程中在注册中心添加的监听器获取最新的Provider信息,并进行相应的调整,比如:断开与宕机Provider之间的连接,并与新的Provider建立(长)连接。并且Consumer会缓存Provider的信息,所以,一旦连接建立,即使注册中心宕机也不会影响已有的连接。
  • Monitor : 用于统计服务的调用次数和调用时间。Provider和Consumer在运行过程中在内存中统计调用的次数和调用的时间,定时将统计数据发给监控中心,一般是5分钟发送一次。所以监控中心宕机并不会影响Provider和Consumer的功能,只是会丢失监控数据。

  • 搭建Dubbo源码环境,构建一个Demo实例可运行的最简环境

从官方仓库https://github.com/apache/dubboFork到自己的仓库

  • 然后执行git clone
  • 之后切换分支git checkout -b dubbo-2.7.7 dubbo-2.7.7
  • 执行mvn命令进行编译mvn clean install -Dmaven.test.skip=true
  • 转换成IDEA项目mvn idea:idea // 要是执行报错,就执行这个 mvn idea:workspace

  • 深入介绍Dubbo源码中各个核心模块的功能

  • 详细分析Dubbo源码自带的三个Demo示例,简单回顾Dubbo的基本用法。
posted @ 2021-02-08 18:43  bm小明  阅读(99)  评论(0)    收藏  举报