TODO

此实现目前并不是完全并发安全的:

  • 目前事务等级没有对 cityhash 表的 offset 字段做防丢失,并发操作可能会出问题

考虑把命令行接口改为 web 接口

统一节点调度

节点上下线:

提供一个接口用来为节点加解锁

目录结构

整体是一个 go 项目,编译后在服务器执行

docs/       相关文档

actions/    程序功能
clients/    外部 api 调用
model/      数据库模型
util/       工具类

scripts/    shell 脚本

使用方式

此项目在本地运行,其编译产物放在服务器运行

  1. 在项目根目录下运行 ./deploy.ps1,或直接复制脚本中的命令,编译出执行程序并上传到服务器
  2. (可选)可以把 update.shrollback.sh 也上传到服务器,方便更新和回滚
  3. (可选)可以在服务器将编译出的 cli 可执行文件链接到 /bin 下以实现全局执行

cli 有三个命令:

  • cli sync 是同步城市节点
  • cli update 是更新网关配置
  • cli clear 是清空网关配置

三个命令对应于代码中 actions/ 目录下三个同名文件

逻辑梳理


每城市更新数量

遍历配置[网关][配置]
    如果无需更新直接放入新配置
    如果需要更新,放入城市更新统计

统计[城市][配置]
遍历城市
    取到新节点
    遍历需要更新的配置:
        根据配置放入指定槽位[网关][配置]

新配置[网关][配置]
Description
极狐节点轮换管理项目
Readme 2.9 MiB
Languages
Go 98.2%
Shell 1.3%
PowerShell 0.5%