2.Directory

简介: 本文解析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的值(这个后面讲服务引用原理的时候会再提一下),这就是官网提到的它的值可能是动态变化的,比如注册中心推送变更的原因所在.

相关文章
|
机器学习/深度学习 编解码 区块链
毕设选题应当注意什么-如何选题-附相关解决案例资料
毕设选题应当注意什么-如何选题-附相关解决案例资料
|
Web App开发 缓存 Linux
|
6月前
|
人工智能 Linux API
阿里云、本地MacOS/Linux/Windows11部署OpenClaw实操+15款热门Skills解析
2026年的AI Agent工具生态中,OpenClaw(原Clawdbot)凭借高度可扩展的Skills体系和跨平台部署能力,成为个人与团队打造专属自动化AI助理的核心工具。ClawHub官方技能市场已收录33696+款Skills,如何快速完成OpenClaw的本地或云端部署,同时筛选高价值技能完成配置,是解锁工具核心能力的关键。本文将完整覆盖2026年阿里云部署、本地MacOS/Linux/Windows11部署的实操流程,阿里云千问大模型与免费Coding Plan API的配置方法,以及官方下载量TOP15的Skills安装与使用,同时解答部署和使用中的常见问题,让使用者零门槛搭建可
1131 3
|
1月前
|
人工智能 机器人 数据挖掘
4 大技巧,教你打造高效的 AI Agent 团队!
Claude 母公司 Anthropic 官方分享:怎么在团队中高效和 AI 协作,覆盖文档驱动协作、Skills 角色定义、多 Agent 分工、北极星目标设定等,配合鱼皮团队真实落地案例讲透
137 0
|
2月前
|
存储 人工智能 运维
让 Agent 越用越准、成本越来越低:AgentLoop 的 Agent 经验自进化闭环
企业 Agent 上线后,如何在不重新训练模型的情况下提升准确率、稳定性并优化单位成功成本?本文介绍 AgentLoop 如何基于真实运行轨迹自动生成可复用经验,通过 Skill 和 CLI 按需召回,并给出控制台接入步骤及与 Memory、RAG、微调、RL 的差异。
562 1
|
3月前
|
JSON 自然语言处理 中间件
.NET 10 OpenAPI 三剑客:Swashbuckle、NSwag 与 Scalar 实战对比
本文对比.NET 10中Swashbuckle、NSwag与Scalar三大OpenAPI UI工具的现代化集成方案。自.NET 9起,文档生成已内置(`AddOpenApi`/`MapOpenApi`),UI工具仅负责渲染同一份`/openapi/v1.json`,实现解耦。三者注册方式、UI体验与扩展能力各具特色,选型应基于团队习惯、设计需求及生态整合目标。
168 0
.NET 10 OpenAPI 三剑客:Swashbuckle、NSwag 与 Scalar 实战对比
|
8月前
|
机器学习/深度学习 监控 算法
基于深度学习的暴力行为识别系统
随着城市化进程加快,传统安防难以应对暴力事件。基于深度学习的暴力行为识别系统,融合YOLOv8、Python与多模态数据,实现高精度、实时检测,提升公共安全响应效率,助力智慧城市建设。
|
7月前
|
存储 供应链 安全
智慧医疗·区域云HIS源码一体化协同平台 (SaaS版)
专为集团医院、医共体打造的云原生医疗SaaS平台,基于“中心协同、扁平管理”理念,实现全域资源集成与数据共享。覆盖临床、患者服务、供应链及运营监控四大中心,支持五级EMR、医保实时结算、智能预警与多维BI,开箱即用。
|
8月前
|
存储 人工智能 架构师
智能体来了:AI Agent 职业路线的体系化进阶指南
在AGI浪潮下,阿里云开发者需重塑职业路径:从写代码转向设计AI Agent目标与推理链路。掌握“逻辑蒸馏”、多代理协同与意志对齐,构建可沉淀的数字资产,实现从线性产出到指数级价值跃迁,抢占智能时代新高地。(239字)
551 3
|
8月前
|
弹性计算 人工智能 运维
轻量应用服务器和云服务器ecs哪个好用?看看AI怎么说?
阿里云轻量应用服务器与ECS无绝对优劣,选择取决于业务需求。轻量适合个人开发者、低并发场景,易用且成本低;ECS适合企业级应用,性能稳定、弹性强、生态完善。根据运维能力、流量预期和功能需求合理选型,可实现性价比最优。
458 5