dolphinscheduler服务RPC框架源码解析(八)RPC提供者服务整合Spring框架实现

devtools/2024/12/22 0:36:51/

RPC提供者服务整合Spring框架实现

  • 1.概述
  • 2.整合设计
    • 2.1.设计分析
    • 2.2.实现类关系设计
  • 3.整合实现
    • 3.1.WorkerServer启动
    • 3.2.WorkerRpcServer启动
    • 3.3.SpringServerMethodInvokerDiscovery类
    • 3.4.扫描注册RPC提供者的ServerMethodInvoker对象
    • 3.5.谁来执行扫描注册
    • 3.6. 注册ServerMethodInvoker对象
  • 4.总结

1.概述

通过前面的RPC框架源码系列的文章我们基本已经梳理了一个通用的RPC框架需要具备的核心功能。并通过源码进行这个设计实现流程的整体解析熟悉。本篇文章我们主要说的还是RPC框架如何与Spring框架进行整合。
Spring是Java Web领域中最流行且最被广泛使用的框架,如果RPC框架需要使用在真实生产场景中,最好是能够支持与Spring框架框架整合。
在dolphinscheduler的RPC框架设计中,RPC消费者端提供了单例工厂类可以快速通过创建RPC服务接口代理对象, 所以基本不需要与Spring框架进行过多的整合, 这里和Spring框架进行整合主要说的还是RPC提供者服务与Spring框架的整合实现。

2.整合设计

2.1.设计分析

当时我们在进行RPC提供者服务的设计实现时遗留了一块儿内容, 就是关于RPC提供者服务关于@RpcService注解和@RpcMethod注解的解析扫描实现及如何与Spring框架进行整合的内容。 今天我们主要讲的就是这部分内容。
大家来思考一下, 如果要你去设计,你觉得应该怎么设计呢?

1)首先被@RpcService注解的接口被定义成了RPC服务接口,被@RpcService注解的接口中被@RpcMethod注解的抽象方法就被定义成了RPC方法,需要进行远程调用。


http://www.ppmy.cn/devtools/144224.html

相关文章

使用pyinstaller打包pyqt的程序,运行后提示ModuleNotFoundError: No module named ‘Ui_main‘

环境:windowpython3.9pyqt6 使用pyqt UI编辑器生成了main.ui ,main.ui编译成了Ui_main.py main.py 使用当前目录下的Ui_main.py。 打包过程没报错,运行报错。 错误如下: 解决方法:pyinstaller -Fw main.py --paths. 使…

解决docker环境下aspose-words转换word成pdf后乱码问题

描述 环境&#xff1a;docker 部署工具&#xff1a;Jenkins 需求&#xff1a;本地上传的word文档需要转换成pdf 问题&#xff1a;转换之后的pdf文档出现小框框&#xff08;乱码&#xff09; 转换成PDF的操作 pom&#xff1a; <dependency><groupId>org.apach…

安装指南|OpenCSG Starship上架GitHub Marketplace

在代码开发的日常中&#xff0c;你是否常常被以下问题困扰&#xff1f; 代码审查耗时太长&#xff0c;拖慢项目进度&#xff1f; 审查质量参差不齐&#xff0c;一些关键问题被遗漏&#xff1f; 复杂代码变更看不懂&#xff0c;审查者需要大量时间理解意图&#xff1f; 别担…

【Linux】磁盘空间莫名消失,找不到具体原因的思路

磁盘空间莫名消失&#xff0c;找不到具体原因的思路 先说下常见的几种原因&#xff1a; 1、删除的文件未释放空间 2、日志或过期文件未及时清理 3、inode导致 4、隐藏文件夹或者目录 6、磁盘碎片 最后一种单独介绍。 环境&#xff1a;情况是根分区&#xff08;/&#xf…

流程图(一)利用python绘制弦图

流程图&#xff08;一&#xff09;利用python绘制弦图 弦图&#xff08;Chord diagram&#xff09;简介 数据围绕一个圆呈放射状排列&#xff0c;显示不同实体之间的相互关系&#xff0c;这既是弦图。弦图通过每个圆弧的大小比例表示连接分配数值&#xff0c;可以用颜色将数据…

八大设计模式

设计模式在日常软件开发中的重要性 目录 单例模式工厂模式策略模式代理模式观察者模式装饰器模式模板方法模式建造者模式总结 单例模式 单例模式确保一个类只有一个实例&#xff0c;通常用于管理共享资源&#xff0c;如配置、缓存、线程池等。 代码实现&#xff1a;双重检查…

MySQL使用LOAD DATA INFILE方式导入文本文件

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

< ,<<, <<<, >,>>,>>>的使用场景和区别

几个尖括号傻傻分不清,到底都是些啥?怎么用? 在 Linux Shell 中,<, <<, <<<, >, >>, 和 >>> 是重定向符号,用于控制输入和输出的数据流。下面详细解释它们的使用场景和区别: 1. 输入重定向:< 语法: command < input_file…