🚀 基于 go-zero 的高性能微服务脚手架
zero-service 旨在帮助开发者快速搭建可扩展、可维护的工业协议处理系统,已适配 IEC 60870-5-104 协议在电力场站的接入需求, 已适配 Modbus 协议在工业自动化系统的接入需求。
支持 Kafka、gRPC、异步调度、文件上传等场景,适配多语言微服务对接。
该图展示了 本系统作为 IEC 60870-5-104 主站,主动对接多个下级从站设备的整体架构:
- 💡 提供 IEC 60870-5-104 协议 ASDU 报文的接收、解析与编码能力
- 🔍 支持多种类型 ASDU 的解析与生成(遥信、遥测、遥控等)
- 🧪 提供协议模拟功能,便于调试与联调
- 🔗 集成 Kafka,实现异步、高吞吐的数据流处理
- 📄 对接文档:[消息格式说明](common/iec104/IEC-104 消息对接文档.md)
- ✅ 消费来自
iec104服务发送的 Kafka 消息 - 🧩 支持 chunk 批处理机制,提升处理效率
- 🚀 基于 go-queue,支持高并发处理(理论峰值 15W/s)
- 📡 将处理结果通过 gRPC 下发至后端业务模块
- 📄 转发协议定义:
streamevent.proto
- 💾 支持基于 gRPC 的分片流式上传
- ☁️ 集成对象存储(OSS)能力,支持大文件grpc stream 上传
- 📁 可用于存储协议数据、任务报告等业务文件
- ⏱️ 基于 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
- 📦 提供 GIS 处理能力, 常见地理算法,围栏计算等
- 🔗 集成 GRPC 服务
- 📄 协议定义:
gis.proto
- 依赖管理:请确认
go.mod中的依赖已正确安装,执行go mod tidy - 日志配置:确认各服务配置文件中的日志路径可用
- Kafka 配置:确保 Kafka 地址与 topic 配置正确
- Java 接入:如需与 Java 应用集成,可参考 grpc-spring-boot-starter。

