首页 / Go 平台(cloud-go) / go-share 底座支撑库
go-share 底座支撑库
utils 工具、客户端封装、OSS 驱动与公共领域模型。
职责概览
go-share 是 Go 平台的底座支撑库,提供全平台通用工具、领域模型与基础设施封装,被 go-core / go-master 所有服务依赖。
目录:utils、clients、oss、events(含 topics)、eventBus、errors、i18ns、ctxs、interceptors、stores、systems、users、crons、ai、websocket、registry、conf、verify、result、tools、shell 等。
utils 核心工具
| 文件/模块 | 能力 |
|---|---|
async.go | 安全启动协程(panic 恢复);HandleThrow 统一异常堆栈记录与告警触发 |
snow.go | SnowFlake 分布式 ID 生成(全局唯一) |
geo.go | 两点距离计算、WGS84→GCJ02 坐标纠偏(轨迹清洗基础) |
tdEngine.go | TDengine 并发写入封装:Channel 缓冲实现轨迹点高频异步入库 |
auth.go / config_crypto.go | 鉴权工具与配置加密 |
cast / conversion | 类型转换与单位换算 |
clients 客户端封装
| 客户端 | 能力 |
|---|---|
mqttClient | EMQX 连接封装:设备端消息订阅、指令下发 |
zlmediaHttp | ZLMediaKit HTTP API:抓拍、流管理(视频服务使用) |
oss | MinIO / 阿里云 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。