【最新Dubbo3深入理解】Dubbo3源码中的一些小技巧

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!

在我后台回复 「资料」 可领取编程高频电子书
在我后台回复「面试」可领取硬核面试笔记

文章导读地址:点击查看文章导读!

感谢你的关注!

最新 Dubbo3 深入理解原理系列

在这里插入图片描述

Dubbo 源码中的一些小技巧

快速判断端口是否被占用

Dubbo 在暴露应用元数据服务的时候,有可能服务默认端口会被占用,那么就需要判断默认端口是否被占用,如果被占用了就换一个端口

那么判断端口占用其实就是在这个端口上创建一个 Socket 连接,如果失败抛出异常了,说明这个端口被占用:

int port = 20880;
while (true) {try (ServerSocket isBusy = new ServerSocket(port)) {// ...} catch (IOException e) {// 抛出异常说明端口被占用,再试试下一个端口port += 1;continue;}
}

transient 关键字使用

Dubbo 中服务暴露的时候需要向注册中心放一些信息,通过 Netty 将数据信息传输到注册中心进行注册

在 Java 中一般是使用一个类来存放这些信息的,但是有些字段只是在 Dubbo 内部使用,而不需要放到注册中心中去,这时可以使用 transient 关键里来不对这些字段进行序列化

要将数据传给注册中心都是需要对数据进行序列化的,我们就可以在序列化的时候通过 transient 关键字跳过那些不需要注册的数据

public class User {private String name;// 不对 password 进行序列化private transient String password;
}

因此也就不会通过 Netty 传输到注册中心了

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

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

相关文章

“点击查看显示全文”遇到的超链接默认访问的问题

今天在做一个例子,就是很常见的点击展开全文。 我觉得这是一个很简单的效果,也就几行代码的事,结果点击了以后立刻隐藏不见,控制台代码也不报错,耽误了我很长时间,最后才发现问题出在超链接身上。 “展开全…

太阳能光伏电池模型参数辨识模型介绍

一、太阳能光伏电池模型参数辨识模型介绍 由于传统化石能源短缺问题日益严重,我国对新能源发展的重视提到了前所未有的高度。太阳能作为一种可再生能源,不会对环境造成污染,受到了越来越多的关注太阳能由于其储量丰富,无污染和无地域限制等优…

Clickhouse系列之连接工具连接、数据类型和数据库

基本操作 一、使用连接工具连接二、数据类型1、数字类型IntFloatDecimal 2、字符串类型StringFixedStringUUID 3、时间类型DateTimeDateTime64Date 4、复合类型ArrayEnum 5、特殊类型Nullable 三、数据库 一、使用连接工具连接 上一篇介绍了clickhouse的命令行登录&#xff0c…

【大厂AI课学习笔记NO.52】2.3深度学习开发任务实例(5)需求采集考虑维度

今天来学习,怎么做需求分析,如何明确数据采集需求。 我把自己考试通过的学习笔记,都分享到这里了,另外还有一个比较全的思维脑图,我导出为JPG文件了。下载地址在这里:https://download.csdn.net/download/g…

软件设计师软考题目解析02 --每日五题

想说的话:要准备软考了。0.0,其实我是不想考的,但是吧,由于本人已经学完所有知识了,只是被学校的课程给锁在那里了,不然早找工作去了。寻思着反正也无聊,就考个证玩玩。 本人github地址&#xf…

C++之std::async

std::async是C提供的一个异步处理函数。 函数原型&#xff1a; template<typename _Fn, typename... _Args> future<__async_result_of<_Fn, _Args...>> async(launch __policy, _Fn&& __fn, _Args&&... __args); 参数说明: int thFun(in…

MT8791迅鲲900T联发科5G安卓核心板规格参数_MTK平台方案定制

MT8791安卓核心板是一款搭载了旗舰级配置的中端手机芯片。该核心板采用了八核CPU架构设计&#xff0c;但是升级了旗舰级的Arm Cortex-A78核心&#xff0c;两个大核主频最高可达2.4GHz。配备了Arm Mali-G68 GPU&#xff0c;通过Mali-G88的先进技术&#xff0c;图形处理性能大幅提…

xtu oj 1233 Cycle Matrix 2.0

题目描述 给定N&#xff0c;输出一个N*N的矩阵&#xff0c;矩阵为N层&#xff0c;每层是一个字符&#xff0c;从A到Z。 比如说N3,矩阵为 CCCCC CBBBC CBABC CBBBC CCCCC输入 第一行是一个整数K&#xff08;K≤50&#xff09;,表示样例数。 每个样例占1行&#xff0c;为一个整…

更新从MySQL中读取数据时发现MySQL中的时间字段会相差8小时?

这里写自定义目录标题 修改事件A中的某些字段的数据&#xff0c;规则表中事件A对应的规则字段不发生改变 业务需求&#xff1a;需要将MySQL中的两张表同步到ES中&#xff08;新增、修改、删除同步&#xff09;&#xff0c;优化事件查询速度 解决方案&#xff1a;使用logstash-i…

对实现移动应用界面设计的思考

1. 屏幕 1.1. 屏幕的职责 现在的移动设备都使用触摸屏&#xff0c;触摸屏承担了两项职责&#xff1a;展示界面和处理用户操作指令。界面上展示的东西又可以分为内容和样式。比如展示一行大标题&#xff0c;标题文字是内容&#xff0c;字体、字号、颜色、背景色等等是样式。处…

Python 实现 ATR 指标计算(真实波幅):股票技术分析的利器系列(10)

Python 实现 ATR 指标计算&#xff08;真实波幅&#xff09;&#xff1a;股票技术分析的利器系列&#xff08;10&#xff09; 介绍算法解释 代码rolling函数介绍核心代码 完整代码 介绍 ATR&#xff08;真实波幅&#xff09;是一种技术指标&#xff0c;用于衡量市场波动性的程…

北航历届复试总结

政治题 科技兴国 英文翻译&#xff08;读一遍英文再翻译&#xff09; 随机抽一段计算机相关的英文论文&#xff0c;读一遍后翻译。建议全读完后再翻译&#xff0c;这样遇到不会的单词可以靠上下文猜一猜意思。之后如果你英语不强&#xff08;像我这种菜鸡&#xff09;&#xf…

【AHK】 MacOS复制粘贴习惯/MacOS转win键位使用习惯修改建议

自从转Mos后&#xff0c;转回win习惯又很不适应&#xff0c;怎么尽可能地降低两者的操作差异呢&#xff1f;通过AHK将大部分的Alt键位操作适当修改即可&#xff0c;特别是Home和End这类键&#xff0c;感觉是Mac的使用习惯更舒适 !c:: send,^c return!v:: send,^v return!x:: se…

content-type

content-type是什么 Content-Type 是 HTTP 协议中的一个头部字段&#xff08;Header Field&#xff09;&#xff0c;用于指示发送的实体数据的媒体类型&#xff08;Media Type&#xff09;。该字段用于告知服务器或客户端接收到的数据的内容类型&#xff0c;以便正确地处理和解…

如何获取 mysql 外键索引的元数据信息?

背景 对数据进行统一的管理处理&#xff0c;后续方便使用。 基本信息 见上一篇的处理。 select * from information_schema.KEY_COLUMN_USAGE where REFERENCED_TABLE_SCHEMA test \G;*************************** 1. row ***************************CONSTRAINT_CATALOG:…

Linux--ACL权限管理

一.ACL权限管理简介 ACL&#xff08;Access Control List&#xff0c;访问控制列表&#xff09;是一种文件权限管理机制&#xff0c;它提供了比传统的UGO&#xff08;用户、组、其他&#xff09;权限更灵活的权限设置方式。以下是ACL的一些主要功能&#xff1a; 针对特定用户或…

【Linux】docker构建环境编译运行linux内核

文章目录 1. 使用docker构建linux内核编译运行环境1.1. 为普通用户安装docker并验证是否安装成功1.1.1. 安装docker稳定版1.1.2. 启动docker1.1.3. 将当前用户加入docker用户组1.1.4. 验证docker是否安装成功 1.2. docker基本使用1.2.1. 列出所有镜像1.2.2. 查看当前所有容器的…

Vue3学习——路由

多级路由 routes:[{path:/about,component:About,},{path:/home,component:Home,children:[ //通过children配置子级路由{path:news, //此处一定不要写&#xff1a;/newscomponent:News},{path:message,//此处一定不要写&#xff1a;/messagecomponent:Message}]} ]命名路由 …

lower_bound详解

lower_bound是C标准模板库(STL)中的一个算法&#xff0c;用于在有序区间中查找第一个大于或等于给定值的元素的位置。这个函数非常有用&#xff0c;特别是当我们需要在有序数据集中进行二分查找时。下面是对lower_bound函数的详细讲解&#xff0c;包括其用法、原理、实现细节以…

pyqt如何实现拖拽打开文件(通过windows的快捷方式打开文件)

桌面端的开发中如何通过windows的快捷方式打开文件&#xff0c;那么如何将需要打开的数据传递给qt程序呢&#xff1f; 研究了一下发现很简单 通过sys.argv可以轻松的实现传参 sys.argv import sys print(sys.argv)这个方法可以获取系统传递给程序的参数&#xff0c;默认是个列…