随着对地观测技术的快速发展,遥感数据呈现出“五高”特征(高时空分辨率、高光谱、高立体、高时效、高数据量),单景原始影像数据量常达数GB甚至TB级。传统的人工调度处理模式存在三大痛点:
单点性能瓶颈:单机处理能力有限,海量数据排队等待,导致计算资源利用率低,处理时效性无法满足业务需求(如应急减灾)。
分发策略僵化:无法根据数据体量(大小)和碎片化程度(个数)动态调整计算资源,导致“大任务卡死、小任务闲置”的资源分配不均问题。
链路可靠性缺失:网络波动或节点宕机导致的上传/处理中断缺乏自动修复能力,且中断后易产生MinIO存储垃圾及数据库脏数据,人工清理成本极高。
为解决上述问题,本项目构建了一套自动化、高可靠、可扩展的遥感数据流水线系统,实现数据接入与处理任务的解耦与并行化。
系统围绕“接入-拆分-处理-容错”的主线,提供以下核心功能:
1. 高性能数据接入(多线程上传与实时进度)
并发上传引擎:前端利用Web Worker+multipart/form-data分片,后端通过CompletableFuture线程池接收数据块,支持大文件并行上传至MinIO,充分利用网络带宽。
透明化进度反馈:通过WebSocket或轮询Redis缓存的字节偏移量,在前端Vue组件中实时展示上传速度、剩余时间及百分比进度条,提升用户交互体验。
2. 自适应任务分发(动态拆分子任务)
规则引擎驱动:监听MinIO Bucket事件或数据库新增记录,激活分发策略。支持“按数量拆分”(如每100景为一组)和“按大小拆分”(如每50GB为一组)两种模式。
负载均衡调度:结合Spring Cloud LoadBalancer与服务注册中心,将拆分后的子任务(Sub-Task)依据处理节点的当前CPU/内存负载,动态派发至空闲Worker节点,实现计算资源的合理利用。
3. 全链路可靠性保障(智能重传与垃圾回收)
失败重传机制:建立任务状态机(待处理 -> 处理中 -> 成功/失败)。定时巡检“失败”或“超时”(Zombie状态)任务,触发指数退避重试(Exponential Backoff),最多重试N次。
垃圾数据清理(GC for Data):在任务重传或取消时,启动事务性回滚流程——先调用MinIO SDK删除已上传的临时/错误分片,再级联删除PostgreSQL中的关联元数据,确保存储空间和数据一致性的纯净。
4. 全流程可视化管控(0到1闭环)
提供系统管理看板,管理员可查看任务队列深度、节点健康状态;普通用户可追踪自己上传数据的全生命周期流转日志。
本项目采用微服务+对象存储的云原生架构,由我独立完成从数据库设计、接口开发到前端交互的全栈交付。
1. 技术栈落地方案
层级 技术选型 核心用途
接入层 Nginx + Vue 3 + Element Plus 反向代理负载均衡,前端UI构建与交互渲染
业务中台 Spring Cloud (Gateway + OpenFeign) 微服务治理(注册发现、网关路由、声明式远程调用)
数据持久 PostgreSQL + MyBatis Plus 任务元数据、用户信息、日志的结构化存储与ORM映射
缓存与状态 Redis 存储上传进度缓存、分布式锁(防止任务重复分发)、Token会话
文件存储 MinIO 存储遥感源文件及处理后的结果瓦片/影像
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论