=============
== Pullock ==
=============
脚踏实地

Java基础之自旋锁介绍

为了更好的学习Java中的AQS,熟悉下自旋锁、排号自旋锁、MCS锁、CLH锁相关的知识。

Read more...

Java基础之管程介绍

为了更好的学习Java中的AQS,先熟悉下管程以及条件变量相关的知识。

Read more...

Java基础之Mutex介绍

为了更好的学习Java中的AQS,先回顾下基础知识mutex互斥锁。

Read more...

Dubbo中服务消费者和服务提供者之间的请求和响应过程

dubbo请求响应过程 dubbo源码

服务提供者初始化完成之后,对外暴露Exporter。服务消费者初始化完成之后,得到的是Proxy代理,方法调用的时候就是调用代理。

服务消费者经过初始化之后,得到的是一个动态代理类,InvokerInvocationHandler,包含MockClusterInvoker,MockClusterInvoker包含一个RegistryDirectory和FailoverClusterInvoker。

Read more...

Dubbo中消费者初始化的过程解析

dubbo消费者初始化 dubbo源码

首先还是Spring碰到dubbo的标签之后,会使用parseCustomElement解析dubbo标签,使用的解析器是dubbo的DubboBeanDefinitionParser,解析完成之后返回BeanDefinition给Spring管理。

服务消费者端对应的是ReferenceBean,实现了ApplicationContextAware接口,Spring会在Bean的实例化那一步回调setApplicationContext方法。也实现了InitializingBean接口,接着会回调afterPropertySet方法。还实现了FactoryBean接口,实现FactoryBean可以在后期获取bean的时候做一些操作,dubbo在这个时候做初始化。另外ReferenceBean还实现了DisposableBean,会在bean销毁的时候调用destory方法。

Read more...

Dubbo中编码和解码的解析

dubbo编解码 dubbo源码
(这里做的解析不是很详细,等到走完整个流程再来解析)Dubbo中编解码的工作由Codec2接口的实现来处理,回想一下第一次接触到Codec2 Read more...

Dubbo中暴露服务的过程解析

dubbo服务暴露 dubbo源码

dubbo暴露服务有两种情况,一种是设置了延迟暴露(比如delay=“5000”),另外一种是没有设置延迟暴露或者延迟设置为-1(delay="-1"):

  • 设置了延迟暴露,dubbo在Spring实例化bean(initializeBean)的时候会对实现了InitializingBean的类进行回调,回调方法是afterPropertySet(),如果设置了延迟暴露,dubbo在这个方法中进行服务的发布。
  • 没有设置延迟或者延迟为-1,dubbo会在Spring实例化完bean之后,在刷新容器最后一步发布ContextRefreshEvent事件的时候,通知实现了ApplicationListener的类进行回调onApplicationEvent,dubbo会在这个方法中发布服务。

但是不管延迟与否,都是使用ServiceConfig的export()方法进行服务的暴露。使用export初始化的时候会将Bean对象转换成URL格式,所有Bean属性转换成URL的参数。

Read more...

Dubbo中SPI扩展机制详解

dubbo SPI dubbo 扩展机制 dubbo源码

前面我们了解过了Java的SPI扩展机制,对于Java扩展机制的原理以及优缺点也有了大概的了解,这里继续深入一下Dubbo的扩展点加载机制。

Read more...

LogCollector中JMX的应用

LogCollector

LogCollector中JMX的使用学习。

Read more...

LogCollector中ScheduledExecutorService的应用

LogCollector

LogCollector中ScheduledExecutorService的使用学习。

Read more...
Previous Page 4 of 5 Next Page