Browse Source

update 更新功能说明,存储obj 改为 异步

dev
lucas 1 month ago
parent
commit
4bfc93c4de
  1. 79
      README.md
  2. BIN
      README_files/时序库bucket.png
  3. 10
      et_Info/InfoHandler.go

79
README.md

@ -1,4 +1,79 @@
# et-go # et-go
et-go et-go
20240919重建 20240919重建gitea项目
## 功能描述
对标东江平台本地化et, 旨在使用golang进行改写,提高et数据处理能力
et-go采用主副节点模式: 一主多从,进行数据处理。
主节点负责订阅kafka数据,node节点负责实际的数据处理流程
node节点上线后,会自动按照配置文件里面的node.remoteMasterHost 地址,向master节点注册
node节点退出下线时,会向master节点注销
## 部署
### 部署信息
1. 使用yaml启动
2. yaml 包含三部分:
- StatefulSet: et主副节点控制,最少副本数=2 (即 1个master,1个node),
多开比如设置 副本数=3 (即 1个master,2个node),以此类推 <img src="README_files/状态集副本数设置2及以上.png">
- Service: 主要用于master的注册服务(目前只有node 使用)
- ConfigMap: 配置文件挂载(master,node共用)
### 部署方式:
microk8s 部署参考
<img src="README_files/microk8s部署.png" alt="microk8s部署">
#### microk8s 部署
- 镜像格式 : registry.ngaiot.com/local/git-etgo:28
- jenkins : https://jenkins.ngaiot.com/job/git-etgo/
- yaml : https://gitea.ngaiot.com/DevOps/et-go/src/branch/dev/build/etgo.yaml
#### 运行信息参考
mater节点 et-0
<img src="README_files/演示运行et-0.png">
node节点 et-1
<img src="README_files/演示运行et-1.png">
## 涉及变更
### 前端公式保存
测点信息的配置保存 新增 formula_id 列
<font color="red">**前端保存测点时,需要存储测点公式id**</font>
涉及语句:
ALTER TABLE "t_device_sensor" ADD COLUMN formula_id INTEGER;
<img src="README_files/t_device_sensor添加列 formula_id.png">
### influxDB存储
数据存储分为三个bucket 功能和es 数据对应
- raw 存储设备数据 以 deviceId 作为measurement
- theme 存储测点数据 以 facotr_${facotrId} 作为measurement,如factor_15
- vib 存储振动数据 以 deviceId 作为measurement
<img src="README_files/时序库bucket.png">
### 测点数据推送
- MQTT方式:
topic 主题格式: etpush/${structId}/${stationId}
如:etpush/1/40
- kafka方式
topic 主题格式: etpush
body 内容格式:
包含测点id,名称,数据,时间
```json
{
"id": 40,
"name": "DJ-DIS-B01-002-01",
"data": {
"displacement": -11.2766
},
"collect_time": "2024-07-19T16:00:00.00128681+08:00"
}
```

BIN
README_files/时序库bucket.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 32 KiB

10
et_Info/InfoHandler.go

@ -44,9 +44,13 @@ func (the *InfoHandler) getStationInfo(p *common_models.ProcessData) *common_mod
//补全 设备数据输入单位 //补全 设备数据输入单位
p.DeviceData.RawUnit = p.DeviceData.DeviceInfo.DeviceMeta.GetOutputUnit() p.DeviceData.RawUnit = p.DeviceData.DeviceInfo.DeviceMeta.GetOutputUnit()
//存储测点obj //存储测点obj
err = the.configHelper.SetDeviceStationObjs(p.DeviceData.DeviceId, p.Stations) if len(p.Stations) > 0 {
if err != nil { go func() {
log.Printf("SetDeviceStationObjs缓存异常 err=%s", err.Error()) errSet := the.configHelper.SetDeviceStationObjs(p.DeviceData.DeviceId, p.Stations)
if errSet != nil {
log.Printf("SetDeviceStationObjs 缓存异常 err=%s", errSet.Error())
}
}()
} }
} }
return p return p

Loading…
Cancel
Save