一、Dubbo概述
1)概述
2)六大核心功能
装饰者模式,A服务调用B服务xx接口的业务方法时,在Dubbo中并不是直接调用,而是先调用Adapter,再通过Adapter调用Wrapper,有多少Wrapper就包装多少层,最里层的Wrapper才真正调用xx接口的业务方法。这样可以在业务之前实现更多逻辑——业务、Adapter、Wrapper都是通过SPI机制使用,由于基于SPI文件的形式我们不需要动Dubbo的框架可以自己添加Adapter和Wrapper进行增强
3)架构和名词解释
SPI可以破坏双亲委派机制,双亲委派机制一般指服务在找某个类的时候,一般先找App层的类加载器(对应classpath,一般我们写的类都属于classpath),App层通过findClass()方法找到直接返回,找不到请求父加载器Ext层(Jre/lib/ext/*.jar),Ext层通过findClass()方法找到直接返回,找不到再请求父加载器BootStrap层(Jre/lib/rt.jar),BootStrap层通过findClass()方法找到直接返回,找不到自己尝试从rt.jar包中加载,rt.jar找不到通知Ext层尝试在Jre/lib/ext/*.jar中加载, Jre/lib/ext/*.jar找不到通知App层在classpath中加载,classpath找不到再通知自定义类加载器(一般用不到)。双亲委派机制保证了核心的类不会被改变(比如自定义的String类加载不进去,即时包名也是java.lang也替换不了),缺点是加载有隔离性每一层只能加载自己路径下的类
如下图所示:
Comsumer本地缓存一份Provider列表,通过Registry的notify来更新列表
二、搭建admin客户端
三、Dubbo使用演示
1)通过API方式使用Dubbo
2)通过Spring整合Dubbo
3)Dubbo的相关特性
3.1)属性配置优先级
3.2)启动时检查
3.3)请求超时设置
3.4)重试次数
3.5)多版本控制
3.6)本地存根
4)通过Springboot整合Dubbo
5)Dubbo的高可用性
5.1)注册中心宕机
5.2)负载均衡
5.3)zookeeper注册中心