Dubbo源码分析
2022-06-14 13:10:12 0 举报
dubbo链路图
作者其他创作
大纲/内容
JavassistProxyFactory#getInvoker
initialize
注册方法
远程协议导出
DubboBootstrap实例化
本地协议导出
ZookeeperRegistryFactory#createRegistry(URL)
checkAndUpdateSubConfigs
Container
无注册中心
Wrapper#getWrapper
new 2.DubboPtorocolServer(ExchangeServer)
1.服务初始化2.服务导出3.服务引入
2.openServer(URL)
doExport
ServiceConfig#export
多协议多注册中心导出服务(把当前对象转换成URL)
AbstractRegistryFactoy#getResitry
NettyTransporter#bind
new NettyServer(URL,ChannelHandler)
HeaderExchanger#bind -> ExchangeServer
doExportUrlsFor1Protocol
RegistryProtocol#export
CuratorZookeeperTransporter
loadRegistries
DubboProtocol#export(Invoker<T> invoker)-> Exporter<T>
NettyServer#doOpen
有注册中心
1.是否导出2.是否延迟导出3.初始化数据
registerURL
doLocalExport(Invoker,URL)
getExchangeer -> HeaderExchanger
为服务引用ref生成Invoker对象
创建CuratorFramework实例,并启动
CuratorZookeeperClient
ZookeeperRegistry
配置检查
CuratorZookeeperClient#createPersistent#createEphemeral
3.optimizeSerialization
ZookeeperRegsitry#doRegister
将调用请求转发给Wrapper的invokeMethod
Transporters.bind
获取Registry实例
doExportUrls
3.检测是否存在client参数代表的Transporter拓展
FailbackRegistry#registry(URL)
new DecodeHandler
1.检测是否存在server参数代表的Transporter拓展
registerServiceInstance
多协议单注册中心导出服务1.获取各种配置进行缓存2.获取创建包装实例、获取主机和端口3.导出scope=none,不导出;scope!=remote,导出到本地;scope!=local,导出到远程
createServer(URL)
2.InjvmProtocol#export(Invoker<T> invoker) -> Exporter<T>
start
exportLocal
ServiceBean#onApplicationEvent
DubboBootstrapApplicationListener#onApplicationContextEvent
2.创建服务器实例
创建一个InjvmExport实例,将Invoker等缓存到本地
exportServices
远程服务注册
ZookeeperTransporter#connect(URL)
0 条评论
下一页