生产数据 JSON 文件推送系统整体解决方案(几十亿海量数据版)文档信息版本:V1.0适用场景:生产数据长期累积几十亿级别、双格式 JSON 文件生成、单文件推送第三方、数据不漏、不影响生产、可自动清理推送完成文件吞吐要求:稳定每秒几十条业务数据推送一、业务约束汇总数据体量:长期累计生产明细可达几十亿条,必须分表分库 + 冷热归档治理两种输出文件模式批量文件:单文件多条记录,上限 20MB,超阈值自动拆分新文件单条文件:一个文件仅存放一条业务记录推送限制:第三方接口仅支持单次上传单个文件,不支持多文件批量提交数据库约束:数据查询、抓取、统计不得阻塞、影响产线正常写入业务存储管控:推送成功文件支持自动 / 手动删除,防止磁盘无限膨胀可靠性要求:数据不丢、不重复推送、异常自动重试、每日对账兜底、全链路可追溯二、整体系统架构产线业务写入 → 生产主库(仅负责业务新增/更新,不承载查询压力) ↓ 事务复制/快照复制同步 只读副本集群(推送专属查询节点,完全隔离查询压力,保护生产) ↓ 数据抓取服务(增量捞取、分表路由、状态原子锁定) ↓ 内存缓冲队列 → 文件生成模块(批量/单条文件自适应、20MB边界自动切分) ↓ 本地磁盘落地存储 + 写入文件推送台账 ↓ 多线程推送线程池(循环逐个上传单个文件至第三方接口) ↓ 推送结果回写台账状态 + 分级重试调度 ↓ 定时清理任务(过期成功文件清理、磁盘水位降压清理) ↓ 每日增量对账任务(低峰运行,校验数据完整性,防遗漏) ↓ 冷热数据归档系统(历史分区归档裁剪,控制在线数据表体量,支撑几十亿量级)架构核心防护要点(保障不影响生产)所有查询、捞数、对账、统计全部走只读副本,生产主库只接收产线写入;不在原有生产业务表新增推送状态字段,独立推送关系表维护推送标记;查询采用无锁快照读,不存在共享锁阻塞产线写入;海量历史数据禁止 DELETE 大批量删除,采用分区归档 +TRUNCATE 截断,规避大事务、日志暴涨、锁表问题。三、数据库设计(按月水平分表,适配海量数据)3.1 原始生产业务表(原有业务表,结构不改动)命名规则:Prod_Report_yyyyMM(按月分表)说明:产线正常增改,推送服务仅在只读副本查询本表,永不执行 UPDATE 操作。3.2 业务推送关联表(按月分表,标记单条数据推送状态)表名:Prod_Push_Relation_yyyyMMCREATETABLEProd_Push_Relation_yyyyMM(IDBIGINTIDENTITY(1,1)PRIMARYKEY,BizUniqueID NVARCHAR(64)NOTNULL,PushStatusTINYINTNOTNULLDEFAULT0,BatchNo NVARCHAR(64)NULL,PushTimeDATETIMENULL,RetryCountINTNOTNULLDEFAULT0,RespContent NVARCHAR(MAX)NULL,ErrorMsg NVARCHAR(1000)NULL,CreateTimeDATETIMEDEFAULTGETDATE(),CONSTRAINTUK_BizIDUNIQUE(BizUniqueID));-- 索引优化CREATE