• 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)

  • 相关阅读:
    SQL调用另一台服务器的表及存储过程(SQL函数openrowset()的使用以及相关问题处理)
    解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法
    sql server exec 参数的传递
    c#修改webservice 的地址和端口(修改配置文件)
    JS转换HTML转义符,编码及解码
    nginx使用ssl模块配置支持HTTPS访问,腾讯云申请免费证书
    thinkcmf 相关
    ThinkJS 开发node后端 使用 简介
    linux复制指定目录下的全部文件到另一个目录中
    谷歌地图,国内使用Google Maps JavaScript API,国外业务
  • 原文地址:https://www.cnblogs.com/parkdifferent/p/10952573.html
Copyright © 2020-2023  润新知