前言本文基于Dubbo2.6.x版本,中文注释版源码已上传github:xiaoguyu/dubbo今天,来聊点短的,服务路由Router,本文讲的是路由的调用路径,不讲路由的规则解析。想了解规则解析的可以去官方文档:服务路由Dubbo的路由,就是根据规则,规定了哪些服务消费者可调用哪些服务提供者。怎么用我们可以在服务治理控制台Dubbo-Admin写入路由规则。安装Dubbo-Admin我是使用
转载
2024-03-27 16:09:29
157阅读
前言:这是集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡, 容错,路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。下图描述了dubbo调用过程中的对于集群,负载等的调用关系,根据该图一步步进行解读。 一,Cluster 将Directory中的多个Invoker伪装成一个Invoker, 对上层透明,包含集群的容错机制@SPI(FailoverCluster.NAME
转载
2024-07-01 21:58:41
117阅读
首先Dubbo基于SPI(Service Provider Interface)服务发现机制加载自定义的所有组件,大致实现思路-如:在Protocol接口上添加@SPI注解 -@SPI("dubbo"),然后我们需要在META-INF下面dubbo/internal添加com.alibaba.dubbo.rpc.Protocol文件,里面就是我们对于Protocol接口的所有自定义组件的实现。一、
转载
2024-03-06 11:17:11
165阅读
最近在项目上遇到一个有关dubbo的问题,项目分为两层:下层是一些基础服务,上层是业务服务调用下层的基础服务。上层服务的有一个全局的异常拦截器来拦截异常。
@ControllerAdvice
@Slf4j
public class ExceptionFilter {
@ExceptionHandler
public Response
转载
2024-04-01 00:02:36
171阅读
dubbo处理自定义异常背景在实际项目中,我们不可避免地需要使用自定义的异常,一般这个异常会继承RuntimeException,然后我们通过@RestControllerAdvice注解,拦截业务异常类,做一些处理,但是在使用dubbo构建项目时,会发现provider抛出自定义异常,然后在消费者端,不会捕捉到我们的自定义异常,而是以RuntimeException的形式被捕获。原因dubbo的
转载
2024-03-26 22:14:01
48阅读
路由使用: 配置后consumer在获取到集群服务的invoker后 会针对 port为20881的进行过滤介绍 及 源码dubbo的路由规则,主要包括 Router、RouterFactory 两个核心接口和RouterChain一个核心类;其中RouterChain是入口,RouterChain会通过RouterFactory生成Router放入缓存list,然后遍历执行route;而Rout
转载
2024-05-27 10:53:33
174阅读
前言:官网文档有一重要章节SPI,建立好好阅读,为本文做铺垫1.搭建工程,结构如下:dubbo-learn ---> 父pomdubbo-api -
转载
2024-04-18 08:28:47
37阅读
前言Dubbo 整体介绍的差不多了,今天就开始面试环节了,我会列举一些常见的 Dubbo 面试题,只会抓着重的,一些太简单的我就不提了。开始表演知道什么是 RPC 么?一般面试官会以这样的问题来切入、热场,毕面试也是循序渐进的过程,所以你也不用太心急一开始就芭芭拉说一堆,要抓住关键点简单阐述先。而且面试官能从这个问题鉴定出你平日的工作内容会不会连 RPC 都没接触过,会不会就只是一条龙
Dubbo框架内自定义很多XML标签,方便以XML方式注册服务;本篇文章先了解下Dubbo框架拥有哪些XML标签,然后给出自定义标签的流程并动手自定义标签。1.Dubbo框架中的那些标签Dubbo框架标签定义的源文件是dubbo.xsd,该文件位于dubbo.jar内/META-INF/目录下;源文件内容太多就不一一列出来,不过从dubbo.xsd得知Dubbo拥有以下15个标签:annotati
转载
2024-04-15 09:47:33
77阅读
分布式开发的模式下,app会有很多,开发环境下,如果都在一台开发机上启动所有服务进行调试,逐渐变为不可能。一般的,会在内网部署一整套app,开发机器上仅启动自己负责的一个app,通过dubbo调用开发环境下的dubbo服务,来完成整个系统的开发调试。那么问题随之而来,开发机器上启动app的同时,也会注册其dubbo服务到开发环境。那么开发环境下的dubbo服务就包括了两类:1. 服务器上的dubb
转载
2024-02-26 18:12:21
79阅读
我们知道Dubbo中大部分的实现类加载都是通过SPI实现,同样Dubbo也提供了Filter机制,这个部分研究下怎么实现了,是怎样的一个调用逻辑。 首先我们看下Dubbo中Filter的定义:* Filter Chain in 3.x
*
* -> Filter -> Invoker
*
* Pr
转载
2024-03-18 20:14:22
25阅读
1.今天没太多事情,挤出点时间,研究了下dubbo的路由规则实现。
首先,看看dubbo消费端的主要调用流程(这里就不画图了),以后补充:
第一步:创建消费端代理:ReferenceConfig.createProxy,这里没什么特别,典型的C/S调用设计,都是通过JAVA动态代理或是Javassist的代理实现,比如mybatis mapper。
转载
2024-04-07 08:09:35
78阅读
一、服务引用 在消费端dubbo的使用中我们会把需要引用的provider服务配置在dubbo-consumer.xml中来进行引用,这一篇主要来分析dubbo的provider服务在消费端的服务引用。 在消费端的应用中的服务引用配置:<dubbo:reference id="testApi" int
转载
2024-05-23 15:50:46
76阅读
学习内容1.序列化:2.地址缓存3.超时4.重试:5.多版本6.负载均衡7 集群容错:服务降级 1.序列化:dubbo 内部已经将序列化和反序列化的过程内部封装了我们只需要在定义pojo类时实现seriali zable接口即可一般会定义一 个公共的pojo模块,让生产者和消费者都依赖该模块。2.地址缓存注册中心挂了,服务依旧可以访问可以,因为dubbo服务消费者在第一-次调用时,会将服务提供方
转载
2024-04-23 18:12:58
55阅读
通过自定义 Filter,可以在 dubbo 调用链中加入特定的逻辑,比如埋点分析调用链。 1. 新建 Filter 类 如果加上 @Activate 注解,则该 filter 会成为默认的 2. 修改 /META-INF/dubbo/internal/com.alibaba.dubbo.rpc.F
原创
2022-11-15 15:11:31
312阅读
前言原本的 nacos + feign 项目改造成了 nacos + dubbo 发现原本的自定义业务异常 BusinessException 被转换成了 RuntimeException 返回到上游调用方这里会先介绍我使用的处理方案 然后贴了一部分网上介绍的方案1. 我的处理方案采用自定义拦截器,重新 set 返回的 Exception1.1 定义 Provider 拦截器 这里给了个 orde
深入理解Apache Dubbo 笔记(一)1. 什么是DubboDubbo是阿里SOA服务化治理方案的核心框架,被广泛的应用到阿里的各成员站点。Dubbo是Java类项目中卓越的框架之一。他提供了注册中心机制,解耦了消费和服务方动态问题,并提供了可靠性。采用了微内核+富插件设计思想,包括框架本身都是基于扩展点实现的。2. Dubbo解决的问题单体架构和垂直架构无法满足需求,分布式服务框架及流动计
1.简介为了避免单点故障,现在的应用至少会部署在两台服务器上。对于一些负载比较高的服务,会部署更多台服务器。这样,同一环境下的服务提供者数量会大于1。对于服务消费者来说,同一环境下出现了多个服务提供者。这时会出现一个问题,服务消费者需要决定选择哪个服务提供者进行调用。另外服务调用失败时的处理措施也是需要考虑的,是重试呢,还是抛出异常,亦或是只打印异常等。为了处理这些问题,Dubbo 定义了集群接口
Dubbo中的Cluster可以将多个服务提供方伪装成一个提供方,具体也就是将Directory中的多个Invoker伪装成一个Invoker,在伪装的过程中包含了容错的处理和负载均衡的处理。这篇文章介绍下集群相关的东西,开始先对着文档解释下容错模式,负载均衡等概念,然后解析下源码的处理。集群的容错模式Failover Cluster这是dubbo中默认的集群容错模式失败自动切换,当出现失败,重试
转载
2024-09-06 09:09:17
41阅读
服务路由上一篇文章分析了集群容错的第一部分 — 服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分别为条件路由 ConditionRouter、脚本路由 Scri
转载
2024-10-12 10:36:36
54阅读