s3桶大量数据下载
如果数据在境外,国内直连慢,可以尝试香港等亚太服务器进行中转,或尝试利用网盘进行中转
flowchart LR
subgraph CONTROL["调度与观测中心"]
UI["统一管理界面<br/>设备、速度、进度、异常"]
SCH["调度器<br/>一级切片与任务分配"]
DB[("状态数据库<br/>切片状态、租约、检查点")]
REC["超时回收器<br/>回收断联和过期租约"]
UI <--> SCH
SCH <--> DB
REC <--> DB
end
subgraph EXECUTORS["分布式执行器"]
direction TB
E1["执行器 A"]
E2["执行器 B"]
E3["执行器 C"]
P1["内部细分<br/>多连接并行下载"]
P2["内部细分<br/>多连接并行下载"]
P3["内部细分<br/>多连接并行下载"]
E1 --> P1
E2 --> P2
E3 --> P3
end
SOURCE[("数据源<br/>S3、HTTP、对象存储")]
subgraph PIPELINE["独立处理流水线"]
VERIFY["切片校验<br/>大小、范围、校验和"]
RETRY["失败重新排队"]
MERGE["完整文件合并"]
CHECK["整片校验"]
PUBLISH["原子发布"]
end
subgraph STORAGE["最终存储"]
TEMP[("临时切片区<br/>保留已验证切片")]
DISK1[("目标硬盘 1")]
DISK2[("目标硬盘 2")]
end
SCH -->|"事务领取一级切片<br/>执行器 ID + 租约令牌"| E1
SCH -->|"事务领取一级切片<br/>执行器 ID + 租约令牌"| E2
SCH -->|"事务领取一级切片<br/>执行器 ID + 租约令牌"| E3
E1 -.->|"心跳续租"| SCH
E2 -.->|"心跳续租"| SCH
E3 -.->|"心跳续租"| SCH
P1 -->|"范围请求"| SOURCE
P2 -->|"范围请求"| SOURCE
P3 -->|"范围请求"| SOURCE
P1 -->|"保存检查点"| TEMP
P2 -->|"保存检查点"| TEMP
P3 -->|"保存检查点"| TEMP
TEMP --> VERIFY
VERIFY -->|"失败"| RETRY
RETRY -->|"释放租约并重新领取"| SCH
VERIFY -->|"通过"| MERGE
MERGE --> CHECK
CHECK -->|"失败,保留切片"| RETRY
CHECK -->|"通过"| PUBLISH
PUBLISH --> DISK1
PUBLISH --> DISK2
PUBLISH -->|"发布成功后清理"| TEMP
REC -->|"租约过期<br/>切片回到等待队列"| SCH