立项背景和目标
项目为游戏研发团队打造多租户可视化地图协同后台,解决美术、策划、开发跨岗位沟通割裂、超大地图加载卡顿、批量数据导出内存溢出等问题。目标搭建统一协作平台,实现 3D 坐标转 2D 可视化、权限管控、素材标注、数据批量导出,提升团队地图编辑协作效率。
核心功能模块
坐标转换可视化模块:通过仿射变换将引擎 3D 坐标映射为 2D 瓦片地图,支持分层缩放浏览;
素材标注管理模块:标准化元素标记体系,支持新增、检索、批量编辑标注;
任务调度模块:异步处理地图切片、百万级数据导出定时任务;
权限管控模块:RBAC 角色权限体系,区分管理员、策划、美术操作权限;
评论交互模块:分层评论存储,支持主评论批量查询、子回复懒加载。
业务流程
策划上传地图原始资源,系统自动切片生成多级缩略图;团队成员在线标注点位、发布评论;管理员配置角色访问权限,一键发起百万行数据导出任务,任务后台异步执行并推送完成通知,全程多人并行操作互不冲突。
整体架构与技术栈
采用前后端分离分层架构,后端基于 SpringBoot 开发,MySQL 做主业务存储,Redis 实现分布式锁、热点缓存;异步任务使用线程池 + 定时任务框架;文件流处理采用分段读写方案。核心技术:Java、MySQL、Redis、SpringMVC、文件 IO、分页流式查询。
个人负责模块与量化成果
独立负责地图切片渲染、异步调度、批量导出、权限控制四大核心模块;设计二级瓦片分片策略,页面首屏加载速度提升 95%;实现流式分页导出,支持单任务稳定导出百万条数据无 OOM;基于 Redis 分布式锁解决定时任务重复执行问题,线上任务重复触发故障率降至 0;完成 RBAC 权限接口封装,覆盖 5 类角色精细化访问控制。
难点与解决方案
难点 1:超大原图一次性加载页面卡顿。解决方案:设计两级瓦片切割 + 前端按需懒加载,仅渲染视口范围内切片,大幅降低传输与渲染开销。
难点 2:大批量数据导出内存溢出。解决方案:采用数据库分页流式读取,边读边写入本地临时文件,不一次性加载全量数据至内存。
难点 3:多实例部署定时任务重复执行。解决方案:引入 Redis 分布式锁,任务执行前抢占锁,执行完成释放,规避多节点重复调度。