滴滴出行平台的高可用实践as_第1页
滴滴出行平台的高可用实践as_第2页
滴滴出行平台的高可用实践as_第3页
滴滴出行平台的高可用实践as_第4页
滴滴出行平台的高可用实践as_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、滴滴出行平台的高可用实践陈滴滴出行-技术陈滴滴出行 技术来自滴滴稳定性和效率团队,负责异地多活、一键降级、防火放火等工作。16年加入滴滴,之前在工作,有多年架构开发经验。 滴滴的出行业务架构 高可用方法论 异地多活 一键降级 防火放火滴滴业务简介发单等待接驾接单接驾开始行程结束行程登录、鉴权订单、司机分单计价、收银、支付 反作弊、管控、运营上车到达支付服务交互服务交互交易状态流转交易业务: 实时、多状态、长链条平台司机乘客业务架构演进草创时 2012.9滴滴打车上线红包大战 2013.8 1kw+用户2014.3 单量300万单/天专快车上线 2014.8 专车上线 2015.5 快车上线 2

2、016.3 1000万单/天乘客1亿 司机100万Uber合并2016.8 收购Uber中国2016.10 2000万单/天日订单量: 15年几百万 -> 目前2500w+(仅次于淘宝)storagestoragestorage storagestorage外包订司计收运单机价银营分单引擎2.0地图运营收银支付登录鉴权专快api出租车apiUberapi代驾apiDGWDFE核心业务apistorage分单引擎订单司机计价收银运营DFElvs司机、订单、计价MQ收银、运营storage分单系统代lvsnginx高可用的高速路上换业务调用链路流量增长迅猛业务复杂接口调用链条示例稳定性大新场

3、景多迭代快实时多状态型链路长业务增长迅速节假日效应明显 滴滴出行的业务架构 高可用方法论 异地多活 一键降级 防火放火高可用的常见措施不可用因素典型case增大MTBF缩短MTTR程序、数据和配置bug程序出core、配置格式出错研发质量、测试质量、变更分级、解耦减少变更告警、快速和网段级故障宕机、边缘交换机板卡故障、光纤抖动硬件冗余预迁移服务、切流到本机房冗余、数据主从切换多网段和机房级故障交换机故障、链路割接、机房掉电硬件冗余(包括多机房)预迁移服务,切流到其他机房流量大促、节假日和特殊天气、外部、上游重试雪崩上游容错调度防雪崩容量、防、其他同容量不足容量主流程服务容量不足限流、切流其他冗

4、余、降级、熔断弱依赖、快速扩容容量、容量依赖服务账单依赖的到达时间预估故障、分单依赖的特征服务故障递归使用前述方法提高该依赖的可用性熔断弱依赖,或递归使用前述方法提高该依赖的可用性高可用的8大抓手抓手典型做法业务平台服务研发质量容错设计、cr、单测、稳定性评审弱依赖化(主流程瘦身)、scmpf流程平台rpc框架、服务组件数据流治理、研发流程测试质量线下环境建设、测试流程环境解决方案、测试框架支持、dump变更管理按或流量分级发布、多维度质量检测灰度发布、检查和流程部署系统、分级发布系统服务发现、配置中心告警/进程/业务及大盘、多级系统、告警系统metrics、trace故障预案和止损的预案预案

5、建设异地多活、一键预案/降级中间件支持切流、限流、熔断、降级容量全链路压测、子链路压测、哨兵压测改造支持各压测压测平台中间件支持压测放火盲测弱依赖验证、预案有效性和完备性验证请求级放火、放火放火盲测平台中间件支持放火值班巡检例行值班表、节假日值班例行值班、集中应急处理值班平台高可用的5级演进目标43210手工5x年x+1年未来43210智能化工具化43210召回占比演进自动化平台化 滴滴出行的业务架构 高可用方法论 异地多活 一键降级 防火放火异地多活一个脚本引发的“血案”?哪些服务多活?同城还是异地?201508/19/155520wtajnigimiz3jqgk.jpg如何实现多活?流量路

6、由流量标记分层路由单元化数据同步中间件同步业务双写降级预案单活降级 数据故障兜底多活架构流量路由数据同步收银支付Native AppWebApp用户层Native AppWebApp用户层流量路由流量如何划分? 流量标识如何传递?路由如何决策? 单活如何访问多活?跨城、漫游如何处理?为什么分层切换?流量路由单元内访问、不要跨机房收银支付Native AppWebApp用户层Native AppWebApp用户层数据同步一致性挑战:成功率、延迟、有序、不重业务层的挑战: 不同系统有不同的数据特性司机系统:短时问题可容忍,但数据修复麻烦订单系统:强一致性要求,但修复相对简单 分单系统:短时问题可容

7、忍坐标流:获取最近的数据,部分丢失无影响数据同步数据层消息队列列式特征缓存数据库数据层消息队列列式特征缓存数据库业务层分单系统司机系统订单系统登录鉴权地图坐标系统业务核心api业务层收银支付分单系统司机系统订单系统登录鉴权地图坐标系统业务核心api数据同步系统数据特征分析一致性系统特性同步方案司机系统静态变化小数据库、缓存无需考虑1、短时问题可1、数据库主从同步,写主读从2、缓存通过proxy互写同步2、db出问题修复麻烦是否忙碌、是否出车、座位数关键因子数据库、缓存、列式特征中偏高策略数据(服务分、围栏、新政)非关键因子列式特征中偏低订单系统起始位置等信息静态变化小数据库、缓存无需考虑相对修

8、复简单1、乘客直接结束订单再次发单2、通过接口强制1、数据库主从同步,成交主流程写主读主2、缓存:有序不重 双集群校验 binlog反冲,最终一致订单状态6-7个(状态机)状态错误,无法继续数据库、缓存高分单系统司机和乘客特征短时可接受列式特征中偏低特征出问题,可从数据库回捞: 1、手工,听单检测 àà 收车出车2、服务端旁路检测司机状态在业务proxy层实现主从同步(类数据库)坐标流司机乘客坐标信息内存低获取最近产生的数据,可数据丢失实现容易,在业务proxy层互写mq消息队列低异步数据,一致性要求不高互同步降级预案无状态业务数据故障有损降级DB主从延迟故障 滴滴出行的业

9、务架构 高可用方法论 异地多活 一键降级 防火放火What?同步转异步尽可能保住服务Why?üü要有降级预案üü快速生效止损üü预案管理üü降低接入成本pp业务出问题不可避免pp需要上线,止损慢pp预案有、容易失效pp业务大,精力有限How?高效接入快速止损有效演练üü场景预案,一键快速生效 L1: 业务无损: 号码保护、不、导流、切流 L2: 部分效果受损: 动调,计价(路面距离降级为直线距离) L3:支付效果有损: 收银熔断、乘客未支付可以发单 L4:主流程效果受损: 发单限流、内部丢单&#

10、252;ü移动+pc双端 随时触达üü生效率、灰度发布、平台、互斥管理 安全生效üü切流、限流、熔断、普通降级配置语义+中间件action实现üü评分系统驱动接入和演练Detail切流实现举例:路由成环问题?路由表流量标识输入路由规则目的机房平台动态配置降级中间件通路实时配送限流实现令牌桶:支持突发漏桶:强限固定的速度caller、callee、method限流配置是否限流平台动态配置通路实时配送熔断实现熔断标记熔断配置是否熔断平台端动态配置通路实时配送 滴滴出行的业务架构 高可用套路 异地多活 一键降级 防火放火防火灭火放

11、火的重要项目降低不可用发生概率:缩短止损时间:验证灭火是否有效完备:线下灰度发布异地多活一键降级-故障注入压测-防火灭火放火防火-灰度发布人群灰度?X 开关维护成本高机器灰度?X 指标不聚焦不敏感So 人群灰度+机器灰度100%40%10%城市灰度预发idc-preidc1-g2idc1-g1idc-smallidc2idc1-g2上线过程放火-压测哨兵系统小规模损失风险换取及时-物理流量大于正常集群动态调控全链路压测司乘行为-透传压测标识压测数据单链路压测注重子系统压测压测数据构造上游请求Mock下游结果-放火-故障注入控制中心实现目标预案完备性检查强弱依赖验证提升异常分支覆盖率commandREQ LEVELSYS LEVEL协议层故障类型层次线下环境线上测试账号线上单个城市故障类型LATENCY ERRCODEHIGH USAGEPACK LOSS SLOW NET CONN REFUSETHRIFT HTTPINTERFACE CITY PERCENTFLOW TAGCPU MEM NETI/OIPTABLES NGINX MODULE RPC MIDDLEWARE高可用落地组织结构支撑公正的第组织(星辰花):复盘、-定级追责、Trace 进展专项FT:虚线汇报、项目经理协助推动-狠抓细节- QA验证-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论