首页 / Go 平台(cloud-go) / go-share 底座支撑库

职责概览

go-share 是 Go 平台的底座支撑库,提供全平台通用工具、领域模型与基础设施封装,被 go-core / go-master 所有服务依赖。

目录:utilsclientsossevents(含 topics)、eventBuserrorsi18nsctxsinterceptorsstoressystemsuserscronsaiwebsocketregistryconfverifyresulttoolsshell 等。

utils 核心工具

文件/模块能力
async.go安全启动协程(panic 恢复);HandleThrow 统一异常堆栈记录与告警触发
snow.goSnowFlake 分布式 ID 生成(全局唯一)
geo.go两点距离计算、WGS84→GCJ02 坐标纠偏(轨迹清洗基础)
tdEngine.goTDengine 并发写入封装:Channel 缓冲实现轨迹点高频异步入库
auth.go / config_crypto.go鉴权工具与配置加密
cast / conversion类型转换与单位换算

clients 客户端封装

客户端能力
mqttClientEMQX 连接封装:设备端消息订阅、指令下发
zlmediaHttpZLMediaKit HTTP API:抓拍、流管理(视频服务使用)
ossMinIO / 阿里云 OSS 统一接口,处理视频录像文件索引

公共能力与约定

  • 消息主题规范:events/topics/nats.go 集中定义 NATS 主题常量(device.up/down、thing、ota、shadow、status、application.* 等),Java/Go 共用,禁止各服务硬编码。
  • 事件总线:eventBus 提供进程内/跨服务事件发布订阅。
  • 错误与多语言:errors + i18ns 支持多语言错误,通过 Context 下发对应语种。
  • 上下文与拦截器:ctxs / interceptors 处理租户、用户、region、Trace-Id 等跨调用上下文。
  • 存储与系统:stores(数据存储抽象)、systems(系统配置)、users(用户上下文)、crons(定时任务)、ai(AI 接入)。
  • 约定:所有耗时任务(写 TDengine、推送告警)使用 utils.Go 异步执行,保证主业务流响应速度;状态类数据在 Redis,流水类在 TDengine,配置类在 MySQL。