2.Directory

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 本文解析Dubbo中Directory接口的两大实现类:StaticDirectory与RegistryDirectory。前者Invoker由构造传入,不支持动态变化,多用于多注册中心引用;后者通过NotifyListener回调机制,实现注册中心变更时自动更新methodInvokerMap,支持动态服务发现,是集群容错的核心组件之一。

首先来看一下directory接口的实现类,他主要有两个实现类,一个是StaticDirectory,一个是RegistryDirectory
图片加载失败
其实这个也是道很好的面试题,他还是可以区分三种人
一种是停留在使用层面的,没看过源码的,因此他不会懂得这两个实现类
第二种是看过官网如下描述,因此认为directory的实现类都是动态变化的
Directory 代表多个 Invoker,可以把它看成 List ,但与 List 不同的是,它的值可能是动态变化的,比如注册中心推送变更
第三种则是有看过源码的,其实从StaticDirectory中的Static关键词来看,就知道,这个其实是不会动态变化的,从下图知道,他的Invoker是通过构造函数传入,StaticDirectory用得比较少,主要用在服务对多注册中心的引用
图片加载失败
本文介绍的重点是RegistryDirectory,首先来看看他的继承结构
图片加载失败
这个NotifyListener中的notify方法就是注册中心的回调,也就是它之所以能根据注册中心动态变化的根源所在.
下面放一个上篇中集群容错的整体架构中的一个图唤醒大家的对Directory记忆
图片加载失败
从中可以看出,Directory获取invoker是从methodInvokerMap中获取的,从这个图也可以看出,这些主要都是读操作,那它的写操作是在什么时候写的呢?就是在回调方法notify的时候操作的
图片加载失败
图片加载失败
也就是注册中心有变化,则更新methodInvokerMap和urlInvokerMap的值(这个后面讲服务引用原理的时候会再提一下),这就是官网提到的它的值可能是动态变化的,比如注册中心推送变更的原因所在.

相关文章
|
缓存 负载均衡 监控
1. 介绍一下 Dubbo?
1. 介绍一下 Dubbo?
219 0
|
Dubbo Java 应用服务中间件
DUBBO--基础篇(一)--简介(示意Demo)
DUBBO--基础篇(一)--简介(示意Demo)
794 0
|
编解码 开发框架 Dubbo
带你读《Apache Dubbo微服务开发从入门到精通》——二、 核心架构(1)
带你读《Apache Dubbo微服务开发从入门到精通》——二、 核心架构(1)
785 82
|
负载均衡 Dubbo NoSQL
【完整解析】Dubbo分布式服务框架:优点、架构和未来趋势(一)
【完整解析】Dubbo分布式服务框架:优点、架构和未来趋势
1964 2
|
存储 SQL 分布式计算
ODPS
ODPS(Open Data Processing Service)是阿里云推出的大数据计算平台,提供海量数据存储和计算服务,支持多种计算引擎和编程语言,包括MaxCompute(原名ODPS)、Spark等。用户可以使用ODPS平台进行数据存储、计算和分析,在不需要维护自己的硬件和软件环境的前提下,快速构建和部署大规模数据处理应用。
4792 0
|
9天前
|
人工智能 开发工具 iOS开发
Claude Code 新手完全上手指南:安装、国产模型配置与常用命令全解
Claude Code 是一款运行在终端环境中的 AI 编程助手,能够直接在命令行中完成代码生成、项目分析、文件修改、命令执行、Git 管理等开发全流程工作。它最大的特点是**任务驱动、终端原生、轻量高效、多模型兼容**,无需图形界面、不依赖 IDE 插件,能够深度融入开发者日常工作流。
3182 8
|
12天前
|
Shell API 开发工具
Claude Code 快速上手指南(新手友好版)
AI编程工具卷疯啦!Claude Code凭借任务驱动+终端原生的特性,成了开发者的效率搭子。本文从安装、登录、切换国产模型到常用命令,手把手带新手快速上手,全程避坑,30分钟独立用起来。
3228 22
|
2天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队版、Coding Plan或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
|
6天前
|
人工智能 Linux BI
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek
JeecgBoot AI专题研究 一键脚本:Claude Code + JeecgBoot Skills + DeepSeek 全平台接入 一行命令装好 Claude Code + JeecgBoot Skills + DeepSeek 接入,无需翻墙使用 Claude Code,支持 Wind
2176 4
国内用 Claude Code 终于不用翻墙了:一行命令搞定,自动接 DeepSeek