1、立项背景和目标
立项背景:国药物流赛飞平台(SAVE)面临着来自内部管理、货主、物流中心及第三方物流的海量服务请求场景。预计业务量将达到同时在线5000人、并发600,每日接入订单超200万,并因此产生多达4000万笔的后续处理记录。此外,原有系统文件分散管理易造成“信息壁垒”与“信息孤岛”,传统的独立系统架构无法满足大数据的处理与高并发扩展需求。
立项目标:建设赛飞供应链管理云服务平台,采用大型电商平台技术趋势(分层、分割、分布式、集群、缓存、异步处理)。以PaaS为核心承载业务和技术服务,构建高可靠、大吞吐量的SaaS应用。目标是实现海量订单分发、订单与全局库存可视化、自动三方库存对账,并实现与内外部系统(WMS、TMS、分单引擎、货主系统)的统一无缝集成。
2、软件功能和核心模块介绍
赛飞平台主要由以下核心业务和技术PAAS模块构成:
基础档案与资质管理:统一管理商品、货主、客商、物流中心、承运商、仓库、地址等主数据;提供货主、货品首营及承运商的资质审批管控功能。
订单管理:处理所有出入库业务流转,单据细分为货主出/入库单、委托出/入库单、物流出/入库单。支持总/细单取消、订单异常卡单处理及自动补货下发。
库存管理:实现全国一体化库存管理,包含现存量管理、可用量(ATP)锁定与扣减、途损单处理、月末盘点库存调整,及汇总/当前库存查询。
计费管理:根据WMS回传的完结拣货动作及TMS反馈的运输信息,结合规则配置与价目表,自动计算仓储与运输的内外结算费用。
技术PaaS支撑模块:包含统一用户身份认证(SSO)、基于Hadoop的分布式文件管理、利用MongoDB实现的高效三方库存对账(分布式并行计算)、轻量化Web框架、搜索引擎及ActiveMQ消息队列服务。
3、业务流程和功能路径描述
基础数据流转路径:外部ERP/CMS/货主系统通过FTP文件(TXT/XML/Excel)或SOA服务将主数据上传至赛飞平台。平台统一管控后,再通过MQ消息或SOA服务将货品、客商及地址等档案下发至对应的WMS及TMS系统。
订单下发流程:
1).订单接入:外部系统通过接口推单,赛飞平台解析生成“货主入/出库单”。
2).委托校验与分单:系统执行资质、效期等校验。校验通过生成“委托单”;若不通过则单据转入“卡单”状态并记录原因。若订单未指定仓库,平台通过接口送入分单引擎(DOM)进行路径和仓库优化,并将分单结果回写后发起审批。
3).物流单生成与分发:委托单下推生成“物流入/出库单”。平台根据配置的物流规则,通过MQ中间件同步将仓储作业单下发给WMS,将运输通知下发给TMS。
作业反馈与关单流程:WMS执行完成入库上架、出库关车或反馈库存PIX动作,TMS反馈车辆调度、发车、抵达及签收异
1. 整体架构、设计思路与技术栈
架构与设计思路:平台采用“两地三中心”(康宁路主中心、虹桥灾备中心、电信云计算中心)网络部署模式。整体设计以PaaS平台为核心,遵循分层、分割、分布式、集群、缓存、冗余和异步处理等原则,将复杂的业务流程拆分为独立服务集群,通过消息队列和SOA总线实现应用解耦和异步通讯。
技术栈:
数据库:Oracle RAC(核心事务写入)、GBase 8a(列存热读数据库,用于复杂统计与分析)、MySQL(冷数据归档)、MongoDB(MQ消息持久化与库存对账计算)。
缓存与中间件:Memcached(分布式高速缓存),ActiveMQ集群(消息异步传输)。
集成与接口:Oracle OSB(企业SOA服务总线),RDI(Oracle到GBase的实时增量数据同步),Kettle(数据定期归档迁移工具)。
文件系统:Hadoop(HDFS)用于海量附件、订单文件及系统日志的分布式统一存储。
Web框架:JQuery easyui + Spring + spring MVC + Mybatis搭建轻量化Web前端。
2. 我主要负责订单模块开发,订单模块支持多渠道(手工、Excel、FTP/XML/TXT解析、SOA等)接入货主委托单,并负责拆单、分单及向下游WMS(仓储)和TMS(运输)下发作业任务并跟踪闭环。
总体量化规模:平台设计满足3-5年内同时在线人数5000人,并发数达600,每天接入订单量超过200万,其中约80%需要发送至订单引擎分单,每天新产生约4000万笔后续处理记录。
作业量化指标:日常出入库订单量约4万单/天(20%入库、80%出库),由此每天生成约1.6万笔TMS运输任务单。单套WMS系统每天反馈给平台的PIX(任务单动作明细)达到8万量级,出库关车动作约1.6万量级。
3. 遇到的技术难点及解决方案
难点一:高并发下的大数据量读写压力瓶颈
解决方案:实施数据读写分离。核心业务使用Oracle RAC保障事务一致性,高频读取与分析使用GBase,两者间通过RDI工具实现秒级增量同步。同时,引入Memcached分布式缓存,将高频访问的基础档案、规则等预加载到内存,大幅减少数据库直接查询次数。
难点二:历史数据及海量非结构化文件导致系统臃肿
解决方案:建立数据与文件归档机制。针对冷数据,利用Kettle每月定期将一年前的历史数据同步备份至MySQL,比对无误后物理删除主库数据。针对日志、图片和附件等非结构化文件,引入Hadoop分布式文件管理系统(HDFS)进行统一归档与压缩存储