01

个人总结

责任感和执行力: 能够制定详细工作计划并拆解成子任务,确保按期完成任务,在工作期间中极少延期既定安排的需求,保证迭代按时上线

善于总结输出,有一定文档编写能力:累计在CSDN写了近200篇技术博客,文字超40W字,浏览量20W+。

乐于分享和发现新技术: 在公司技术分享比赛中分享AI工作流经验,获奖第一名.

地址如下:https://github.com/belongwithme

热爱运动:完赛马拉松,大学期间CUBA校队控卫(篮球)

02

工作经历

软件java开发工程师

项目介绍:

DMS系统:基于SpringBoot和vue2开发,公司内部需要文档管理,所以引入DMS(文档管理系统),提供全面的文档生命周期管理解决方案,涵盖文档的创建、上传、协作、审批、版本控制、权限管理、在线预览及归档等核心功能,提升企业内部文档流转效率与数据安全性,支持海量文档存储与高并发访问。

工作亮点

  • 大文件上传与断点续传: 实现分片上传方案,通过文件Hash和用户ID构建缓存键,支持断点续传。分片存储到MinIO对象存储,上传完成后合并。使用数据库事务保证并发上传的一致性,定时任务清理24小时以上的临时分片文件.
  • 优化日志记录:用ThreadLocal深度控制解决审核等功能中AOP方法嵌套导致的重复日志问题,保障日志记录唯一性与准确性,日志存储减少了30%.
  • Redis缓存架构优化: 基于Spring Cache + Redis实现了分层缓存策略,重点优化配置数据、用户权限、热点文档(FTP搜索结果)等高频访问场景,缓存命中率达85%以上。针对缓存穿透问题,对查询结果为空的情况设置短期缓存(5-10分钟),实现了统一的缓存管理接口,支持缓存查询、清理和过期时间配置.
  • 构建统一的异步任务处理平台: 从0-1构建统一的异步任务处理平台,异步代码量少50%,.解决现有性能,可靠性和可扩展性问题.
  • 智能解析Excel平台:支持多客户(ZX/TBS/XBD/BES等)、多场景的动态表格数据提取,实现三种表头检测模式,智能识别列名并自动生成,支持质量评分机制,解决了传统固定位置解析方案无法适配客户变化的痛点,开发速度提高了76.7%.
03

项目经历

异步任务平台

项目简介:

DMS系统中有培训考试系统和文件管理中有很多异步流程(eg: 视频上传,视频解码,大文件上传,文件有效性检查,多文件导出等),在开发过程中实现了任务管理和调度等一系列功能,后面发现完善一下相当于一个通用的小框架,与业务解耦的同时还可以复用。支持多阶段任务自动调取,自动续做,失败重试,优先级排序等功能.

工作亮点:

  • 负责架构设计: 整体的框架搭建为flower层和worker层,flower层提供HTTP服务,管理任务,调度任务等接口,worker层负责消费任务.
  • 数据库表设计: 仅涉及低耦合的三张数据库表(任务信息表,任务配置表,任务位置表),方便快速注册,检索和管理.
  • 任务调度设计: 支持优先级调度,支持丰富的失败重试策略,包括渐进式和均匀重试,同时支持指定任务失败最大失败次数,支持通过修改配置的方式修改上述参数.
  • 分表逻辑设计: 为解决数据量过大导致性能下降,根据异步任务框架的特点,设计全新分表逻辑,按大小分表,将冷热任务分开.
  • 架构优化设计: 针对多个worker同时拉取同一批任务可能出现的竞争问题,从最初完全依赖业务幂等机制,优化到MySQL行级锁,后续引入Redis分布式锁再次优化.

技术难点:

1. 分表方案的设计: 设计了一种基于记录数进行分表的方案.任务治理会定时检查任务表中的记录梳理,在记录梳理超过阈值之后触发分表.此时新的任务创建在新表中,但是仍然从旧表中调度任务,知道旧表的任务调度完成.

2. 任务排序规则的设置: worker每一次拉取任务信息表中的前若干个任务,框架抽象出一个order_time排序字段来对任务进行排序,order_time受到任务修改时间,任务优先级,任务失败次数等字段的影响,解决了排序规则和多个字段耦合的问题.

3. 多方面性能调优: 对接口压测发现只有500QPS,通过增加MySQL连接池,使用Redis缓存任务详情和分布式锁进行优化,最终QPS达到2000.