结项报告完整版 | 为 Apache DolphinScheduler 添加 gRPC 插件
过去两周,我们对开源之夏活动中表现优异的开发者们进行了简单的采访,初步粗略地了解了一下他们的开发过程和心得体会。今天,我们将通过同学们的完整结项报告,深入了解项目的开发技术细节,希望能够帮助大家更好地了解 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. 测试覆盖
-
- 基础 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 字段测试
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
浙公网安备 33010602011771号