2025-05-22 15:22:40 +08:00
|
|
|
|
## TODO
|
|
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
限制提取单次最大量
|
2025-10-29 17:56:37 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
支付后异步任务,到时间后需要尝试完成订单,如果无法完成再关闭
|
|
|
|
|
|
|
|
|
|
|
|
重新实现接口 proxy 注册与注销接口:
|
|
|
|
|
|
- 注册时向 redis ports 可用池中加入端口
|
|
|
|
|
|
- 注销时需要同时移除可用池与租约池中的端口(需要考虑具体实现,考虑正在使用的节点归还问题)
|
|
|
|
|
|
|
|
|
|
|
|
otel 检查接口性能
|
|
|
|
|
|
|
|
|
|
|
|
trade/create 性能问题,缩短事务时间,考虑其他方式实现可靠分布式事务
|
|
|
|
|
|
|
|
|
|
|
|
需要确认以下 ID.GenSerial 的分布式并发安全性
|
2025-06-26 09:28:42 +08:00
|
|
|
|
|
2025-10-29 17:56:37 +08:00
|
|
|
|
### 长期
|
2025-06-26 09:28:42 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
分离 task 的客户端,支持多进程(prefork 必要!)
|
|
|
|
|
|
|
|
|
|
|
|
调整目录结构:
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
- /core 核心概念
|
|
|
|
|
|
- /util 工具函数
|
2025-05-24 12:35:43 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
- /models 模型
|
|
|
|
|
|
- /queries 数据库层
|
|
|
|
|
|
- /clients 三方依赖的客户端实例
|
|
|
|
|
|
|
|
|
|
|
|
- /services 服务层
|
|
|
|
|
|
- /auth 认证相关,特化服务
|
|
|
|
|
|
|
|
|
|
|
|
- /app 应用相关,初始化日志,环境变量等
|
|
|
|
|
|
- /http 协议层,http 服务
|
|
|
|
|
|
- /cmd 主函数
|
|
|
|
|
|
|
|
|
|
|
|
逐层向上依赖
|
|
|
|
|
|
cmd 调用 app, http 的初始化函数
|
|
|
|
|
|
http 调用 clients 的初始化函数
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
考虑一个方案限制接口请求速率,无侵入更好
|
|
|
|
|
|
|
|
|
|
|
|
冷数据迁移方案
|
|
|
|
|
|
|
2025-06-23 18:32:20 +08:00
|
|
|
|
proxy 网关更新接口可以传输更结构化的数据,直接区分不同类型以加快更新速度
|
2025-05-28 16:03:19 +08:00
|
|
|
|
|
2025-05-27 15:08:18 +08:00
|
|
|
|
## 业务逻辑
|
2025-03-15 16:07:45 +08:00
|
|
|
|
|
2025-06-26 09:28:42 +08:00
|
|
|
|
### 订单关闭的几种方式
|
2025-05-27 15:08:18 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
1. 创建订单后推送异步任务,到时间后尝试完成订单或关闭订单
|
2025-06-26 09:28:42 +08:00
|
|
|
|
2. sse 接口推送订单状态,轮询尝试完成订单
|
|
|
|
|
|
3. 异步回调事件,收到支付成功事件后自动完成订单
|
2025-11-24 18:44:06 +08:00
|
|
|
|
4. 用户退出支付界面,客户端主动发起关闭订单
|
2025-05-27 15:08:18 +08:00
|
|
|
|
|
|
|
|
|
|
### 产品字典表
|
2025-03-15 16:07:45 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
| 代码 | 产品 |
|
|
|
|
|
|
| ----- | ------------ |
|
|
|
|
|
|
| short | 短效动态代理 |
|
|
|
|
|
|
| long | 长效动态代理 |
|
|
|
|
|
|
|
|
|
|
|
|
### 节点分配与存储逻辑
|
2025-06-26 09:28:42 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
添加:
|
|
|
|
|
|
- 检查用户 ip 是否在白名单内
|
|
|
|
|
|
- 取用端口,不够则返回失败
|
|
|
|
|
|
- 将分配结果转写成配置发送到网关
|
|
|
|
|
|
- 保存通道信息和分配记录,其中通道信息以网关为主体,分配记录以用户为主体
|
|
|
|
|
|
- 添加异步任务,当时间结束后释放取用的端口并清空网关配置
|
2025-06-26 09:28:42 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
删除:
|
|
|
|
|
|
- 如果传入用户信息,检查要删除的连接是否属于该用户
|
|
|
|
|
|
- 释放可用端口
|
|
|
|
|
|
- redis 脚本中检查,如果端口所属节点已下线则直接忽略
|
|
|
|
|
|
- 提交清空配置到网关
|
2025-06-26 09:28:42 +08:00
|
|
|
|
|
2025-11-24 18:44:06 +08:00
|
|
|
|
缩扩容:
|
|
|
|
|
|
- 通过调度任务实现缩扩容
|
|
|
|
|
|
- 每 n 秒检查一次全部配置,按代理分组
|
|
|
|
|
|
- 获取所有代理后备配置
|
|
|
|
|
|
- 后备配置/当前配置
|
|
|
|
|
|
- 当比例 < 1.5 或 > 3 时,重新更新为 2 倍
|