1、Dubbo:一个分布式、高性能、透明化的RPC服务框架(所谓的RPC框架就是不知道远程服务器的具体实现,只知道远程服务器提供了什么功能,这里运用了代理设计模式 )
2、作用:提供服务自动注册、自动发现等高效服务治理方案.
3、Dubbo架构图(重点)
3.1 :Provider :提供者,服务发布方.
3.2:Consumer:消费者, 调用服务方
3.3:Container:Dubbo容器.依赖于Spring容器.
3.4:Registry:注册中心.当Container启动时把所有可以提供的服务列表上Registry中进行注册.
3.4.1作用:告诉Consumer提供了什么服务和服务方在哪里.
3.5:Monitor:监听器
3.6:虚线都是异步访问,实线都是同步访问
3.7:(init 初始化)蓝色虚线:在启动时完成的功能
3.8:红色虚线(实线)都是程序运行过程中执行的功能
3.9:所有的角色都是可以在单独的服务器上.所以必须遵守特定的协议.
4、运行原理(重点)
4.0:(start)启动容器,相当于在启动Dubbo的Provider
4.1:(registry)启动后会去注册中心进行注册,注册所有可以提供的服务列表
4.2:(subscribe 订阅)在Consumer启动后会去register中获取服务列表和Provider的地址,进行订阅
4.3:(notify 通知)当Provider有修改后,注册中心会把消息推送给Consumer
4.3.1:使用了观察者设计模式(又叫发布/订阅设计模式)。这里的Registry相当于被观察者,Consumer相当于观察者,当Consumer发现Registry发生了变化后,Consumer就会跟随变化并发生一定的改变
4.4:(invoke)根据获取到的Provider地址,真实调用Provider中的功能
4.4.1:在Consumer方使用了代理设计模式,创建Provider方类的一个代理对象,通过代理对象获取Provider中的真实功能,起到保护Provider真实功能的作用
4.5:(count)Consumer和Provider每隔1分钟就会向Monitor发送统计信息,统计信息包括访问次数、频率等。