重构白银节点分配方式,使用手动接口精确配置节点
This commit is contained in:
59
README.md
59
README.md
@@ -1,6 +1,6 @@
|
||||
## TODO
|
||||
|
||||
考虑一个方案限制接口请求速率,无侵入更好
|
||||
优化中间件,配置通用限速
|
||||
|
||||
trade/create 性能问题,缩短事务时间,考虑其他方式实现可靠分布式事务
|
||||
|
||||
@@ -8,20 +8,17 @@ jsonb 类型转换问题,考虑一个高效的 any 到 struct 转换工具
|
||||
|
||||
端口资源池的 gc 实现
|
||||
|
||||
channel 服务代码结构,用 provider 代替整个 service 的复用
|
||||
|
||||
标准化生产环境 cors 配置
|
||||
用反射实现环境变量解析,以简化函数签名
|
||||
|
||||
底层调用集成 otel
|
||||
- redis
|
||||
- gorm
|
||||
- 三方接口
|
||||
---
|
||||
|
||||
分离 task 的客户端,支持多进程(prefork 必要!)
|
||||
|
||||
调整目录结构:
|
||||
|
||||
```
|
||||
- /core 核心概念
|
||||
- /util 工具函数
|
||||
|
||||
- /models 模型
|
||||
@@ -31,7 +28,7 @@ jsonb 类型转换问题,考虑一个高效的 any 到 struct 转换工具
|
||||
- /services 服务层
|
||||
- /auth 认证相关,特化服务
|
||||
|
||||
- /app 应用相关,初始化日志,环境变量等
|
||||
- /app 应用相关,初始化日志,环境变量,错误类型等
|
||||
- /http 协议层,http 服务
|
||||
- /cmd 主函数
|
||||
|
||||
@@ -40,21 +37,15 @@ cmd 调用 app, http 的初始化函数
|
||||
http 调用 clients 的初始化函数
|
||||
```
|
||||
|
||||
开号流程事务化
|
||||
---
|
||||
|
||||
开号:
|
||||
- 提交关闭任务
|
||||
- 保存数据
|
||||
- 开通端口
|
||||
|
||||
过期:
|
||||
- 接口
|
||||
慢速请求底层调用埋点监控
|
||||
- redis
|
||||
- gorm
|
||||
- 三方接口
|
||||
|
||||
冷数据迁移方案
|
||||
|
||||
proxy 网关更新接口可以传输更结构化的数据,直接区分不同类型以加快更新速度
|
||||
|
||||
## 业务逻辑
|
||||
|
||||
### 订单关闭的几种方式
|
||||
@@ -73,22 +64,18 @@ proxy 网关更新接口可以传输更结构化的数据,直接区分不同
|
||||
|
||||
### 节点分配与存储逻辑
|
||||
|
||||
添加:
|
||||
- 检查用户 ip 是否在白名单内
|
||||
- 取用端口,不够则返回失败
|
||||
- 将分配结果转写成配置发送到网关
|
||||
- 保存通道信息和分配记录,其中通道信息以网关为主体,分配记录以用户为主体
|
||||
- 添加异步任务,当时间结束后释放取用的端口并清空网关配置
|
||||
提取:
|
||||
- 检查用户套餐与白名单
|
||||
- 选中代理
|
||||
- 找到当前可用端口最多的代理
|
||||
- 不考虑分割端口,不够加机器
|
||||
- 获取可用端口
|
||||
- 获取可用节点
|
||||
- 生成批次号,提交到期释放任务
|
||||
- 绑定节点与端口,保存到数据库
|
||||
- 分别提交连接与配置请求
|
||||
|
||||
删除:
|
||||
- 如果传入用户信息,检查要删除的连接是否属于该用户
|
||||
- 释放可用端口
|
||||
- redis 脚本中检查,如果端口所属节点已下线则直接忽略
|
||||
- 提交清空配置到网关
|
||||
|
||||
缩扩容:
|
||||
- 通过调度任务实现缩扩容
|
||||
- 每分钟检查一次全部配置,按代理分组
|
||||
- 获取所有代理后备配置
|
||||
- 后备配置/当前配置
|
||||
- 当比例 < 1.5 或 > 3 时,重新更新为 2 倍
|
||||
释放:
|
||||
- 根据批次查出所有端口与相关节点
|
||||
- 分别提交断开与关闭请求
|
||||
- 释放端口
|
||||
|
||||
Reference in New Issue
Block a user