首页 > 其他分享 >Dubbo

Dubbo

时间:2024-11-20 15:56:18浏览次数:1  
标签:RouterChain Dubbo RouterFactory List Router 路由

 

 

 

Dubbo路由及负载均衡

https://my.oschina.net/vivotech/blog/10136865

客户端通过本地代理 Proxy 调用 ClusterInvoker,ClusterInvoker 从服务目录 Directory 获取服务列表后经过路由链获取新的服务列表、负载均衡从路由后的服务列表中根据不同的负载均衡策略选取一个远端 Invoker 后再发起远程 RPC 调用。

Dubbo 的路由机制实际是基于简单的责任链模式实现,同时 Router 继承了 Comparable 接口,自定义的路由可以设置不同的优先级进而定制化责任链上 Router 的顺序。基于责任链模式可以支持多种路由策略串行执行如就近路由 + 标签路由,或条件路由 + 就近路由等,且路由的配置支持基于接口级的配置也支持基于应用级的配置。常见的路由方式主要有:就近路由,条件路由,标签路由等

Dubbo 路由的核心类主要有:RouterChain、RouterFactory 与 Router 。

(1)RouterChain
RouterChain 是路由链的入口,其核心字段有
invokers(List<invoker> 类型)
初始服务列表由服务目录 Directory 设置,当前 RouterChain 要过滤的 Invoker 集合
builtinRouters(List 类型)
当前 RouterChain 包含的自动激活的 Router 集合
routers(List 类型)
包括所有要使用的路由由 builtinRouters 加上通过 addRouters () 方法添加的 Router 对象

(2)RouterFactory 为 Router 的工厂类

@SPI
public interface RouterFactory {
    @Adaptive("protocol")
    Router getRouter(URL url);
}

(3)Router

Router 是真正的路由实现策略,由 RouterChain 进行调用,同时 Router 继承了 Compareable 接口,可以根据业务逻辑设置不同的优先级。

 

标签:RouterChain,Dubbo,RouterFactory,List,Router,路由
From: https://www.cnblogs.com/clarino/p/18558613

相关文章

  • 安利一款超级好用的 Dubbo 调试工具 Apifox
    大家好啊!今天我要安利一个神器——Apifox!特别是它最近的Dubbo调试功能,简直是为我们Java开发者操碎了心啊!......
  • Dubbo自定义扩展Filter
    Filter在 RPC框架-Filter请求拦截 一节中,我们了解了Filter的工作机制,以及Dubbo框架提供的一些内置Filter实现。在本文中,我们来了解如何扩展自定义的过滤器实现:一个可以对返回的结果进行统一的处理、验证等统一Filter处理器,减少对开发人员的打扰。本示例的完整源......
  • SpringBoot集成Dubbo
    Dubbo教程(二)|SpringBoot集成Dubbo一、DubboSpringBoot版本关系Dubbo官方提供的对应关系:github官方提供的对应关系(该版本说明很久没有更新了):二、引入maven三、项目结构aip模块构建provider模块构建customer模块构建一、DubboSpringBoot版本关系......
  • Dubbo详解及其应用
    DubboDubbo是一个阿里巴巴开源的高性能JavaRPC框架,专为解决大规模微服务架构中的服务治理、服务发现、负载均衡和远程通信等问题而设计。它允许服务提供者将业务功能封装成服务,而服务消费者则可以像调用本地方法一样调用这些远程服务,从而实现服务的解耦和可扩展性。Dubbo......
  • Dubbo介绍
    Dubbo介绍  概要  Dubbo是一个高性能的JavaRPC框架。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。  简单来说Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案  一、面......
  • 【DUBBO】dubbo超时处理机制浅析
    在RPC调用过程中,由于网络或服务端等不可靠,我们常常会收到Timeout异常。这是因为RPC框架为避免长时间等待导致客户端资源(线程)耗尽,都会提供设置超时时间的属性。在Dubbo中,使用timeout这个属性来给某个服务调用设置超时间(默认1s),如果服务在设置的超时时间内未返回结果,则会抛......
  • dubbo3.0 服务导入导出原理
    不管是服务导出还是服务引入,都发生在应用启动过程中,比如:在启动类上加上@EnableDubbo时,该注解上有一个@DubboComponentScan注解,@DubboComponentScan注解Import了一个DubboComponentScanRegistrar,DubboComponentScanRegistrar中会调用DubboSpringInitializer.initialize......
  • dubbo安装
    什么是dubbo?Dubbo是一款由阿里巴巴开源的高性能JavaRPC(RemoteProcedureCall,远程过程调用)框架。它旨在解决分布式服务架构中的服务治理、调用、容错等问题,使得开发者可以更加方便地构建和维护大规模分布式系统Dubbo是一个强大的分布式服务框架,适用于构建大规模的微服务......
  • 温习 SPI 机制 (Java SPI 、Spring SPI、Dubbo SPI)
    SPI全称为ServiceProviderInterface,是一种服务发现机制。SPI的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过SPI机制为我们的程序提供拓展功能。1JavaSPI......
  • dubbo3小记
    开启服务注册模式Dubbo3服务发现平滑迁移步骤与原理https://cn.dubbo.apache.org/zh-cn/blog/2024/05/13/如果从接口级服务发现平滑迁移到应用级服务发现/全局开关应用配置(可以通过配置文件或者-D指定)dubbo.application.register-mode为instance(只注册应用级)、all(接口级......