声明:本文为《程序员》原创文章,未经允许不得转载,更多精彩文章请订阅2016年程序员:http://dingyue.programmer.com.cn/
导语:汽车之家移动主App服务端架构经历了从外包的无架构概念,到流量激增后的架构调整、重构等。本文主要介绍了其主App服务端架构演进历程中面临的主要挑战、解决思路和实施过程。
随着移动互联网时代的到来,移动技术也随之飞速发展。如今,App已然成为绝大多数互联网企业用来获取用户的核心渠道。以往以PC为主要承载平台的各业务线,源源不断集成加入到移动项目中来,原本以产品为中心快速迭代的单一开发模式,已经无法应对这汹涌爆炸式的业务接入和高速增长。同时伴随着用户量的增长,流量的持续暴增,系统架构面临的一系列挑战和转型。怎么构建出高可靠、高扩展、低成本、多快好省系统体系架构已成为业界乐而不厌的长谈话题。
发展
2010年-2012年
2010年移动端刚刚兴起,公司组建了移动团队(刚开始就几个人)带领着一家外包公司做了第一版。当时业务十分简单,即把PC端的论坛文章等直接搬App端进行展示,服务端也是ALL IN ONE的结构,也没有架构的概念(如图1),虽然系统耦合严重、但流量低也不见明显的问题。
2013年-2014年
2013年公司上市,业务扩展,移动端流量开始增长,特别是2014年。
2014年末流量较年初增长了2.5倍。而原来的这种ALL-IN-ONE体系结构的弊端日益凸显,服务端经常由于高峰期的访问压力宕机。这种高耦合的结构常常由于某一个接口的超限流量导致其他接口也不能正常访问。
而随着业务的不断扩张,应用的不断迭代导致应用的体积不断增大,项目越来越臃肿,冗余增加,维护成本水涨船高……老架构力不从心。
面对日益严重的服务压力,公司开始组建自己的移动研发团队(C#+SQL Sever),服务端程序进行了第一次重构。
服务端程序进行对应用分层(接口层API、业务逻辑层Service、数据访问层DAO)、分割(根据App端的各个模块把原来的ALL-IN