前言
Dubbo 整体架构分为10层,从宏观上把握这10层架构,并了解各层的功能和扩展点,可以帮助我们更好的了解 Dubbo。
代理层—Proxy
Proxy 层的功能就是使用动态代理的方式为接口创建代理类,Proxy 层最主要的接口就是 ProxyFactory。其默认的扩展点有:stub、jdk、javassist。jdk 使用反射的方式创建代理类,javassist 通过拼接字符串然后编译的方式创建代理类。
- 对于服务提供者,代理的对象是接口的真实实现。
- 对于服务消费者,代理的对象是远程服务的 invoker 对象。
注册层—Registry
注册层主要负责的就是服务的注册发现。这层的主要接口就是 RegistryFactory,其接口方法有 @Adaptive 注解,会根据参数 protocol 来选择实现,默认的扩展实现有:
- zookeeper
- redis
- multicast(广播模式)
- 内存
集群层—Cluster
集群层主要是对多提供者调用场景的抽象,是 Dubbo 整个集群容错的抽象层。主要的扩展点有:容错(Cluster)、路由(RouterFactory)、负载均衡(LoadBalance)。这层的这些扩展点参考之前