## TODO
此实现目前并不是完全并发安全的:
- 目前事务等级没有对 cityhash 表的 offset 字段做防丢失,并发操作可能会出问题
## 模块逻辑
**更新网关配置**
```
获取所有网关
获取所有配置
构建配置表 `map[网关][配置]`
循环配置:
如果配置项需要更新,记录更新信息
循环更新信息(加速数据库查询)
上传配置到云端
**同步节点信息(全量更新)**
获取所有启用城市
循环城市:
获取云端节点信息
获取本地节点信息
更新列表 = 空
删除列表 = 本地节点
循环云端节点:
更新列表 <= 云端节点
删除列表 x= 本地节点(同云端 macaddr)
更新并(软)删除节点信息
### 统一节点调度
节点上下线:
提供一个接口用来为节点加解锁