juejin.cn/post/687213… (推荐)
juejin.cn/post/684490…
dubbo服务执行过程源码分析
blog.csdn.net/zhangcongyi… (推荐)
dubbo 执行流程:
dubbo-demo -> dubbo-demo-provider
com.alibaba.dubbo.demo.provider.Provider#main()
dubbo-config -> dubbo-config-spring
com.alibaba.dubbo.config.spring.schema.DubboBeanDefinitionParser#parse()
com.alibaba.dubbo.config.spring.schema.DubboNamespaceHandler#init()
com.alibaba.dubbo.config.spring.ServiceBean#afterPropertiesSet()
dubbo-config -> dubbo-config-api
com.alibaba.dubbo.config.ServiceConfig#export()
com.alibaba.dubbo.config.ServiceConfig#doExport()
com.alibaba.dubbo.config.ServiceConfig#doExportUrls()
com.alibaba.dubbo.config.ServiceConfig#doExportUrlsFor1Protocol()
dubbo-rpc -> dubbo-rpc-default
com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol#export()
一、SPI
主要的类:
dubbo-common
com.alibaba.dubbo.common.extension.ExtensionLoader
测试类:
ExtensionLoader:
com.alibaba.dubbo.common.extensionloader.ExtensionLoaderTest
@Adaptive:
com.alibaba.dubbo.common.extensionloader.ExtensionLoader_Adaptive_Test
@Activate:
com.alibaba.dubbo.common.extensionloader.ExtensionLoaderTest#testLoadActivateExtension
二、线程池
主要的类:
dubbo-common
com.alibaba.dubbo.common.threadpool.ThreadPool
测试类:
com.alibaba.dubbo.common.threadpool.AbortPolicyWithReportTest
三、配置
主要的类:
dubbo-config
com.alibaba.dubbo.config.AbstractConfig
com.alibaba.dubbo.config.spring.ServiceBean
测试类:
com.alibaba.dubbo.config.spring.ConfigTest#testAnnotation
四、服务暴露过程
本地暴露(Injvm):
dubbo-rpc -> dubbo-rpc-injvm
主要的类:
com.alibaba.dubbo.rpc.protocol.injvm.InjvmProtocol
测试类:
com.alibaba.dubbo.demo.consumer.InjvmConsumer
远程暴露(Dubbo):
dubbo-rpc -> dubbo-rpc-injvm
主要的类:
测试类:
五、服务引入过程
本地引入(Injvm):
主要的类:
测试类:
远程引入(Dubbo):
主要的类:
测试类:
六、服务调用过程
主要的类:
测试类: