# transflow **Repository Path**: Sunleader/transflow ## Basic Information - **Project Name**: transflow - **Description**: java实现 类似于 logstash 的数据流转平台,插件化 input output,现已支持 OPENAI 格式 MCP 调用 - **Primary Language**: Java - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: http://sunleader1997.top:18987/#/ - **GVP Project**: No ## Statistics - **Stars**: 21 - **Forks**: 2 - **Created**: 2025-03-06 - **Last Updated**: 2025-09-05 ## Categories & Tags **Categories**: big-data **Tags**: MCP, AI ## README # Transflow Transflow 是一个基于插件架构的数据流处理平台,旨在通过灵活的插件系统实现多种数据处理场景。它支持多种输入、输出及中间处理插件,能够方便地扩展和定制数据流处理逻辑。 ## 功能特点 - **插件化架构**:所有数据处理逻辑均通过插件实现,支持动态加载和卸载。 - **多协议支持**:支持 Kafka、HTTP、Netty、GitLab、Syslog �:// - **可视化界面**:前端使用 Quasar 框架,提供可视化数据流配置界面。 - **数据格式处理**:支持 JSON、文本、文件等多种数据格式的处理和转换。 - **热插拔与热更新**:插件支持热加载,无需重启服务即可更新插件逻辑。 - **流控与缓存**:支持数据流控、延迟队列、数据聚合等多种流处理机制。 ## 当前已支持的插件列表 - **输入插件(Inputs)** - `plugin-demo-input`:演示用输入插件,模拟数据生成。 - `plugin-kafka-input`:Kafka 消费者插件,从 Kafka 队列中消费数据。 - `plugin-netty-demo-input`:Netty HTTP(S) 接口监听插件。 - `plugin-netty-file-input`:Netty 文件接收器插件。 - `plugin-syslog-input`:Syslog 监听器。 - `gitlab-hook-input`:GitLab Webhook 输入插件。 - `plugin-transflow-agent-input`:Java Agent 插桩器,用于在 JVM 应用中插桩捕获数据。 - **中间处理插件(Middlewares)** - `plugin-json-filter`:JSON 数据过滤插件,基于 Aviator 脚本引擎。 - `plugin-json-gateway`:Groovy 脚本处理插件。 - `plugin-openai-filter`:AI 数据处理插件,支持调用 OpenAI 模型。 - `plugin-openai-mcp`:AI 数据处理插件,支持调用阿里云 DashScope 平台的 AI 模型。 - **输出插件(Outputs)** - `plugin-es-output`:将数据写入 Elasticsearch。 - `plugin-es-query-output`:Elasticsearch 数据查询插件。 - `plugin-http-output`:HTTP(S) 接口调用插件。 - `plugin-kafka-output`:Kafka 生产者插件。 - `plugin-netty-file-output`:Netty 文件传输插件。 - `plugin-syslog-output`:Syslog 输出插件。 - `plugin-gitlab-ai-codeview-outer`:GitLab 代码审核插件。 - `plugin-stdout`:控制台标准输出插件。 - `plugin-callback-output`:输入回调处理插件。 ## 演示 平台提供完整的可视化界面,支持拖拽式节点配置和连接,用户可通过前端界面实时查看数据流状态、日志、运行状态等信息。 ![20250327183942.gif](20250327183942.gif) ## 打包 项目使用 Maven 构建,打包命令如下: ```bash mvn clean package ``` ## Linux 安装 1. 将打包后的 jar 文件部署到 Linux 服务器。 2. 确保已安装 Java 17 或更高版本。 3. 确保配置文件 `application.yml` 正确。 4. 使用 `startup.sh` 脚本启动服务。 ## Linux 启动 ```bash ./startup.sh start ``` ## 访问页面 访问地址:`http://:/` ## 开发者支持 - **后端**:Java + Spring Boot + Netty + MyBatis Plus + FastJSON2 - **前端**:Vue.js + Quasar UI - **插件机制**:基于 Spring 的自动装配机制和自定义注解 `@Extension` 实现插件加载。 - **数据流引擎**:使用 `TransFlowInput`, `TransFlowMiddleHandler`, `TransFlowOutput` �:// - **插件开发文档**:详见各插件的 `@Extension` 注解定义。 ## 贡献代码 欢迎贡献插件或改进核心逻辑。请确保遵循项目编码规范,提交 Pull Request 前运行单元测试。 ## 协议 本项目遵循 Apache 2.0 协议。详见 `LICENSE` 文件。