是一个基于 go-zero 的微服务脚手架,旨在帮助开发者快速搭建高性能的微服务应用 zero-service
gtw 是项目的 BFF 层网关,负责聚合后端微服务并为前端提供统一接口。它是整个系统的核心入口,可以作为 grpc 服务的入口,同时支持 grpc-gateway 的功能。
app 模块是整个项目的核心部分,包含多个子服务,主要用于实现业务逻辑和外部系统交互。
iec104 模块提供了完整的 IEC 104 数采平台解决方案,包含三个核心服务组件:
-
ieccaller 服务:对接 104 从站,实现 IEC 104 主站功能,负责与多个子站通信,支持 Kafka/MQTT/GRPC 多协议数据推送,支持动态数据库(SQLite、MySQL、PostgreSQL)实现动态配置点位推送策略,通过
enable_push字段控制数据是否推送,可选择开启或关闭数据库功能 -
iecstash 服务:负责消费 Kafka 消息,对 ASDU 数据进行压缩合并处理,并使用 chunk 任务处理机制将数据发送到下游 RPC 服务
-
streamevent 服务:接收 iecstash 压缩合并后的 ASDU 数据,使用 gRPC 实现,目前只实现采集原生指令数据功能
- 详细介绍请查看 IEC 104 数采平台
- 消息对接协议请查看 IEC 104 消息对接文档
file 模块提供文件服务功能,支持通过 gRPC 实现分片流上传,并集成了对象存储(OSS)上传能力。
- ⏱️ 基于
https://github.com/hibiken/asynq,实现定时/延时任务调度 - 📦 使用 Redis 存储任务队列,支持多节点部署与高可用
- 🔁 支持 HTTP/gRPC 回调,适配多种业务场景
- 🔧 支持任务归档、删除与自动重试等管理能力
- 📄 协议定义:
trigger.proto
- 🔧 集成 LAL 回调接口
- 📦 集成 ts 录制记录回调,提供分片播放能力
- 🌉 提供高性能的 HTTP 请求代理转发功能
- 🔀 支持多后端服务负载均衡与请求路由
- 🔒 内置访问控制与安全防护机制
- 📊 提供请求监控与统计功能
- 📄 生成符合南瑞反向隔离装置要求的文本文件,格式为
<Bridge:=Free...>JSON数据</Bridge:=Free> - 📑 支持多种数据类型的文件生成:
- 电缆工作列表数据(输出到
/opt/bridgedump/cable_work_list/*_json.txt) - 电缆故障数据(输出到
/opt/bridgedump/cable_fault/*_json.txt) - 电缆故障波形数据(输出到
/opt/bridgedump/cable_fault_wave/*_json.txt)
- 电缆工作列表数据(输出到
- 📤 与 filebeat 无缝集成,自动采集生成的 txt 文件
- 📥 通过 filebeat 将数据分类发送至不同的 Kafka topic:
- 电缆工作列表数据:
cable_work_list - 电缆故障数据:
cable_fault - 电缆故障波形数据:
cable_fault_wave
- 电缆工作列表数据:
- 📦 提供 Modbus TCP/RTU 协议处理能力
- 🔗 集成 GRPC 服务
- 📄 协议定义:
bridgemodbus.proto
- 📦 提供 mqtt 协议处理能力
- 🔗 集成 GRPC 服务
- 📄 协议定义:
bridgemqtt.proto - 📄 转发协议定义:
streamevent.proto
facade 模块提供了系统的对外接口,基于 gRPC 协议,支持多语言客户端。
基于 streamevent.proto 协议,用于处理流式数据事件,支持与语言无关的数据推送。通过实现该协议,任何语言的客户端都可以与平台进行数据交互,将数据推送到系统中。系统会根据动态数据库(SQLite、MySQL、PostgreSQL)的轻量化配置,将数据采集到 TDengine 数据库中。
socketapp 模块提供了简单的 SocketIO 实时通信解决方案,包含两个核心服务:
socketgtw 是 SocketIO 网关服务,负责处理客户端连接、房间管理、消息路由和 Token 认证。
前端对接文档:SocketIO 消息网关客户端对接文档
socketpush 是 SocketIO 推送服务,负责 Token 生成和提供 SocketIO 推送相关的 gRPC 接口,支持房间广播、全局广播、消息推送等功能。
- 集群部署支持:支持网关和推送服务的集群部署,实现高可用和水平扩展
- 无中间件依赖:不依赖 Redis、MQTT 等外部中间件,部署简单高效
- Token 认证机制:支持 Token 生成和验证,实现安全的客户端认证
- 实时双向通信:基于 SocketIO 协议,支持浏览器和移动端实时双向通信
- 房间管理:支持动态房间创建、加入和离开,实现灵活的消息广播机制
- 消息可靠性:支持 ack 回调机制,确保消息可靠传递
- 轻量级设计:采用 go-zero 框架,性能优异,资源占用低
- 依赖管理:确保
go.mod文件中的依赖项已正确安装 - 日志路径:检查配置文件中的日志路径是否有效
- Kafka 配置:确保 Kafka 集群地址和主题名称正确无误
- 配置管理:系统使用动态数据库(SQLite、MySQL、PostgreSQL)进行轻量化配置管理
- Java 接入:如需与 Java 应用集成,可参考 grpc-spring-boot-starter。

