## TODO ### 长期 模型字段修改,特定枚举字段使用自定义类型代替通用 int32 更新接口可以传输更结构化的数据,直接区分不同类型以加快更新速度 ## 业务逻辑 ### 代理服务与节点的增量更新 代理服务定时提交增量更新数据包,格式为: | version(1) | proxy_id(4) | count(2) | edge_id(4) | mask(1) | info(...) | |------------|-------------|----------|------------|---------|-----------| | 数据包版本 | 代理服务 id | 更新的节点数量 | 节点 id | 节点更新项 | 节点更新内容 | 其中 mask 部分,每个位代表一个节点更新项,具体如下: | 位数(从前到后) | 节点更新项 | |----------|----------| | 0 | 保留位,预留扩展 | | 1 | 空,固定为 0 | | 2 | 空,固定为 0 | | 3 | 端口 | | 4 | 省份 | | 5 | 城市 | | 6 | 运营商 | | 7 | 状态 | 节点更新的具体内容大小视数据结构而定 ### 产品字典表 | 代码 | 产品 | |-------|------| | short | 短效代理 | | long | 长效代理 | ## 业务流程 ### 短效动态 1. 获取远端连接配置 2. 查询并计算实际连接状况 3. 每个网关: 1. 根据负载分配算法,计算是否需要为此网关分配新的连接 2. 如果需要新的连接且预计连接数大于已配置的连接数,则更新远端连接配置 3. 为新增连接分配可用端口,并更新网关端口配置