"2021SC@SDUSC"
DUBBO概述
Dubbo 是一款基于spring容器运行的高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。
DUBBO框架结构图
节点说明
Consumer
调用远程服务的服务消费方,使用Dubbo技术部分开发代码,基本都是由配置文件 定义。
Registry
服务注册与发现的注册中心,一个替代 了SOA 结构体系框架中的 ESB 服务总线的 用于发布和订阅服务的平台。
Provider
暴露服务的服务提供方,使用 Dubbo 技术开发部分代码, 以配置文件为主。
Container
服务运行容器,负责启动、加载、运行服务提供者,必须依赖容器才能正常启动, 默认依赖的是spring容器。
Monitor
统计服务的调用次数和调用时间的监控中心,主要功能是监控服务端(Provider) 和消费端(consumer)的使用数据。
DUBBO执行流程
1. start:启动Spring容器时,自动启动Dubbo的Provider
2. register:Dubbo的Provider在启动后自动回去注册中心注册内容,注册的内容包括:
Provider 的 IP
Provider 的端口
Provider 对外提供的接口列表,哪些方法,哪些接口
Dubbo 的版本
访问 Provider 的协议
3. subscribe:订阅,当Consumer 启动时,自动去Registry获取到已注册的服务的信息
4. notify:通知,当Provider的信息发生变化时,自动由Registry向Consumer推送通知。
5. invoke:调用,Consumer 调用Provider中方法
6. count:次数,每隔2分钟,provider 和 consumer 自动向Monitor 发送访问次数,Monitor进 行统计
分工
我负责服务导出、服务引用、服务调用过程三部分的源码分析。