随笔分类 -  源码解析

摘要:我们在阅读dubbo源代码的时候经常会看到ExtensionLoader这个类的身影,命名上我们就可以看出它是一个扩展的加载器,在分析源码之前,读者可以首先去dubbo的官方文档中看一下关于扩展点加载的介绍,对ExtensionLoader先有一个初步的认识,便于更好的理解源码,下面我们就以Prot 阅读全文
posted @ 2021-09-13 15:05 bluesky1 阅读(263) 评论(1) 推荐(0) 编辑
摘要:dubbo 的服务由 ServiceBean 暴露,ServiceBean的层次结构: ServiceBean 实现了 InitializingBean,InitializingBean 接口的作用不必多说,实现了 InitializingBean 的 bean ,Spring 会在填充 bean 阅读全文
posted @ 2021-09-13 14:57 bluesky1 阅读(491) 评论(0) 推荐(0) 编辑
摘要:正文注册中心是Dubbo的重要组成部分,主要用于服务的注册与发现,我们可以选择Redis、数据库、Zookeeper作为Dubbo的注册中心,Dubbo推荐用户使用Zookeeper作为注册中心,在provider和consumer的初始化过程中,我们看到了dubbo通过调用RegistryFact 阅读全文
posted @ 2021-09-13 14:47 bluesky1 阅读(659) 评论(0) 推荐(0) 编辑
摘要:承接provider初始化篇,本篇文章我们来分析provider的暴露过程。ServiceConfig: private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs) { St 阅读全文
posted @ 2021-09-13 14:27 bluesky1 阅读(254) 评论(0) 推荐(0) 编辑
摘要:在之前的源码分析文章中,我们看到了dubbo用netty作为底层的网络通信框架,熟悉netty的同学应该知道,使用netty时我们会使用它的各种Handler作为处理一些网络事件的处理器,在开启netty服务时,dubbo添加了NettyHandler作为处理器,pipeline.addLast(" 阅读全文
posted @ 2021-09-13 14:15 bluesky1 阅读(301) 评论(0) 推荐(0) 编辑
摘要:在分析consumer初始化时,我们看到了关联服务引用创建代理的过程,最终会调用JavassistProxyFactory的getProxy方法来创建代理,并用InvokerInvocationHandler对Invoker进行了包装,InvokerInvocationHandler实现了JDK的I 阅读全文
posted @ 2021-09-13 14:07 bluesky1 阅读(162) 评论(0) 推荐(0) 编辑
摘要:我们知道,dubbo的生产者和消费者的关系维护在注册中心,所以,消费者关联生产者肯定是需要订阅注册中心的相关生产者信息才能完成,在Dubbo源码解析之registry注册中心这篇文章中我们分析了dubbo有关注册中心的一些操作如注册、订阅等,在文章的最后,我们分析了消费者订阅注册中心的configu 阅读全文
posted @ 2021-09-13 13:57 bluesky1 阅读(47) 评论(0) 推荐(0) 编辑
摘要:dubbo的consumer由ReferenceBean初始化,我们先来看一下这个类的层次结构: 我们看到ReferenceBean实现了InitializingBean,所以我们先来看一下它的afterPropertiesSet方法实现:ReferenceBean: public void aft 阅读全文
posted @ 2021-09-13 12:02 bluesky1 阅读(102) 评论(0) 推荐(0) 编辑
摘要:正文分析dubbo源码需要读者对Spring自定义标签解析的知识有所了解,可以阅读笔者相关文章进行学习,详见http://blog.csdn.net/heroqiang/article/details/78611213。 文章中介绍的一些配置的使用我们可以从http://dubbo.apache.o 阅读全文
posted @ 2021-09-13 10:36 bluesky1 阅读(149) 评论(0) 推荐(0) 编辑
摘要:ThreadPoolExecutor顾名思义,是一个线程池管理工具类,该类主要提供了任务管理,线程的调度和相关的hook方法来控制线程池的状态。 1.方法说明 任务管理主要方法如下: public void execute(Runnable command);public <T> Future<T> 阅读全文
posted @ 2021-08-19 11:56 bluesky1 阅读(123) 评论(0) 推荐(0) 编辑
摘要:dubbo一共支持四种负载均衡策略,RoundRobinLoadBalance(轮询)、RandomLoadBalance(随机)、LeastActiveLoadBalance(最少活跃)、ConsistentHashLoadBalance(一致性哈希)。默认为随机策略,我门在分析consumer调 阅读全文
posted @ 2021-08-19 11:40 bluesky1 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1. 简介 Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使其能够更好的满足需求。在 Dubbo 中,SPI 是一个非常重要的模块。基于 SPI,我们可以很容易的对 Dubbo 进行拓展。 2. 源码分析 Dubbo SPI 的相关逻辑被封装在了 ExtensionLoa 阅读全文
posted @ 2021-08-19 11:39 bluesky1 阅读(91) 评论(0) 推荐(0) 编辑
摘要:异步 AsyncAppender log4j2突出于其他日志的优势,异步日志实现。我们先从日志打印看进去。找到Logger,随便找一个log日志的方法。 public void debug(final Marker marker, final Message msg) { logIfEnabled( 阅读全文
posted @ 2021-08-19 10:37 bluesky1 阅读(734) 评论(0) 推荐(0) 编辑
摘要:前言 log4j2是apache在log4j的基础上,参考logback架构实现的一套新的日志系统(我感觉是apache害怕logback了)。log4j2的官方文档上写着一些它的优点: 在拥有全部logback特性的情况下,还修复了一些隐藏问题 API 分离:现在log4j2也是门面模式使用日志, 阅读全文
posted @ 2021-08-19 10:36 bluesky1 阅读(1142) 评论(0) 推荐(0) 编辑
摘要:SpringBoot启动过程流程图 源码解析 首先,我们先来看下SpringBoot项目的启动类 @SpringBootApplication public class SpringDemoApplication { public static void main(String[] args) { 阅读全文
posted @ 2021-06-16 10:05 bluesky1 阅读(707) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示