写点什么

结项报告完整版 | 为 Apache DolphinScheduler 添加 gRPC 插件

作者:白鲸开源
  • 2025-11-19
    天津
  • 本文字数:1295 字

    阅读完需:约 4 分钟

过去两周,我们对开源之夏活动中表现优异的开发者们进行了简单的采访,初步粗略地了解了一下他们的开发过程和心得体会。今天,我们将通过同学们的完整结项报告,深入了解项目的开发技术细节,希望能够帮助大家更好地了解 Apache DolphinScheduler 项目的最新进展。


接下来是关于为 Apache DolphinScheduler 添加 gRPC 插件这一项目的完整报告:

1. 项目目标

DolphinScheduler 是一个开源分布式工作流调度系统, 为满足用户在工作流中调用 gRPC 服务的需求,设计并实现了 DolphinScheduler gRPC 插件。本插件旨在:


  • 支持在任务配置中灵活指定 gRPC 服务地址、端口、方法名、请求参数 等信息。

  • 提供可视化界面和 JSON 方式配置 gRPC 请求参数。

  • 保证任务执行结果能正确返回并绑定至 DolphinScheduler 的 workflow 上下文。

  • 支持异常处理和重试机制,提升任务稳定性。

  • 实现 SSL/TLS 加密连接,保障数据安全。

2. 任务实现

对照 RFC 文档,插件已满足如下需求:配置方式与 HTTP Task 类似,降低用户学习成本。


功能性需求:

2.1. 前端

  • 添加 gRPC 任务相关文件及 icon。

  • 实现参数表单,包括服务地址、端口、 gRPC 服务定义、请求方法、请求内容、参 数列表等配置项。

  • 使用 protobuf.js 实现 JSON 与 Protobuf 类型映射。

2.2. 后端

  • 创建 gRPC Task 相关基础代码,实现超时重试等功能。

  • 解析前端传入的参数,支持动态生成 gRPC 调用。

  • 实现错误处理、上下文绑定功能,并验证。

  • 实现请求发送、响应处理、异常捕获与重试逻辑。

  • 安全性:支持使用客户端 SSL/TLS 建立连接。

2.3. 测试覆盖

  • 插件整体功能性单元测试 https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-task-plugin/dolphinscheduler-task-grpc/src/test/java/org/apache/dolphinscheduler/plugin/task/grpc/GrpcTaskTest.java

  • 基础 gRPC 功能测试

  • 工作流及上下文绑定测试

  • 异常处理测试


  • Protobuf 解析器语法支持相关单元测试 https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-task-plugin/dolphinscheduler-task-grpc/src/test/java/org/apache/dolphinscheduler/plugin/task/grpc/GrpcParserTest.java

  • 基础类型测试

  • map, repeated field 嵌套类型测试 ‣ optional, oneof 字段测试

  • 基于任务参数的 API 测试 https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-api-test/dolphinscheduler-api-test-case/src/test/java/org/apache/dolphinscheduler/api/test/cases/tasks/GrpcTaskAPITest.java

2.4. 文档与示例

  • gRPC Task Plugin 中文文档及实例 https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/zh/guide/task/grpc.md

  • gRPC Task Plugin 英文文档及实例 https://github.com/apache/dolphinscheduler/blob/dev/docs/docs/en/guide/task/grpc.md

3. 成果总结

  • 完成 DolphinScheduler gRPC 插件设计与开发。

  • 完成单元测试与集成测试,覆盖主要功能以及边界情况。

  • 提供详细插件使用文档、参数列表与示例。


项目 GitHub 链接:https://github.com/apache/dolphinscheduler/pull/17402


感谢 OSPP 及 DolphinScheduler 社区各位导师的支持与指导。


Npofsi Koi (github.com/npofsi)npofsi@outlook.com

发布于: 39 分钟前阅读数: 8
用户头像

白鲸开源

关注

一家开源原生的DataOps商业公司。 2022-03-18 加入

致力于打造下一代开源原生的DataOps 平台,助力企业在大数据和云时代,智能化地完成多数据源、多云及信创环境的数据集成、调度开发和治理,以提高企业解决数据问题的效率,提升企业分析洞察能力和决策能力。

评论

发布
暂无评论
结项报告完整版 | 为 Apache DolphinScheduler 添加 gRPC 插件_大数据_白鲸开源_InfoQ写作社区