美团配送技术专家 付雅文:美团配送移动网关建设实战

宛宏朗

2017/11/14 发布于 技术 分类

美团配送拥有海量的配送骑手,他们依赖配送APP完成配送工作,每天奔波于大街小巷保证每位消费者能够及时吃到热腾腾的饭菜。本次分享将从前后端系统整体链路的角度阐述美团配送API网关如何保证端到端可用性,与大家探讨高并发、弱网环境、复杂业务流程下的可用性建设挑战与解决方法。

文字内容
1. 美团配送S移A动CC网20关1美7团建配送设技术实专家战付雅文
2. 关于美团外卖配送 用户 海量配送骑手 移动、弱网 机器“领导”人工作 配送平台 SACC2017外卖平台 商家 1600w单/天 每天2次秒杀
3. 关于美团配送 配送移动网关是骑手APP与配送后台交互的入口 骑手 骑手APP 外卖 App 用户下单 外卖 商家 待抢列表、抢单列表、送达列表 结算、打款模块 运营模块 调度中心 结算中心 主数据中心 2 运单交互 3 结算交互 SACC2017派 接 取 送 预结算 结算 打款 骑手数据 订单数据 结算数据 主数据 人员 组织 岗位 区域 基础模块 API网关 5 业务运营 数据中心 仓库 数据应用 流式计算 业务系统 考核 营销 培训 任务 反馈 管理岗 运营岗 1 运力规划、商家入驻 人员、组织、商家管理 配送管理后台 数据中心、监控中心 4 报表、监控 业务管理
4. 关于美团配送API SACC2017 美团配送骑手API架构图
5. 美团配送移动网关建设思路 承上启下 • 承上 • 业务:APP的后端 17• 系统:端到端可用性 C20• 用户不关心你的服务SLA是几个9,只关心自己能不能用,好不好用 SAC• 启下 • 业务:后端服务的“应用层” • 系统:后端服务的保护伞
6. 目录 Contents 1 端到端可用性 S2ACC2保0护1后7端服务 3 配送移动网关总结
7. 1SACC端20到1端7 可用性
8. 端到端可用性 挑战 1、弱网环境下如何保证 端到端到达率 SACC20172、如何快速诊断是 个例问题 还是 普遍问题
9. 弱网环境下如何保证 端到端到达率 通道 SAC监C控2017 切换
10. 弱网环境下如何保证 端到端到达率 通道 长连接 Http短连接 短信通道 • 全国范围内多机房接入点部署 • tcp做为内部传输协议,业务上无代码修改 SACC2017• 引入HttpDNS策略应对运营商劫持问题 • 骑手交互无明显感知 • 最大限度保证配送履约流程正常运转
11. 弱网环境下如何保证 端到端到达率 通道 – 短信通道 SACC2017
12. 弱网环境下如何保证 端到端到达率 网络监控&诊断:大盘 SACC2017 维度 • 地域 • 运营商 • AppOS
13. 弱网环境下如何保证 端到端到达率 网络监控&诊断:APP监控 SACC2017 维度 • 地域 • 运营商 • AppOS • APP版本
14. 弱网环境下如何保证 端到端到达率 网络监控&诊断:APP测速 SACC2017 维度 • 地域 • 运营商 • AppOS • APP版本
15. 弱网环境下如何保证 端到端到达率 网络监控&诊断:APP自诊断 • 各连接点的连通性检查 SACC2017• DNS检查 • Ping检查 ……
16. 弱网环境下如何保证 端到端到达率 切换 – 网入口切换 SACC2017联通 联 通 移动 入口 联通 入口 电信 美 团 内 网 入口 7*24h运维
17. 弱网环境下如何保证 端到端到达率 切换 – 长短链接切换 目标:配送网关下发的配置能够 100%准实时可达到APP中 实时性 SACC20流1量7 可达性
18. 弱网环境下如何保证 端到端到达率 APP控制中心实现服务端管控客户端 准实时 通知 心跳机制 防止 17并发 CC20到达且 SA只到达 3min可达 配置版本 一次 多维度 key 不同骑手获 取不同配置
19. 弱网环境下如何保证 端到端到达率 切换 – 短信通道切换 SACC2017
20. 如何快速诊断是 个例问题 还是 普遍问题 解决思路: 1、APP质量评估体系 • 系统指标:crash率、流量、电量、Push到达率 17• 业务指标:接口成功率 SACC202、用户粒度全流程诊断体系 • APP日志查看工具 • APP请求复现工具 • 调用链诊断工具(APP本地日志 与 后台链路日志 关联)
21. 如何快速诊断是 个例问题 还是 普遍问题 APP质量评估体系 SACC2017 维度 • APP版本 • APPOS • 城市
22. 如何快速诊断是 个例问题 还是 普遍问题 业务监控大盘 SACC2017 维度 • APP版本 • APPOS • 城市 层次 • 关键核心code • 核心链路 • 全量接口
23. 如何快速诊断是 个例问题 还是 普遍问题 业务报警大盘 SACC2017 • 接口自动化添加 • 阈值支持经验值,同比环比和固定值
24. 如何快速诊断是 个例问题 还是 普遍问题 APP日志查看工具 SACC2017
25. 如何快速诊断是 个例问题 还是 普遍问题 骑手请求复现工具 SACC2017
26. 如何快速诊断是 个例问题 还是 普遍问题 Mtrace(前后端Log打通诊断) SACC2017
27. 2SACC保20护1后7端服务
28. 后端服务的保护伞 后端服务可用性挑战 1、后端某些功能不可用或者功能错误,如何处理? SACC20172、后端服务DB慢sql导致整体接口性能下降,如何处理?
29. 后端服务的保护伞 思考维度 功能 –> 降级:服务分级 –> 柔性可用 全服务可用 流量 –> 流控 SACC2017核心链路与非核心链路梳理 核心链路 核心链路 最核心的链路真的不能降级吗? 的核心功 能 ––– 把系统中留存单子送出去 1. 客户端缓存展示订单 系统 2. 消息提醒送餐 兜底 3. API记录问题订单 核心链路的非核心模块 核心链路的非核心依赖
30. 后端服务的保护伞 流控 • 特点:多级流控 • 维度:百分比、时间频率(配额) 新新单单 SACC2017API网关 列列表表 订单 详情 服 服服 服 服 务 务务 12 务 …… 务 3n API 网关 S1 S2 S1 S3
31. 后端服务的保护伞 流控 SACC2017
32. 3SACC配2送01移7动网关总结
33. 配送移动网关总结 承上启下 启承下上::降链级路稳S, 流A定控C,C监2控0报1警7,问题定位
34. 我的微信 SACC2017
35. SACC2017