![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
文章平均质量分 90
田哥coder
我是田维常,一名热爱技术、热爱生活的Java程序员。专注于分享java基础、dubbo源码、zookeeper、 rabbitmq、mybatis源码、微服务springboot、集群、分布式、多线程等相关知识与实战经验。欢迎大家积极交流,共同探讨。也欢迎关注我的公众号:Java后端技术全栈。
展开
-
Dubbo服务注册源码分析
本代码版本基于Dubbo2.7.8版本进行源码分析注册概览扫描所有@DubboService注解, 加载配置文件, 装载注解中的所有属性, 把每个服务都封装成一个ServiceBean, 注入到Spring容器 容器启动之后刷新上下文时, 触发事件监听, 调用DubboBootstrap.start()方法进行dubbo服务注册与发布 拿到所有服务, 遍历注册中心, 遍历所有协议, 拼接URL 对于注册中心进行注册, 然后对于不同协议的服务进行发布 针对不同的Protocol执行export原创 2022-03-31 12:35:22 · 2621 阅读 · 0 评论 -
dubbo系列--集群容错
作为一个程序员,咱们在开发的时候不仅仅是完成某个功能,更要考虑其异常情况程序如何设计,比如说:dubbo的消费端调用服务方异常的情况,要不要处理?如何处理?dubbo提供了多种集群容错机制,默认是failover,也就是失败后重试。可以自行扩展集群容错策略,参见:dubbo官网 图中各节点关系: 这里的 Invoker 是 Provider 的一个可调用 Service 的抽象,...原创 2018-11-08 23:02:18 · 245 阅读 · 0 评论 -
dubbo系列--dubbo中是如何实现IOC的
在前面dubbo源码翻阅中已经提过一些相关的IOC的。大致为以下几点: 在讲解ExtensionLoader源码的构造函数的时候,我们说过,每一个ExtensionLoader实例都有一个 objectFactory 属性,他是实现Ioc的关键; 相比较于JDK的SPI机制,dubbo的SPI机制支持扩展通过setter的方式来注入其他扩展点。 在调用Extension...原创 2018-11-08 22:51:46 · 601 阅读 · 0 评论 -
dubbo系列--服务发布原理(易懂版)
本文采用最简单的方式来说明dubbo服务的发布原理:因为dubbo推荐使用zookeeper为注册中心,所以下面注册中心使用的是zk: 第一个发布的动作:暴露本地服务Export dubbo service com.alibaba.dubbo.demo.DemoService to local registry, dubbo version: 2.0.0, current host: ...原创 2018-11-08 22:45:21 · 563 阅读 · 0 评论 -
dubbo系列--重要概念介绍
dubbo架构图节点角色说明整体设计proxyFactory:就是为了获取一个接口的代理类,例如获取一个远程接口的代理。它有2个方法,代表2个作用 getInvoker:针对server端,将服务对象,如DemoServiceImpl包装成一个Invoker对象。 getProxy :针对client端,创建接口的代理对象,例如DemoService的...原创 2018-11-08 22:43:13 · 325 阅读 · 0 评论 -
dubbo源码--学习jdk的spi
由于dubbo核心机制之一就是dubbo的spi,但是他是借鉴于jdk-spi。spi的全名为Service Provider Interface,本次我们先来学习jdk的spi是个什么东东。spi是 JDK 内置的一种服务提供发现机制,目前市面上有很多框架都是用它来做服务的扩展发现,大家耳熟能详的如 JDBC、日志框架都有用到;简单来说,它是一种动态替换发现的机制。举个简单的例子,如果我们定...原创 2018-09-27 14:46:42 · 283 阅读 · 0 评论 -
dubbo源码--如何与spring无缝对接
官方api说明Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何 API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 扩展 进行加载。在使用dubbo的时候会有两个配置文件,provider.xml和consumer.xml文件。dubbo是怎么解析这两个xml的呢?细心的你估计看到了,...原创 2018-09-27 10:19:18 · 1281 阅读 · 1 评论 -
dubbo系列--动态生成的自适应类*$Adaptive模板
dubbo使用动态生成的自适应类*$Adaptive模板:比如Protocol$AdaptiveProtocol.java模板原创 2018-09-26 10:08:50 · 746 阅读 · 0 评论 -
dubbo内核之ioc源码解析
核心代码此方法被调用于 //为创建好的AdaptiveExtensionClass实例进行属性注入 injectExtension((T) getAdaptiveExtensionClass().newInstance()) //为创建好的Extension实例进行属性注入 --injectExtension(instance)//为创建好的wrapperCla...原创 2018-09-26 09:28:03 · 256 阅读 · 0 评论 -
并发编程:LinkedBlockingQueue源码浅析
申明:本文是基于jdk1.8的源码LinkedBlockingQueue类图结构LinkedBlockingQueue底层基于单向链表实现的阻塞队列,可以当做无界队列也可以当做有界队列来使用。为什么可以当做无界队列?从第一个无参构造方法可知,在没有指定容量大小的时候,默认容量为Integer.MAX_VALUE=2的32次方-1=2147483647这个确实也够...原创 2018-09-26 09:25:05 · 337 阅读 · 0 评论