Dubbo 服务注册与启动源码解析

news2024/9/24 23:30:28

Dubbo 版本:3.1.2

自定义标签解析

DubboNamespaceHandler 中会添加 DubboDeployApplicationListener,其继承了 ApplicationListener<ApplicationContextEvent>
关于ApplicationListener,可参考:Spring 事件基本使用

请添加图片描述

服务暴露

注意,在 ServiceConfig # doExportUrls 内部,有

List<URL> registryURLs = ConfigValidationUtils.loadRegistries(this, true);

会在 registry 的基础上再生成一个新的 注册地址,其 protocolservice-discovery-registry

所以,向外暴露服务的时候,会执行 2 次
在这里插入图片描述

Wrapper 包装原理

在 getExtension 时,会加载 wrapper:存在一个只有一个参数的构造函数,且其类型为 type
可将 type 理解为:
ExtensionLoader.getExtensionLoader(Class type) 时传入的参数

请添加图片描述

第一个 for 循环

请添加图片描述

第一个 for 循环的启动服务

为了 return new NettyPortUnificationServer(url, handler) 而经过了一些努力
在 new 的过程中,会执行到 NettyPortUnificationServer类中的 doOpen() 方法,用于启动 netty
请添加图片描述

第二个 for 循环

第一个 for 循环的注册是:ServiceDiscoveryRegistry
第二个 for 循环的注册是:ZookeeperRegistry
请添加图片描述

第二个 for 循环的启动服务

因为第一个 for 循环中已经启动服务了,所以这里直接返回就行
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YoloV5+TensorRT封装|C#调用dll实现V5+TRT目标检测

在目标检测得领域中&#xff0c;yolo系列无疑是最强得目标检测框架&#xff0c;而其中得yolov5更是扛把子得存在&#xff0c;虽然有着众多的yolo系列版本&#xff0c;但是在工业领域中yolov5还是用的最多&#xff0c;yolov5 yyds&#xff0c;&#xff0c;&#xff0c;先奉献上我…

上海亚商投顾:沪指高开低走 钠离子电池、储能概念崛起

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日高开低走&#xff0c;收盘均小幅下跌&#xff0c;以中字头为首的权重股走弱&#xff0c;上证50跌超0.…

SpringBoot中如果字段为空就不返回给前端

SpringBoot中如果字段为空就不返回给前端前言测试参数的执行结果JsonInclude.Include.ALWAYSJsonInclude.Include.NON_NULLJsonInclude.Include.NON_ABSENTJsonInclude.Include.NON_EMPTYJsonInclude.Include.NON_DEFAULTJsonInclude.Include.USE_DEFAULTSJsonInclude.Include.…

2.(vue3.x+vite)使用vue-router

前端技术社区总目录(订阅之前请先查看该博客) 前端技术社区:vue3.x+vite,node篇,前端小技术,前端资料篇等相关内容的介绍 1:安装vue-router npm i vue-router 2:创建router文件 在src的目录下创建router文件夹与index.js文件 index.js文件内容如下: import {cr…

C#学习以及感受

我本来是写Java的,但是这边的代码用的是.NetCore框架 就自学了 但是学下来,发现其实这两者并没有什么本质区别 Java导包用import而c#用using Java与c#都是写一个静态的main方法来启动,c#的Main必须大写 Java和c#的数据类型基本一样,c#中的string的s可以小写,c#的布尔类型是bool…

Landsat Collection 2 T1一级数据详细介绍(数据处理过程和几何精度)

几项数据处理、几何和辐射改进&#xff0c;以及新的数据分发过程&#xff0c;定义了 Collection 2 Level-1 数据。此页面提供了有关用户可以在 Landsat Collection 2 Level-1 数据中找到的更改的详细信息。请参阅本页下方列出的特定于仪器的数据格式控制手册&#xff0c;以更全…

Redis基础命令(List类型)双链表

目录 概述&#xff1a; 特征&#xff1a;&#xff08;与LinkedList类似&#xff09; List常见命令 1.Lpush key element.....&#xff1a;向列表左侧插入一个或多个元素 2.LPOP key &#xff1a;移除并返回列表左侧的第一个元素&#xff0c;没有则返回nil 3.RPUSH key ele…

【allegro 17.4软件操作保姆级教程四】布线前准备之叠层和阻抗设计

通常在设计中&#xff0c;如果我们有控制阻抗的要求&#xff0c;一般会在加工工艺文档里进行说明&#xff0c;板厂拿到文档和相关工程文件后&#xff0c;会进行工程评估确认&#xff0c;会根据板厂的实际情况进行叠层和线宽的调整&#xff0c;所以这里只是进行简单分析&#xf…

sqli-labs/Less-59

这一关又只有五次机会 而且仍然是以id作为注入点 我们尽量再前一轮完成注入类型的判断 在后一轮完成各种爆破操作 首先先判断注入类型是否属于数字型注入 输入id1 and 12 回显如下 没有回显 说明后续操作不能使用报错注入解决问题 并且肯定是属于数字型注入 倒是有无修饰符不懂…

【javaEE】网络原理(数据链路层+小结)

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录前言一、数据链路层1. 以太网2. 认识MTU&#xff08;没时间可以跳过&#xff09;3. 认识ARP&#xff08;没时间就跳过&#xff09;二、 【网络原理小结】&#xff08;含面试题&#xff09;THINK前言 一个人最大的痛…

搭建vue3.2+vite+ts+pinia项目

用到的技术 vue3.2vitetspinia 搭建项目 前言 vue3vite 会比vue2webpack的速度快很多&#xff1b;Vite 是一个轻量级的、速度极快的构建工具&#xff1b; vite官网 创建项目 npm create vitelatest报错了&#xff1a; 初始化失败 npm ERR! Could not install from “File…

【C语言】单词拼写检查

《算法集训传送门》 &#x1f449;引言 铭记于心&#x1f389;✨&#x1f389;我唯一知道的&#xff0c;便是我一无所知&#x1f389;✨&#x1f389;&#x1f496; ❄️我们的算法之路❄️&#x1f496;众所周知&#xff0c;作为一名合格的程序员&#xff0c;算法 能力 是不可…

基于飞书通讯录同步构建本地LDAP服务,打通各应用系统间的组织架构和账号信息

目前飞书社交办公应用成为公司日常沟通办公的协作工具&#xff0c;以及作为各种流程的审批处理系统&#xff0c;HR 也会在飞书上去管理所有员工的状态及组织架构。 随着公司内新部署的业务系统越来越多&#xff0c;例如Jenkins、JIRA、Gitlab、Confluence、禅道等&#xff0c;有…

门店数字化转型| 美发店智慧管理系统

颜值经济时代及他经济崛起&#xff0c;人们更注重自身形象&#xff0c;且追求方便快捷体验好的服务&#xff0c;而且她们越来越理智&#xff0c;不再盲目跟风&#xff0c;关注自身感受&#xff0c;追求便利个性化服务。 美容美发市场规模大但整体线上化程度偏低&#xff0c;下沉…

计算机网络复习——第六章网络层

hhhhh 还是今天的我&#xff0c;今天把这两个肝了&#xff0c;准备27考试&#xff0c;耶耶耶&#xff01;&#xff01;&#xff01;小h加油&#xff01; 《计算机网络》&#xff08;谢希仁&#xff09;内容总结 (javaguide.cn) 重点知识&#xff1a; 域名系统&#xff08;DN…

gptp报文完成时间同步原理

gptp(generalized Precision Time Protocol&#xff0c;广义精确时间同步协议),能够完成微秒级的时间信息同步 gptp定义了两种类型的设备 每一种设备都有自己的本地时钟&#xff0c;设备中用来发布同步时间报文的网络端口被称为主端口&#xff0c;用来接收时间同步报文的被称…

【Flutter】mixin简单使用

序言 之前有个技改任务&#xff0c;把司机学堂代码由原生转到Flutter。过程中遇到一个问题&#xff0c;学堂资料有pdf、视频、和图片&#xff0c;三种学习都会有几个共同的方法&#xff0c;比如学习进度更新、弹窗提示、完成接口调用等。在iOS中是用协议方法来实现&#xff0c…

Paper写作如何正确掌握模板内容?

要写好Paper绝不仅仅是掌握模版或者结构就够了&#xff0c;也不要指望几个小时内搞定一篇(只有经验超级丰富的人才有可能)。你们要做的是&#xff1a; To write a paper well is not only to master the template or structure,but also not to expect to finish one article i…

现代密码学导论-6-完美保密性的局限性

目录 2.3 Limitations of Perfect Secrecy 完美保密性的局限性 THEOREM 2.11 完美保密对密钥空间的要求 THEOREM 2.11 的证明 2.3 Limitations of Perfect Secrecy 完美保密性的局限性 在前一节的最后&#xff0c;我们指出了一次性密码本方案的缺点。事实上&#xff0c;这些…

vue-cli + APIcloud

1.安装node.js 2.全局安装cli3 npm install -g vue/cli 备注&#xff1a;vue cli3官网 https://cli.vuejs.org/zh/ 3.进入工作目录里运行 vue ui&#xff0c;此时会打开vue的UI面板 4.在面板中创建新项目&#xff0c;输入项目名之后点击下一步&#xff0c;选择预设-默认后直接创…