Dubbo 源码分析 - SPI 机制】的更多相关文章

1.简介 SPI 全称为 Service Provider Interface,是 Java 提供的一种服务发现机制.SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类.这样可以在运行时,动态为接口替换实现类.正因此特性,我们可以很容易的通过 SPI 机制为我们的程序提供拓展功能.SPI 机制在第三方框架中也有所应用,比如 Dubbo 就是通过 SPI 机制加载所有的组件.不过,Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使其…
注: 本系列文章已捐赠给 Dubbo 社区,你也可以在 Dubbo 官方文档中阅读本系列文章. 1. 简介 在前面的文章中,我们分析了 Dubbo SPI.服务导出与引入.以及集群容错方面的代码.经过前文的铺垫,本篇文章我们终于可以分析服务调用过程了.Dubbo 服务调用过程比较复杂,包含众多步骤.比如发送请求.编解码.服务降级.过滤器链处理.序列化.线程派发以及响应请求等步骤.限于篇幅原因,本篇文章无法对所有的步骤一一进行分析.本篇文章将会重点分析请求的发送与接收.编解码.线程派发以及响应的发…
1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载"均摊"到不同的机器上.避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况.通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载.在为高负载的服务器分流的同时,还可以避免资源浪费,一举两得.负载均衡可分为软件负载均衡和硬件负载均衡.在我们日常开发中,一般很难接触到硬件负载均衡.但软件负载均衡还是能够接触到一些的,比如 Nginx.在 Dubbo 中,也有负载均衡的概念和相应的实现…
1.简介 为了避免单点故障,现在的应用至少会部署在两台服务器上.对于一些负载比较高的服务,会部署更多台服务器.这样,同一环境下的服务提供者数量会大于1.对于服务消费者来说,同一环境下出现了多个服务提供者.这时会出现一个问题,服务消费者需要决定选择哪个服务提供者进行调用.另外服务调用失败时的处理措施也是需要考虑的,是重试呢,还是抛出异常,亦或是只打印异常等.为了处理这些问题,Dubbo 定义了集群接口 Cluster 以及及 Cluster Invoker.集群 Cluster 用途是将多个服务提…
1. 简介 上一篇文章分析了集群容错的第一部分 -- 服务目录 Directory.服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由.上一篇文章关于服务路由相关逻辑没有细致分析,一笔带过了,本篇文章将对此进行详细的分析.首先,先来介绍一下服务路由是什么.服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者.Dubbo 目前提供了三种服务路由实现,分别为条件路由 ConditionRouter.脚本路由 ScriptR…
dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分析4-基于netty的dubbo协议的server dubbo源码分析5-dubbo的扩展点机制 dubbo源码分析6-telnet方式的管理实现 说是扩展点 其实有点DI的意思,只是简单的di 大多框架都会造DI的轮子 dubbo这里是,struts2也是. 机制不是很复杂 更全面的思维导图 即 …
dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分析4-基于netty的dubbo协议的server dubbo源码分析5-dubbo的扩展点机制 dubbo提供了telnet的方式,直接用命令查看服务信息等.怎么实现的呢. 1. 编解码器 com.alibaba.dubbo.remoting.transport.netty.NettyCodecA…
Dubbo源码分析1 Dubbo源码分析2 dubbo源码阅读:rpc请求处理流程(1) 架构设计:系统间通信(17)——服务治理与Dubbo 中篇(分析) 13. Dubbo原理解析-注册中心之Zookeeper协议注册中心 dubbo作为消费者注册过程分析 - 邯郸人 Dubbo源码分析(二):Dubbo之消费端(Consumer)   https://www.cnblogs.com/cyfonly/tag/Dubbo/ Dubbo原理和源码解析之“微内核+插件”机制  Dubbo原理和源码…
前情提要 假设你已经知道Dubbo SPI的使用方式,不知道的请出门左转: Dubbo源码(一) - SPI使用 Dubbo源码地址: apache/dubbo 本文使用版本:2.6.x 测试Demo 新建SPI测试接口以及实现类 package com.javaedit.spi; import com.alibaba.dubbo.common.URL; // 定义SPI接口 @SPI public interface Robot { void sayHello(URL url); } // 自…
dubbo源码分析1-reference bean创建 dubbo源码分析2-reference bean发起服务方法调用 dubbo源码分析3-service bean的创建与发布 dubbo源码分析4-基于netty的dubbo协议的server dubbo源码分析5-dubbo的扩展点机制 dubbo源码分析6-telnet方式的管理实现 值得学习的地方:在reference这一侧是如何做到了对应用透明? 分析代码后不难发现:使用javassist的字节码技术+代理. 这种实现框架对应用透…