点击蓝字 关注我们
编者语
今年的开源之夏活动已接近尾声,Apache DolphinScheduler 社区的开发者在经过紧张忙碌的开发过程收获了自己的成果,同时也为 Apache DolphinScheduler 带来了全新的任务插件 gRPC。
这项成果是由来自北京交通大学电气工程专业的优秀同学赵海波带来的,今天我们就来看看他是如何在本次活动中圆满完成开发任务的吧!
个人介绍
赵海波
北京交通大学 电气工程专业
导师:谭恒亮
GitHub ID:npofsi
研究领域:时序数据分析,模型优化控制
兴趣爱好:板绘、美食
项目
名称
- 为Apache DolphinScheduler 新增 gRPC 任务插件
项目
简介
项目
简介
在OSPP2025中,我主要承担了“为Apache DolphinScheduler 新增 gRPC 任务插件”的工作,这为 DolphinScheduler 添加了与 gRPC 接口进行交互的任务节点。
与 DolphinSchedulerHTTP 任务访问外部 HTTP 接口相似,这个插件主要用于访问外部 gRPC 服务器提供的网络接口,并参考了 HTTP 插件,使用相似的配置参数,结合 DolphinScheduler 插件的 SPI 进行设计。
DolphinScheduler 作为一个进入 CNCF Landscape 的分布式工作流调度系统,在云原生的场景中得到了广泛应用,但目前缺少对云原生场景中普遍存在的 gRPC 协议的支持,因而催生了本项目的需求。
开发
路径
我以此需求为基础,考虑用户实际工作流中调用 gRPC 服务的过程,在导师的指导下结合了接口调试工具的交互逻辑,提供了 schema 和请求消息分别设置的交互方式,在任务执行时进行合并。也因此设计了将 protobuf 和数据在前端预处理、在后端合并的插件实现方式。


配置该 gRPC 任务时,插件在前端接收 gRP C服务入口点、gRPC的protobuf服务定义、请求用消息和SSL等参数,并在保存时将 protobuf 经 protobuf.js 编译为特定描述传递到后端。运行该任务时,在后端按照该描述组装 protobuf descriptor(protobuf内部用于描述消息的二进制格式),然后经相关格式化工具将用户提供的 JSON 格式消息合并到 protobuf descriptor,之后经用户配置的服务入口请求相应的gRPC 调用。
开发
成果
-
完成 DolphinScheduler gRPC 插件设计与开发,可以实现在 java 运行时中动态发起 gRPC 调用,提供了和 gRPC 调试场景相似的配置模式,可以复用相关配置文件和测试消息。 -
完成单元测试与集成测试,覆盖主要功能以及边界情况。 -
提供详细插件使用文档、参数列表与示例。
主要
技术点
主要
技术点
开发这个插件时遇到的主要技术点是 gRPC 动态调用的实现。
区别于在 RESTful API 中使用的 schema-on-read 的 JSON 格式,gRPC 使用的是 schema-on-write 的 protobuf 定义,其格式由预先准备的定义文件决定,而不是跟随数据一起传递,这样可以减少传输的载荷,提高效率,并且具有更高的一致性和更多编译期检查,但是需要预先编译描述文件到二进制格式,一般情况下无法在运行时动态调整。
在这个插件中我使用了 protobuf.js 作为编译器,将protobuf 在前端提前进行编译,任务数据同时保存protobuf 源代码和中间描述,在后端根据中间描述直接构建二进制格式,接触了对 protoc 的依赖,使得用户可以在无需安装 protoc 的情况下发起 gRPC 请求。
项目开发完毕后,为了更好地了解同学们在参与开源之夏项目中的开发心得和感受,Apache DolphinScheduler 社区对同学们进行了简短的采访,以下为采访实录:
·END·
白鲸开源
白鲸开源是一家开源原生的DataOps商业公司,是国家高新技术企业,由多个Apache Foundation Member成立,80%员工都是 Apache Committer,运营2个全球Apache开源项目(DolphinScheduler, SeaTunnel)。白鲸开源已根据全球最佳实践发布商业版产品WhaleStudio(含白鲸数据调度平台WhaleScheduler和白鲸数据集成平台WhaleTunnel)。我们致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。
了解更多
金融行业的应用实例
国内某头部理财服务提供商基于白鲸调度系统建立统一调度和监控运维
白鲸调度系统助力国内头部券商打造国产信创化 DataOps 平台
白鲸开源 DataOps 平台助力证券行业实现信创数字化转型
最佳实践 | 从Airflow迁移到Apache DolphinScheduler
Apache DolphinScheduler VS WhaleScheduler
代立冬:基于Apache Doris+WhaleTunnel 实现多源实时数据仓库解决方案探索实践
商业版技术解析实例
驾驭数据的未来:WhaleStudio与DataOps的完美结合
运营开源项目
点个在看你最好看

