青枫绿屿
这个作者很懒,什么都没留下…
展开
-
Dubbo源码分析之ReferenceBean的初始化(三)
目录一、概述二、ReferenceConfig三、JavassistProxyFactory四、Proxy五、InvokerInvocationHandler一、概述通过前两节的分析,我们已经知道,spring容器启动后,会对ReferenceBean初始化。在它的初始化过程中会调用RegistryProtocol的refer方法,它会做如下事情:1.检查和更新x...原创 2019-11-18 19:07:31 · 2388 阅读 · 0 评论 -
Dubbo源码分析之Netty网络服务(二)
目录一、概述二、Exchangers三、HeaderExchanger四、Transporters五、NettyTransporter六、NettyClient七、HeaderExchangeClient八、HeaderExchangeChannel九、NettyChannel一、概述上一篇文章已经分析了Dubbo如何通过netty技术绑定provide...原创 2019-11-15 17:44:06 · 2639 阅读 · 1 评论 -
Dubbo源码分析之ReferenceBean的初始化(二)
上一篇文章对ReferenceBean的初始化的过程有了初步了解,下面我们深入分析它是如何获取zookeeper上service provider的url地址的,并转换成可调用的invoker的。回到RegistryProtocol类中doRefer方法中,我们看到如下代码directory订阅节点信息。directory.subscribe(subscribeUrl.addParame...原创 2019-11-15 14:14:16 · 2460 阅读 · 0 评论 -
Dubbo源码分析之ReferenceBean的初始化(一)
目录一、概述二、ReferenceBean三、ReferenceConfig四、RegistryProtocol五、ZookeeperRegistry六、RouterChain七、FailoverClusterInvoker一、概述spring容器启动dubboprovider服务时,会根据spring.xml的文件配置实例化spring context以及...原创 2019-11-14 16:37:07 · 3911 阅读 · 0 评论 -
Dubbo源码分析之InternalThreadLocal
目录一、概述二、InternalThread三、InternalThreadLocalMap四、InternalThreadLocal五、RpcContext一、概述jdk提供线程变量存放区ThreadLocal,采用的是对于不同线程Thread创建对应的ThreadLocalMap用于存放用户的变量的机制,当用户调用ThreadLocal.get()方法获取变量时,T...原创 2019-11-13 15:29:43 · 2483 阅读 · 3 评论 -
Dubbo源码分析之Netty网络服务(一)
目录一、概述二、Exchangers三、HeaderExchanger四、Transporters五、NettyTransporter六、NettyServer七、NettyServerHandler一、概述Dubbo service的provide和consume底层默认使用netty进行网络通信,并将请求对象根据自定义的codec规则进行编码及解码,从而完成...原创 2019-11-12 18:34:02 · 1993 阅读 · 2 评论 -
Dubbo源码分析之QoS服务(二)
一、概述上一篇文章介绍了Dubbo的QoS服务的基本作用和配置使用https://blog.csdn.net/qq_33513250/article/details/102978132接下来我们进行源码分析它的功能是如何实现的。二、QosProtocolWrapperdubbo服务提供者ServiceBean的初始化过程中,会调用Protocol接口的export方法,Rere...原创 2019-11-12 11:09:49 · 4649 阅读 · 1 评论 -
Dubbo源码分析之QoS服务(一)
目录一、概述二、QoS配置三、连接1.telnet连接2.http连接四、命令1.help帮助菜单2.ls列出所有服务3.online上线服务4.offline下线服务5.quit关闭连接一、概述QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制, 是用...原创 2019-11-08 18:26:51 · 4028 阅读 · 1 评论 -
Dubbo源码分析之ServiceBean的初始化(三)
目录一、概述二、doLocalExport三、总结一、概述在ServiceBean的初始化(二)文章中,我对RegitryProtocol类的export方法做了初步的分析,主要学习了register(registryUrl, registeredProviderUrl)方法是通过ZookeeperRegistry向zookeeper注册provider信息。下面我们接着看Re...原创 2019-11-08 16:39:24 · 1899 阅读 · 1 评论 -
Dubbo源码分析之Filter和InvokerChain
目录一、概述二、Filter三、ProtocolFilterWrapper一、概述Dubbo的serviceBean初始化export时和ReferenceBean初始化refer引用provider端的Invoker时,都会调用ProtocolFilterWrapper包装类的buildInvokerChain方法对Invoker包装成添加了过滤器链的CallbackRegi...原创 2019-11-07 18:45:04 · 2445 阅读 · 1 评论 -
Dubbo源码分析之CuratorZookeeperClient与CuratorZookeeperTransporter
一、概述Dubbo使用Zookeeper作为service注册中心时,provider发布是在zookeeper服务器上创建/dubbo父节点,然后再在上面创建以url为路径的子节点,Customer获取子节点路径进行解析,建立Netty连接,调用服务,获取结果。Dubbo默认使用开源的Curator作为zookeeper的客户端,并进行了基本的API封装,下面我们来分析CuratorZook...原创 2019-11-01 11:08:50 · 3652 阅读 · 1 评论 -
Dubbo源码分析之ServiceBean的初始化(二)
目录一、概述二、doExport一、概述上一篇文章中对Dubbo的ServiceBean初始化checkAndUpdateSubConfigs方法做了简单的源码跟踪分析。它会startConfigCenter,prepareEnvironment,getDynamicConfiguration,进而启动zookeeper客户端,连接至zookeeper。https://blog...原创 2019-10-31 16:49:49 · 2429 阅读 · 1 评论 -
Dubbo源码分析之SPI(三) | ExtensionLoader
目录一、概述二、AdaptiveClassCodeGenerator三、getExtension方法一、概述上一篇文章介绍了Dubbo的SPI机制ExtensionLoader源码,分析了ExtensionLoader如何从META-INFO/dubbo等目录下获取service provider,并了解了它的缓存机制,缓存class字节码,缓存实例化异常Exception,...原创 2019-10-31 11:11:21 · 2837 阅读 · 1 评论 -
Dubbo源码分析之SPI(二) | ExtensionLoader
一、概述上一篇文章已经介绍了jdk SPI机制的源码,Dubbo也采用SPI机制进行接口服务的扩展ExtensionLoader,不过采用了不同的实现方式,相比于jdk提供的ServiceLoader复杂的多,丰富了以下几个功能。1.自动注入依赖的扩展类2.自动包装扩展类3.增加注解SPI,提供默认实现类4.提供注解Adaptive,采用javassist动态生成代码,默认实现...原创 2019-10-30 16:24:40 · 2715 阅读 · 1 评论 -
Dubbo源码分析之SPI(一) | serviceLoader
目录一、概述二、JDK ServiceLoader一、概述SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来对框架扩展和组件的替换,实现服务接口可插拔,通过配置文件进行动态配置。许多框架中使用到了SPI机制,例如日志log4j,xml解析工厂,FileSystem文件系统,dubbo等。二、JDK S...原创 2019-10-29 18:46:28 · 2661 阅读 · 0 评论 -
Dubbo源码分析之ServiceBean的初始化(一)
一、概述spring容器启动dubboprovider服务时,会根据spring.xml的文件配置实例化spring context以及初始化bean,DubboNamespaceHandler注册DubboBeanDefinitionParser解析xml,实例化有关dubbo的相关bean。当初始化服务提供者ServiceBean时,调用afterPropertiesSet方法时,会打开...原创 2019-10-28 16:00:22 · 3629 阅读 · 2 评论 -
zookeeper的应用(一) | Dubbo
目录一、概述二、背景三、Apache Dubbo四、Demo代码1.pom文件2.创建service接口3.创建service实现类4.配置provider.xml5.编写service provider spring启动类6.配置consumer.xml7.编写service consumer spring启动类8.测试一、概述上一篇文...原创 2019-10-25 09:37:57 · 5983 阅读 · 2 评论