随笔分类 -  23 + ---- Dubbo 源码分析

摘要:注: 本系列文章已捐赠给 Dubbo 社区,你也可以在 Dubbo "官方文档" 中阅读本系列文章。 1. 简介 在前面的文章中,我们分析了 Dubbo SPI、服务导出与引入、以及集群容错方面的代码。经过前文的铺垫,本篇文章我们终于可以分析服务调用过程了。Dubbo 服务调用过程比较复杂,包含众多 阅读全文
posted @ 2019-01-09 08:30 田小波⊰ 阅读(1162) 评论(3) 推荐(3) 编辑
摘要:1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载的服务器分流的同时,还可以避免资源浪费,一举两得。负 阅读全文
posted @ 2018-11-30 08:57 田小波⊰ 阅读(622) 评论(0) 推荐(2) 编辑
摘要:1.简介 为了避免单点故障,现在的应用至少会部署在两台服务器上。对于一些负载比较高的服务,会部署更多台服务器。这样,同一环境下的服务提供者数量会大于1。对于服务消费者来说,同一环境下出现了多个服务提供者。这时会出现一个问题,服务消费者需要决定选择哪个服务提供者进行调用。另外服务调用失败时的处理措施也 阅读全文
posted @ 2018-11-26 08:33 田小波⊰ 阅读(640) 评论(2) 推荐(1) 编辑
摘要:1. 简介 上一篇文章分析了集群容错的第一部分 服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由。上一篇文章关于服务路由相关逻辑没有细致分析,一笔带过了,本篇文章将对此进行详细的分析。首先,先来介绍一下服务路由是什么。服务路由包含一条路由 阅读全文
posted @ 2018-11-21 08:39 田小波⊰ 阅读(570) 评论(2) 推荐(0) 编辑
摘要:1. 简介 前面文章分析了服务的导出与引用过程,从本篇文章开始,我将开始分析 Dubbo 集群容错方面的源码。这部分源码包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalance。这几个部分的源码逻辑比较独立,我会分四篇文章进行 阅读全文
posted @ 2018-11-19 09:00 田小波⊰ 阅读(470) 评论(2) 推荐(0) 编辑
摘要:1. 简介 在 "上一篇" 文章中,我详细的分析了服务导出的原理。本篇文章我们趁热打铁,继续分析服务引用的原理。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直联的方式引用服务,第二种方式是基于注册中心进行引用。服务直联的方式仅适合在调试或测试服务的场景下使用,不适合在线上环 阅读全文
posted @ 2018-11-13 08:48 田小波⊰ 阅读(798) 评论(0) 推荐(2) 编辑
摘要:1.服务导出过程 本篇文章,我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一是前置工作,主要用于检查参数,组装 URL。第二是导出服务,包含导出服务到本地 ( 阅读全文
posted @ 2018-11-01 08:09 田小波⊰ 阅读(954) 评论(5) 推荐(1) 编辑
摘要:1.原理 我在上一篇文章中分析了 Dubbo 的 SPI 机制,Dubbo SPI 是 Dubbo 框架的核心。Dubbo 中的很多拓展都是通过 SPI 机制进行加载的,比如 Protocol、Cluster、LoadBalance 等。有时,有些拓展并非想在框架启动阶段被加载,而是希望在拓展方法被 阅读全文
posted @ 2018-10-15 08:04 田小波⊰ 阅读(677) 评论(0) 推荐(0) 编辑
摘要:1.简介 SPI 全称为 Service Provider Interface,是 Java 提供的一种服务发现机制。SPI 的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过 SPI 机制为我 阅读全文
posted @ 2018-10-09 09:59 田小波⊰ 阅读(1025) 评论(4) 推荐(4) 编辑

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