Files
jh-zz/README.md

63 lines
1.5 KiB
Markdown
Raw Normal View History

2025-08-05 10:51:35 +08:00
## TODO
此实现目前并不是完全并发安全的:
2026-02-26 16:10:17 +08:00
2025-09-10 18:26:59 +08:00
- 目前事务等级没有对 cityhash 表的 offset 字段做防丢失,并发操作可能会出问题
2026-02-26 16:10:17 +08:00
考虑把命令行接口改为 web 接口
2025-09-11 14:40:11 +08:00
### 统一节点调度
2025-09-10 18:26:59 +08:00
2025-09-11 14:40:11 +08:00
节点上下线:
2025-09-10 18:26:59 +08:00
2025-09-11 14:40:11 +08:00
提供一个接口用来为节点加解锁
2025-09-10 18:26:59 +08:00
2025-09-11 14:40:11 +08:00
## 目录结构
2025-09-10 18:26:59 +08:00
2025-09-11 14:40:11 +08:00
整体是一个 go 项目,编译后在服务器执行
2025-09-10 18:26:59 +08:00
```
2025-09-11 14:40:11 +08:00
docs/ 相关文档
2025-09-10 18:26:59 +08:00
2025-09-11 14:40:11 +08:00
actions/ 程序功能
clients/ 外部 api 调用
model/ 数据库模型
util/ 工具类
2025-09-10 18:26:59 +08:00
2025-09-11 14:40:11 +08:00
scripts/ shell 脚本
```
2026-02-26 16:10:17 +08:00
## 使用方式
此项目在本地运行,其编译产物放在服务器运行
1. 在项目根目录下运行 `./deploy.ps1`,或直接复制脚本中的命令,编译出执行程序并上传到服务器
2. (可选)可以把 `update.sh``rollback.sh` 也上传到服务器,方便更新和回滚
3. (可选)可以在服务器将编译出的 cli 可执行文件链接到 /bin 下以实现全局执行
cli 有三个命令:
- `cli sync` 是同步城市节点
- `cli update` 是更新网关配置
- `cli clear` 是清空网关配置
> 三个命令对应于代码中 actions/ 目录下三个同名文件
## 逻辑梳理
```
每城市更新数量
遍历配置[网关][配置]
如果无需更新直接放入新配置
如果需要更新,放入城市更新统计
2026-02-26 16:10:17 +08:00
统计[城市][配置]
遍历城市
取到新节点
遍历需要更新的配置:
根据配置放入指定槽位[网关][配置]
2026-02-26 16:10:17 +08:00
新配置[网关][配置]
2026-02-26 16:10:17 +08:00
```