说说 Dubbo 服务暴露的过程。
ServiceConfig 类拿到对外提供服务的实际类 ref(如:HelloWorldImpl) 2、通过 ProxyFactory 类的 getInvoker 方法使用 ref 生成一个 AbstractProxyInvoker 实例,到这一步就完成具体服务到 Invoker 的转化 3、接下来就是 Invoker 转换到 Exporter 的过程:
- ProxyFactory 是动态代理,用来创建 Invoker 对象,实现代理使用 JavassistProxyFactory和 JdkProxyFactory。
- Invoker 是一个服务对象实例,Dubbo 框架的实体域。它可以是一个本地的实现,一个远程的实现或一个集群的实现,可以向它发起 Invoker 调用。
- Protocol 是服务域,负责 Invoker 的生命周期管理,是 Invoker 暴露和引用的主要功能入口,对应该类的 export和 refer方法。
- Exporter 是根据不同协议暴露 Invoker 进行封装的类,它会根据不同的协议头进行识别(比如:registry://和 dubbo://),调用对应 XXXProtocol的 export()方法。