您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > 滴滴打车架构演变及应用实践
滴滴打⻋车架构演变及应⽤用实践杨振麟 MagicYang⾃自我介绍•2010-‐2012 百度 ⾼高级⼯工程师 •2012-‐Now 滴滴打⻋车 技术总监内容提要•聊什么 •滴滴架构演变历程 •3⽉月流量洪峰应对 •当前架构介绍 •未来规划 •不聊什么 •具体业务数据 :0 •业务相关性较⾼高的技术细节 :)滴滴架构进化过程2012.112013.4远古时代⽯石器时代⻘青铜时代2013.82013.12铁器时代⼯工业时代进化时间AppEngine单机LNMPLNMP集群2013.2LNMP集群进化服务化⽂文明终结?Now远古时代•时期:2012.7-‐2012.11 •架构:公有云、裸PHP •流量: 10W •团队:2研发,0运维远古时代•优点 •零运维成本维护⼀一个线上LNMP环境 •APNS消息推送、短信、⽇日志等服务 •代码托管、发布 •免费⼆二级域名 •缺点: •MySQL存储引擎类型限制 •Web服务不稳定(各种502、504...) •DNS服务故障远古时代乘客APP司机APPAPIMISDB公有云浏览器⽯石器时代•时期:2012.12-‐2013.4 •流量: 100W •架构:租⽤用IDC+单机LNMP •团队:3研发,0运维⽯石器时代•问题: •公有云环境不稳定且不可控 •⺫⽬目标: •消除了环境⿊黑盒,让环境更可控 •改进: •⾃自购主机 •⾃自选IDC •搭建维护LNMP环境⽯石器时代乘客APP司机APPnginxMISDBAPI浏览器IDC⽯石器时代•问题: •IDC⺴⽹网络故障 •IDC服务响应不及时 •⺫⽬目标: •解决⺴⽹网络环境可⽤用性 •改进: •双机房,⼀一主⼀一备 •通过第三⽅方配置服务切换 •App通过域名访问改为IP直连⽯石器时代App第三⽅方配置服务实时获取IPIP直连IDC1IDC2⻘青铜时代•时期:2013.5-‐2013.8 •流量: 3000万 •架构:LNMP集群 •团队:5研发,1运维⻘青铜时代•问题: •随业务发展,流量逐步到达单机极限 •⺫⽬目标: •⽀支撑千万级流量 •改进: •引⼊入负载均衡 •具备基本扩容和容错能⼒力 •减轻MySQL压⼒力(缓存、前后台DB分离)⻘青铜时代LVSnginxphp-‐fpmmemcachedAPInginxphp-‐fpmmemcachedAPInginxphp-‐fpmmemcachedMISMySQL(Master)MySQL(Slave)NFSNFSNFS铁器时代•时期:2013.9-‐2014.2 •流量:3000万〜~2亿 •架构:LNMP集群优化 •团队:12研发,2运维铁器时代•问题: •轮询效率低 •数据库查询负载⾼高 •系统监控及报警平台缺失 •改进: •司机订单轮询改为⻓长连接推送 •数据库读写分离 •引⼊入MongoDB解决空间检索问题 •基于nagios的监控系统系统架构LVSWebWebMySQL(Master)MySQL(Slave)MySQL(Slave)DBProxyWeb订单分配系统Push Server司机App乘客AppMongoDB监控•基础监控 •CPU、Mem、I/O、⺴⽹网卡带宽、进程存活 •Ngnix •流量、HTTP Status(502、504、500…) •Fast-‐CGI(php-‐fpm) •活跃进程数、error log、slow log… •MySQL •连接数、主从延迟、slow log… •Memcached •连接数、QPS •MongoDB •连接数、QPS⽂文明终结?•微信⽀支付上线了 •^_^ •补贴活动开始, 业务量上涨 •^_^ •业务量持续上涨 •^_^ •系统开始不稳定了 •@_@ T_T流量变化pv(亿)0481216时间2/12/102/192/283/93/183/27应对⼀一:优化•API逻辑优化 •LVS性能瓶颈 •单核限制:CPU Affinity •单点极限:LVS集群+DNS轮询 •内⺴⽹网带宽极限 •Memcached:数据压缩 •分单系统调度导致DB压⼒力过⼤大:削峰应对⼆二:柔性•系统分析 •看清业务与系统开销的对应关系 •服务停⽤用(⼆二级服务) •信息展⽰示、配置… •服务降级(⼀一级服务) •附近⻋车辆静态化 •司机坐标上报降频 •策略简化 •…应对三:扩容•数据库硬件升级 •⽔水平扩展 •Push服务集群化改造 •开发LBS服务替代MongoDB⼯工业时代•时期:2014.3-‐Now •流量:5亿 •架构:服务化 •团队:50+研发,7运维业务架构web流量⼊入⼝口乘客App司机App出租⻋车⻋车台企业版API服务⽀支付服务认证服务短信服务数据中⼼心运营后台POI服务LBS服务坐标服务推送服务反作弊服务分单服务抢单服务客服后台⼲⼴广告后台报表中⼼心⽤用户服务后台地理围栏服务系统架构TCP接⼊入层MySQL集群KV集群乘客App司机AppWeb集群司机任务调度分配策略引擎Redis优先级队列抢单策略引擎VIPNginx集群Push ServerLBS ServerVIPNginx集群特征存储DBProxy集群未来技术规划•架构:分城市部署 •体验:SPDY协议 •效率:DevOps •成本:HHVM、内部私有云WeNeedYou•我们正在寻找技术上追求卓越的架构师,⼀一起改变世界 •您将能参与到—— •复杂的业务场景 •出租⻋车、⾼高端⻋车等产品 •移动⽀支付平台 •基础架构服务 •⾼高速的业务增⻓长 •千万级⽤用户 •百万级交易 •亿级流量ContactMe!!•微信:yzl1573 •邮箱:yangzhenlin@diditaxi.com.cnQ&A
本文标题:滴滴打车架构演变及应用实践
链接地址:https://www.777doc.com/doc-5005514 .html