zoukankan      html  css  js  c++  java
  • dubbo learn

    ====================server=============================================

    ExchangeHandlerAdapter

    Exchanger
    HeaderExchange
    HeaderExchangeServer

    org.apache.dubbo.registry.integration.RegistryProtocol#export

    org.apache.dubbo.registry.integration.RegistryProtocol#doLocalExport

    org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper#export

    org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper#export

    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#export

    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#openServer

    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#createServer

    org.apache.dubbo.remoting.exchange.Exchangers#bind(org.apache.dubbo.common.URL, org.apache.dubbo.remoting.exchange.ExchangeHandler)
    return getExchanger(url).bind(url, handler);

    org.apache.dubbo.remoting.exchange.support.header.HeaderExchanger#bind
    return new HeaderExchangeServer(Transporters.bind(url, new DecodeHandler(new HeaderExchangeHandler(handler))));

    HeaderExchangeHandler
    DubboPtotocol

    DecodeHandler
    HeaderExchangeHandler
    Transporter
    NettyTransporter
    -> NettyServer

    ============================================org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers#wrap

    new MultiMessageHandler(new HeartbeatHandler(ExtensionLoader.getExtensionLoader(Dispatcher.class)
    .getAdaptiveExtension().dispatch(handler, url)));

    AllChannelHandler ==== ExtensionLoader.getExtensionLoader(Dispatcher.class)
    .getAdaptiveExtension().dispatch(handler, url)
    DecodeHandler

    HeartbeatHandler
    AllChannelHandler

    MultiMessageHandler
    HeartbeatHandler

    NettyServer
    MultiMessageHandler

    org.apache.dubbo.remoting.transport.AbstractServer#doOpen
    org.apache.dubbo.remoting.transport.netty4.NettyServer#doOpen




    ====================client=============================================

    ReferenceCountExchangeClient


    org.apache.dubbo.config.ReferenceConfig#get
    org.apache.dubbo.config.ReferenceConfig#init
    org.apache.dubbo.config.ReferenceConfig#createProxy
    org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper#refer
    org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper#refer
    org.apache.dubbo.registry.integration.RegistryProtocol#refer
    org.apache.dubbo.registry.integration.RegistryProtocol#doRefer
    org.apache.dubbo.registry.zookeeper.ZookeeperRegistry#doSubscribe
    org.apache.dubbo.registry.support.AbstractRegistry#notify(org.apache.dubbo.common.URL, org.apache.dubbo.registry.NotifyListener, java.util.List<org.apache.dubbo.common.URL>)
    org.apache.dubbo.registry.integration.RegistryDirectory#notify
    org.apache.dubbo.registry.integration.RegistryDirectory#refreshOverrideAndInvoker
    org.apache.dubbo.registry.integration.RegistryDirectory#refreshInvoker
    org.apache.dubbo.registry.integration.RegistryDirectory#toInvokers
    org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper#refer
    org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper#buildInvokerChain
    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#refer
    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#getClients
    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#getSharedClient
    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#buildReferenceCountExchangeClientList
    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#buildReferenceCountExchangeClient
    org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol#initClient
    心跳,断线重连
    org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient#HeaderExchangeClient



    org.apache.dubbo.rpc.cluster.support.FailoverClusterInvoker#doInvoke


    org.apache.dubbo.rpc.protocol.InvokerWrapper#invoke
    org.apache.dubbo.rpc.listener.ListenerInvokerWrapper#invoke

    org.apache.dubbo.rpc.protocol.AbstractInvoker#invoke
    org.apache.dubbo.rpc.protocol.dubbo.DubboInvoker#doInvoke
    org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient#request(java.lang.Object, int)
    org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient#request(java.lang.Object, int)
    org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeChannel#request(java.lang.Object, int)

  • 相关阅读:
    VS 2013 中如何自定义快捷键(图解)
    c# XML读取
    Java与.NET的WebServices相互调用
    .NET 的 WCF 和 WebService 有什么区别?(转载)
    2017年第六届数学中国数学建模国际赛(小美赛)比赛心得
    网络分析法(Analytic Network Process,ANP)
    图的简单应用(C/C++实现)
    【Android开发学习笔记之一】5大布局方式详解
    Android布局属性详解
    Android应用程序使用两个LinearLayout编排5个Button控件
  • 原文地址:https://www.cnblogs.com/parkdifferent/p/10952573.html
Copyright © 2011-2022 走看看