Skip to content

rezeropoint/UniSmith

Repository files navigation

UniSmith 融合网关管理系统

1. 项目概述

UniSmith 是一个高度可配置的融合网关管理系统。它提供了一个图形化的管理界面,旨在帮助系统管理员和开发人员轻松配置、管理和监控各种数据处理任务和后端服务。

融合网关核心定位:

  • 数据网关(当前主要功能):统一管理多种数据抓取、接收和处理任务,通过配置化方式简化运维工作和开发流程
  • 鉴权网关(未来规划):提供统一的身份验证、授权管理和访问控制功能
  • API网关(未来规划):实现API路由、负载均衡、限流熔断等服务治理功能

项目面向需要统一管理多种数据源接入、服务治理和安全控制的企业级场景,通过融合多种网关职责于一体,构建完整的服务入口解决方案。

UniSmith 融合网关命名释义

组成 词源/含义 在网关场景中的隐喻
Uni- Universal / Unified 表示"统一的、通用的、万能的",强调网关对多协议、多类型设备的统一接入与管理能力,避免割裂的"烟囱式"集成
Smith 英语中"铁匠、工匠"之意;在技术品牌里常延伸为"精于锻造、专注打磨" 隐喻网关像工匠一样,把多源数据**"锻造成"**可用、可互通的标准流;亦暗示对协议栈、性能、稳定性的极致打磨
融合网关 行业内对承担多协议适配 + 数据汇聚 + 统一发布角色的网关常用描述 用一句话点明产品定位:把视觉 AI、物联网、工业现场、业务系统等"异构世界"融合起来

一句话总结:

"UniSmith" = 将万千异构协议 统一(Uni-) 后,像匠人(Smith)一样精工细作地锻造成标准化数据流;"融合网关"进一步点明它是连接 AI、IoT、工业协议、业务 API 的融合型入口。

2. 核心功能

系统核心是围绕 配置化自动化 构建的,用户通过图形化表单即可定义和管理复杂的数据处理任务。

2.1 抓取 (Grab) 配置

定义一个主动从外部数据源拉取数据的任务。

  • 定时调度: 内置 Cron 配置器,可灵活定义任务执行周期(精确到年、月、日、时、分)。
  • HTTP 请求定义:
    • 支持 GETPOST 请求方法。
    • 可自定义请求 URLHeadersJSON Body 以及 Form 参数。
    • Form 参数支持动态生成,例如可自动填充"今天"或"过去N天"的日期。
  • 特殊请求头支持: 内置了对百度云AI等平台的签名算法支持,只需填写 AK/SK 即可自动生成认证头。

2.2 接收 (Receive) 配置

定义一个被动的 API 接口,用于接收由外部系统推送来的数据。

  • 阻塞式处理: 可配置阻塞等待时间,以确保数据完整接收。
  • 灵活的数据处理: 与抓取任务共享一套强大的数据处理和分发逻辑。

2.3 通用数据处理能力

无论是"抓取"还是"接收"到的数据,都会经过一个标准化的处理流水线。

  • 数据结构解析:
    • 支持处理 JSON对象JSON数组 两种数据结构。
    • 当数据为数组时,可使用路径语法(如 data.list)指定数组在响应体中的位置。
  • 字段提取与映射:
    • 允许用户通过点分路径(如 location.address)从原始数据中提取任意层级的字段。
    • 可将提取的字段映射为系统内部的标准化字段名(如 address)。
    • 支持对字段进行类型转换,例如将字符串或时间戳格式化为标准的日期时间类型。

2.4 数据推送与分发

处理完成后的结构化数据可以被自动推送到下游系统。

  • 推送类型:
    • Skylark (飞书/Lark): 将数据推送到指定的飞书/Lark流程引擎。
    • 仅日志: 不做推送,仅在系统后台记录处理日志,用于调试或归档。

2.5 与 @/datahandler 的联动方式

本项目是典型的 "配置与执行分离" 架构,frontendrestful/backend 负责配置的"定义",而 restful/datahandler 负责配置的"执行"。

  1. 用户定义任务: 用户在前端界面填写表单,定义一个完整的任务。例如,定义一个"抓取任务",包括其 Cron 表达式、目标 URL、请求参数、字段提取规则和最终的数据推送目标 (Skylark)。

  2. 配置持久化存储: 该配置通过核心后端 (restful/backend) 的 API 接口,被结构化地持久存储在 PostgreSQL 数据库中。

  3. datahandler 执行任务: 数据处理服务 (restful/datahandler) 是一个独立的、无状态的执行引擎。

    • 定时调度 (Grab): 其内置的 Cron 调度器会加载所有"抓取任务"配置,并根据其 Cron 表达式在指定时间触发任务。
    • 请求执行 (Grab): 任务触发后,datahandler 会根据配置构建并发送 HTTP 请求。
    • 被动接收 (Receive): datahandler 也提供 API 端点,随时准备接收第三方推送的数据,并触发相应的处理流程。
    • 处理与分发: 一旦获取到数据(无论是主动抓取还是被动接收),它会立即执行配置好的"数据解析"、"字段提取"和"数据分发"流水线,将最终结果发送到下游系统。

2.6 用户管理模块

项目包含一个完整的三级权限用户管理系统,以满足不同层级的管理需求。

  • 主要功能
    • 注册/登录:基于 JWT (JSON Web Token) 的安全认证机制。
    • 用户管理:支持对用户的增、删、改、查操作。
    • 角色权限:内置三种角色:
      • admin (管理员): 拥有系统所有权限。
      • sub_admin (子管理员): 可管理普通用户,但不能管理其他管理员。
      • user (普通用户): 仅拥有基础的访问和查看权限。

3. 技术栈说明

分类 技术
前端 React 18, UmiJS 4, Ant Design 5, Pro Components, TypeScript
后端 Go, go-zero
数据库 PostgreSQL (业务数据), Redis (缓存), etcd (服务发现/配置中心)
容器化 Docker, Docker Compose

4. 项目结构简述

.
├── deploy/                # 部署相关文件,核心是 docker-compose.yml
├── frontend/              # 前端 React 应用 (UmiJS 驱动)
│   ├── src/
│   │   ├── pages/         # 页面组件
│   │   ├── components/    # 通用组件
│   │   ├── services/      # API 服务封装
│   │   └── hooks/         # 自定义 Hooks
│   └── package.json
└── restful/               # 后端 Go 应用 (go-zero 驱动)
    ├── backend/           # 核心后端 API 服务 (与前端直接交互)
    └── datahandler/       # 独立的后台数据处理服务 (执行定时任务)

5. 本地启动与构建

本项目已完全容器化,推荐使用 Docker Compose 进行一键部署。

前提:请确保您的机器上已安装 DockerDocker Compose

步骤

  1. 创建共享网络 docker-compose.yml 使用了一个名为 unismith-network 的外部网络。首先需要创建它:

    docker network create unismith-network
  2. 启动所有服务 在项目根目录下,执行以下命令以后台模式启动所有服务(前端、后端、数据库等):

    docker-compose -f deploy/docker-compose.yml up -d
  3. 访问应用

  4. 停止服务

    docker-compose -f deploy/docker-compose.yml down

6. 补充说明

  • 权限设计思路:前端通过登录时获取的用户 role 字段来控制UI元素的显示(如菜单、按钮)。后端每个接口在处理请求时,会再次通过解析 JWT 中的用户信息来验证操作权限,实现双重保障。
  • 配置存储逻辑:所有在前端创建的配置项,无论是表单模式还是JSON模式,最终都会被解析并以结构化数据的形式存储在数据库的 configs 相关表中,供 datahandler 服务消费。

7. 未来展望与功能规划

UniSmith 融合网关管理系统将持续演进,朝着真正的融合网关方向发展。未来计划在以下几个关键领域进行功能扩展和优化:

7.0 融合网关完整架构规划

🚀 鉴权网关功能(未来规划)

  • 统一身份认证:集成多种认证方式(OAuth2.0、SAML、LDAP等)
  • 细粒度授权:基于RBAC/ABAC的权限控制模型
  • 单点登录(SSO):跨应用的统一登录体验
  • API密钥管理:第三方接入的密钥生成、轮换和管控
  • 访问审计:完整的访问日志和安全事件追踪

🚀 API网关功能(未来规划)

  • 路由管理:灵活的API路由配置和版本控制
  • 负载均衡:多种负载均衡策略支持
  • 限流熔断:基于令牌桶、滑动窗口等算法的流控
  • 服务发现:与主流服务注册中心集成
  • 协议转换:HTTP/gRPC/WebSocket等协议间转换
  • API文档:自动生成和维护API文档

7.1 数据网关功能增强

🔧 支持更多协议类型(未来规划)

当前系统主要聚焦于 HTTP/HTTPS 协议的数据抓取与接收。未来,我们将致力于扩展对更多工业和物联网协议的支持,包括但不限于:

  • Websocket:实现实时双向通信能力,适用于需要低延迟、高并发数据推送的场景,例如实时仪表盘、即时消息通知等。
  • OPC UA:作为工业自动化领域的关键协议,支持 OPC UA 将使 UniSmith 能够直接与工业设备、PLC、SCADA 系统进行数据交互,进一步拓展在智能制造和工业物联网中的应用。
  • MQTT:轻量级的消息发布/订阅协议,非常适合物联网设备的数据采集和分发,实现海量设备的高效接入。

通过支持多协议,UniSmith 将能够连接更广泛的异构数据源,成为真正意义上的"万能"融合网关。

🔧 接口数据处理日志与可视化(未来规划)

为了提升系统的可观测性和问题排查效率,未来将引入详细的数据处理日志功能。用户将能够:

  • 实时查看日志:无论是主动抓取(Grab)任务还是被动接收(Receive)接口,其所有数据处理环节的详细日志都将可被实时查看。
  • 关键信息记录:日志将包含请求入参、数据解析过程、字段提取与映射结果、数据推送状态(成功/失败)、以及任何处理过程中产生的错误或警告信息。
  • 日志检索与筛选:提供强大的日志搜索、过滤和时间范围查询功能,帮助用户快速定位特定任务或接口的问题。
  • 可视化分析:通过图表形式展示数据处理的趋势、成功率、耗时等关键指标,提供更直观的运行状态洞察。

这将极大地增强系统的透明度,便于用户监控数据流转,确保数据处理的准确性和可靠性。

🔧 智能告警模块(未来规划)

为确保系统稳定运行和数据处理的及时性,将引入一套智能告警系统。该模块能够:

  • 灵活配置告警规则:用户可以根据业务需求自定义告警条件,例如:
    • 任务执行失败率超过阈值
    • 数据抓取或接收超时
    • 特定字段数据异常或缺失
    • 系统资源(CPU、内存)使用率过高
    • API 调用错误次数达到上限
  • 多渠道通知:支持通过多种渠道发送告警通知,如邮件、短信、微信/钉钉/飞书消息等,确保告警信息能及时触达相关负责人。
  • 告警生命周期管理:提供告警的生成、确认、处理、关闭全流程管理,并支持告警历史查询,帮助团队快速响应并解决问题。
  • 集成第三方告警平台:预留接口,支持与 Prometheus、Grafana 等主流监控告警平台集成。

告警模块的引入将使 UniSmith 从被动响应转变为主动预警,显著提升系统的健壮性和运维效率。

7.2 融合网关发展路线图

阶段一:数据网关完善(当前及近期)

  • ✅ 已完成:HTTP数据抓取与接收、用户权限管理
  • 🚧 进行中:协议扩展、日志可视化、智能告警

阶段二:鉴权网关集成(中期规划)

  • 🚀 统一身份认证与授权体系
  • 🚀 单点登录和API密钥管理
  • 🚀 安全审计和访问控制

阶段三:API网关融合(长期规划)

  • 🚀 服务路由和负载均衡
  • 🚀 流量控制和熔断保护
  • 🚀 协议转换和服务治理

通过分阶段实施,UniSmith将逐步演进为企业级的全功能融合网关平台,真正实现"一个平台,多重职责"的设计理念。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published