北京字典价格联盟

快递系统双11实践经验

只看楼主 收藏 回复
  • - -
楼主

2015年的双11过去了,各大电商和往年一样,记录一次再一次被打破,天猫以912.17亿元的成绩再次刷新电商单日营收纪录。可以说双11是电商系统的年度大考,双11之后,又是配送物流行业的高峰期。在庞大数据的背后,快递行业的又是怎么支撑双11这波高峰的呢?


如风达风云系统介绍


北京如风达快递有限公司一直以“技术驱动业务”的思想指导公司的业务发展,作为率先拥有自己技术团队的快递公司,担当着“快递公司”和“科技公司”的双重身份。前期做为凡客御用的配送公司,几年内发展到几乎和国内所有知名电商公司合作,成为国内唯一名副其实的电商快递。而小酒窝科技作为由如风达技术部门独立出来的科技公司,负责如风达等物流快递行业仓储运输配送系统的研发和运维工作,真正做到了同时支持“仓干配”供应链系统一站式解决方案技术提供商。在近几年电商大促活动中,单量每次成倍的增长,而由小酒窝科技研发的风云配送系统,顶住了一波又一波的压力。


风云配送平台随着逐年的发展,已发展成为一个大型的SOA架构系统,根据公司的业务量目前能支持每天上千万级的数据处理。同时,在系统架构设计之初,我们就把系统定位于一个物流快递行业的SaaS平台,现已提供给湖南长沙创一,山东海陕西飞远等多家配送公司使用。目前风云平台包含多个业务子系统,有EDI对接系统、WMS仓储系统、TMS运输系统、DMS配送系统、BOSS调度系统WDS分拣系统等20多个子系统,底层还有权限系统、日志系统、监控系统、财务系统、报表系统、客户关系管理系统等10多个辅助系统下面给大家介绍下风云配送系统是如何做到高效稳定的。


双十11备战

针对此次双11我们分别从业务流程、系统架构、网络支撑、数据灾备、业务细节等各方面做了详细的预案。


、测试演练,根据单量的预测,进行全单量压测,扩容带宽,增加服务器, 进行灾备转移的处理。灾难演练,确保了系统在突发情况能正常运行。


二、服务降级, 我们还对各个功能做了可能的降级预案,如果系统抗不住,我们哪些功能可以停止,哪些功能能可以简化,哪些功能可以延后处理,哪些功能可以异步处理。


三、简化业务 ,简化流程对于系统和操作人员都是最有价值的方案,比如我们可以和上游的客户协商,客户库房打包的时候打印出如风达的配送站和配送线路信息,这样后续就不再需要粘贴面单这样的简化每单操作时效至少比原来的作业提升40%。


四、基础设施如何应对突发业务,关键一环的一环节是IDC到中间环

节仓库中心,分拣中心,直至终端配送站,信息流如何更快速,更通畅地流转。


我们分别从智能监控,流量感知自动切换,负载动态变化,同时为数据中心更换处理能力更为强悍的计算单元,在业务操作期间故障模拟演练,启动第二灾备中心等。对于各个核心仓库中心,分拣中心,启动冷热方案,与数据中心建立双线链路,智能监控切换,始终确保在业务操作高峰提供一个稳健,平滑,有效的综合系统保障方案。


五、系统架构,风云配送平台从主体上是基础设施层、核心业务层和SaaS平台应用层。在各层以及应用之间,以高内聚,低耦合的原则,都做到了接口化和模块化。


风云系统和大多数电商系统一样,是一步一步根据业务需要演变过来了。目前,系统大版本号已达到了4.0,在系统的架构和应用上都相当成熟了。最初2011年如风达还是凡客的配送部门的时候,只有单一的配送系统LMS,系统逻辑也非常简单,但实现了由Excel交接到信息化系统支撑的突破。随着信息化的深入,系统由一个LMS扩展到了PMSTMSFMS,CRM等多个系统。初期整个系统之前的引用呈现网状模式,系统间的耦合度比较大


随着公司的扩大独立,原系统与凡客系统之间还有很多的牵连,这样涉及到系统的迁移和独立。任何系统的迁移都是一个庞大的工程,它既要保持原业务功能的使用,又要切开与原系统的关系,所有工作都不是快刀斩乱麻那样简单痛快。当时技术总监杨来旺顶住了压力,带领技术团队对原有系统进行了边割肉边包扎的处理,在迁移过程中同时改进架构,并引入到oracle,mysql数据库。架构上以运单数据为核心,各子系统独立的方式创新的实现了Hub架构模式,也使得整个工作很快递顺利地完成了。


又随着电商行业的日渐繁荣,公司的业务和单量也增涨得非常快。当时的系统运行得非常平稳,但系统对于Hub节点依赖性非常大,没有实现完全解耦,一但这个节点挂掉,整个系统可能面临崩溃。几经架构研究讨论,我们需要再次为系统进行开刀优化,将系统引入总线模型,各系统之间能做到热插拔,子系统之前不再相互影响,大大增加了系统的健壮性。


六、数据库架构,风云系统有整套存储云数据库架构,低层数据库应用为oralcemysql,中间件采用haproxy+keepalived+mycat,由于Mycat自身是属于无状态的中间件,而它类似于“mysql server”,因此Mycat很容易部署为集群方式,提供高可用方案。官方建议是采用基于硬件的负载均衡器或者软件方式的HAproxyHAProxy相比LVS的使用要简单很多,功能方面也很丰富,免费开源,稳定性也是非常好,故我们采用haproxy+keepalived的模式。


根据我们系统对数据库访问的读写比例,以及galera自身在多写的一些弊端,所以在我们的实际应用中,并没有采用多写,而是由中间件控制,一写多读,原有的节点再加上每个节点的slave,负载均衡,为整套数据库提供多台只读服务器,更好的满足我们的业务需求。





由于各业务系统内部独立,系统间存在较少的耦合,子系统之间的数据库存储没有了关联性,为分库创造了好的前提。各个系统的数据独立,读写性能比原有集中式提升几倍,订单吞吐量提升一个数量级。


配置mycat数据路由功能,分库对前端程序透明,代码基本不用变更(连接方式有oracle tns转变为mysql url)。


由于PMS是基础数据系统,依靠mycat全局表的特性,将PMS的数据冗余存储在所有分库中。


当遇到双11等订单量猛增的情况,单实例很难承载高并发。数据块,索引等争用反而成了最大的瓶颈。


针对此问题,我们采用“热点分散”的思路:分表。配置Mycat数据分片功能,将订单表以商家为维度分片,订单状态变更表以主键为维度分片,极大的提升订单吞吐量和操作效率。



接口平台定制化


如风达与800多个商家进行合作,其中90%以上的商家都是经过系统对接将订单数据流入到风云系统,由此我们开发了EDI系统,提供API接口平台,供商家和配送商使用。而EDI系统,基本与配送系统业务独立,只为最快方式把商家的数据流入到配送系统中来。最后总结保证EDI高效性经验:


硬件支持,网络要好,好鞍配好马,硬件网络是系统的基础


数据传输简洁性,协议尽量轻便,报文尽量短小


以批量传输代替单个传输


高并发缓存处理,业务系统处理不过来的时候先缓缓,稳住上游


错误重传机制,传输出错不能立即重传,大量重传可能会引起接口堵塞,得有个合适的重传算法


实时监控,分析发现瓶颈,以数据说话,指导问题处理


日志记录,记录每笔数据的来龙去脉,方便日后的跟踪和分析


七、预分拣系统 进行坐标确认规划线路。由于GIS应用提供商大多以Web服务的方式提供接口,对于每天上百万单订单会产生相同多的请求,依赖于网络环境,时间效率上可能就跟不上了。风云系统针对此开发出了漏斗式预分拣,根据商家要求定制化处理,逐层筛选,最终自动分配率能达到99.98%以上,大大减少了分配时间和匹配准确率,而不再完全依赖于GIS工具厂商除了省市区匹配和POI地址分单有些错别字或者繁体字还通过拼音翻译进行分单目前正在通过切词,分词方法进行下一个阶段的突破


八、飞鱼调度对于应对双十一这样的高峰快递公司的一般做法是通过各种办法储备运力,临时支援人员,社会众包人员。 那么问题来了,如何能保证在有限的时间和空间内,快速的把订单分配给这些人员快速的送到客户手里呢?


首先:要有线路规划功能,就是每个订单,在库房生产的那一刻就应该知道是哪个配送员配送。


然后通过ABC分类,对于大件,重等订单进行分类,分配给使用不同配送工具等配送员


最后配送员通过飞鱼软件,摇一摇摇出来今天要配送等订单,进行导航,打电话发短信拍照签收。


整个过程是不是很智能,傻瓜


微信号:SACC2013
长按识别二维码
关注我们



举报 | 1楼 回复

友情链接