项目架构
本项目作为系统编程练手,把 License、Master、Client 拆成多节点结构,支持单机部署也支持分布式拓扑。
┌─────────────────────┐
│ License Server │
│ (签发授权令牌) │
└──────────┬──────────┘
│ ECDSA 签名
┌──────────────────┼──────────────────┐
▼ ▼ ▼
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Master A │ │ Master B │ │ Master C │ ← 各自独立的部署实例
└─────┬──────┘ └─────┬──────┘ └─────┬──────┘
│ │ │
┌────┴────┐ ┌───┴───┐ ┌────┴────┐
▼ ▼ ▼ ▼ ▼ ▼
┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
│Client│ │Client│ │Client│ │Client│ │Client│ │Client│
│ ... │ │ ... │ │ ... │ │ ... │ │ ... │ │ ... │
└──────┘ └──────┘ └──────┘ └──────┘ └──────┘ └──────┘
三种校验模式
| 模式 | 校验方式 | 技术特点 |
|---|---|---|
| 默认配置(开源版) | 在线校验 | 20 连接 / 2 年;可作为开箱即用的本地测试配置 |
| HMAC 模式 | HMAC + 在线校验 | 启动时一次性校验;适合自部署、独立 Master 节点 |
| ECDSA 模式 | ECDSA P-256 离线签名 | 完全离线校验;支持多 Master 拓扑,作为分布式部署的技术尝试 |
技术看点
- 双校验模式:HMAC 适合在线场景;ECDSA 把校验逻辑下放到客户端,减少对 License Server 的依赖;
- 节点隔离:不同 Master 节点的数据、客户端互相不可见,便于做家庭实验或多用户环境隔离;
- 水平扩展:单 Master 节点可承载较大数量的客户端长连接;架构上可堆叠多节点;
- 离线友好:ECDSA 模式下 Master 与 License Server 可长期断网运行。
本页是作者个人开源项目的技术说明,不构成商业产品的功能承诺,也不附带任何 SLA。