provider:
1,spring在遇到dubbo的命名空间时,就会回调DubboNamespaceHandler;2,用DubboBeanDefinitionPaser来解析bean
3,在ServiceConfig拿到提供服务的实际类的ref,通过ProxyFactory的getInvoker方法生成一个AbstractProxyInvoker对象,
4,通过serviceConfig将invoker对象解析为url(registry://..........?export=URL.encode("dubbo://..."))
5,将url传给Protocol扩展点,基于扩展点的Adaptive机制,通过协议头识别,根据RegistoryProtocol.exprot方法生成exporter(dubbo://....),暴露给注册中心;
register
1,调用registryProtocol.ref方法查询到提供者的dubbo协议的url
2,调用dubboProtocol的refer方法得到提供者的引用实例;
3.注册中心通过cluster将多个引用伪装成一个引用
consumer
1,ReferenceConfig的init方法调用protocol的ref方法生成invoker;
2,通过ProxyFactory转化invoker为响应的ref,供接口使用