美团外卖系统架构演进及系统稳定性经验谈_美团外卖

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
美团外卖系统 架构演进与系统稳定性经验谈
目录
• • • • •
个人简介 美团外卖业务发展历程 技术体系架构演进介绍 外卖业务稳定性的挑战 系统稳定性的处理原则
个人简介
北纬通信
移动增值服务
新美大
创新业务探索 美团外卖架构组
2006.7~2011.2
2011.3~2013.5
2013.5~
网易
网易视频库 网易应用 网易新闻
2013/11
2014/11
2015/05
2015/12
2016/05
?
目录
• • • • •
个人简介 美团外卖业务发展历程 技术体系架构演进介绍 外卖业务稳定性的挑战 系统稳定性的处理原则
技术体系架构演进介绍
业务起步:MVP阶段
美团外卖APP 验证需求 寻找产品和需求的切合点 电话点餐->网络点餐 移动后台 WEB后台 美团外卖WEB
频 道
定位
系统稳定性的处理原则
日常运行 >>全链路在线压测 线上引流压测
Nginx分组 ThriftRPC 分组 摘掉机器
Nginx WEB 第三 方服 务 Mock
全链路压测
读流量回放 写事务模拟 流量染色 异步阶梯加压 告警自动终止
流量录制
KV
MQ
DB
Thrift RPC 原始 流量 事务 模拟 染 色 异步 阶梯 加压 监控系统
业务监控
KV
log
flume 下单,各种信息,ip
业务大盘 脚印系统
MQ log flume
外卖业务稳定性的挑战
业务特点:高峰集中在中午、晚上饭点,爆发快 系统挑战:高并发,一旦发生故障损失较大
外卖业务稳定性的挑战
业务特点:服务链条长 系统挑战:依赖复杂
用户浏览 下单 支付 商家接单 骑手配送中 已送达 用户评价 结算
外卖业务稳定性的挑战
业务特点:发展快 技术挑战:开发迭代快
发版频繁
目录
• • • • •
个人简介 美团外卖业务发展历程 技术体系架构演进介绍 外卖业务稳定性的挑战 系统稳定性的处理原则
美团外卖业务发展历程
扩展中
扩展中
外卖
配送
美团外卖业务发展历程
供给侧改革 1000w
日交易额过亿 新LOGO 400w 美团专送 全国启动 在线支付 APP占90% WEB上线 业务MVP 200w 100w 300w
引入bug,稳定性风险
项目周期短
架构优化排不上期 技术欠债
监控难度大
指标覆盖全 规则变化快
目录
• • • • •
个人简介 美团外卖业务发展历程 技术体系架构演进介绍 外卖业务稳定性的挑战 系统稳定性的处理原则
系统稳定性的处理原则
99.99%
系统可用性 订单可用性
系统稳定性的处理原则
日常运行
稳定性架构设计 例行梳理和巡检
日常运行 >>例行稳定性巡检 静态梳理
按场景Review 关键链路调用放大情况梳理 降低“高并发”,假高并发场景
banner 定 位
专项梳理
DB健康Reivew,大表,慢查询 读写QPS,出轨,绿帽子 降级方案演练
API
用户
Rank
POI
指标巡检
性能大盘:不要放过尖刺 业务大盘:定心丸 报错大盘:定位好帮手
多逻辑耦合 直连DB Redis 主从 RabbitMQ 外卖大集群 DB join like
服务化SOA MTThrift Redis Cluster 订单集群 其他集群 DB 异构索 引表
服务级容灾
Cache
共用KV 延迟队列 重试队列
专用KV
MQ
高级查询
演进之路
服务化 中间件 KV 数据总线 异步化
合同
运营业务系统 审核 上单 MQ
公共服务系统 订单
商家
技术体系架构演进介绍
业务增长
校园市场全国开展 白领市场开拓 美团专送启动 平台活动增加 用户激增 订单激增
用户层 接口层 Native H5 外卖App
应用层 服务层 基础层 中间件
数据层 访问层 存储层
Nginx 灰度
离线任务
Databus Elasticsearch 分布式调度 Horae 一主多从 Atlas 降级
Crontab 一主 一从 基本功能 一主多从 LVS 分流 限流
quartz
DB
基础服务
目录
• • • • •
个人简介 美团外卖业务发展历程 技术体系架构演进介绍 外卖业务稳定性的挑战 系统稳定性的处理原则
Task
依赖稳定性原则
只依赖稳定的服务 将易变的部分拆分 超时中断
读 写
Query
Manage
保障用户体验的容错设计
异常情况下客户端的呈现 客户端配合限流 客户端配合降级
失败! 服务器异常! null 别看了,啥也没
抱歉,您选的商 家运力不足,请 选择其他商家 下单。
系统稳定性的处理原则
API
MTThrift
订单
MQ
Atlas DB
技术架构:3.0
系统级容错 服务化重构 中间件 分库分表
美团App
Open
商品
KV Databus
点评App 外卖商家
Web
商家
ES 异构 DB
...
性能监控
统一配置中心
MHA
技术体系架构演进介绍
问题
系统架构
耦合 相互影响 容错差
事故处理
及时止损 保护用户体验 99.99% 力保关键路径
全链路在线压测
事前预警
性能大盘 业务大盘 健康分析
事后总结
根本原因分析 影响损失核算 重构系统
系统稳定性的处理原则
日常运行 >>稳定性架构设计
大系统小做
服务专一性 独立的功能拆分为独立的服务
WEB MQ
API JOB
Βιβλιοθήκη Baidu
WEB
API
MessageCenter
压测目标
排查性能瓶颈,上探系统容量,验证降级机制 验证报警响应机制 & 指导设定警戒行动线
系统稳定性的处理原则
事前预警
性能大盘
CPU Idle DB读、写QPS TP90 响应时间 超时率
log API flume
Service
log
flume Kafka storm HBase
技术架构:1.0
快速开发功能 快速调整流程 快速发布上线 订单列表
dbwaimai
技术体系架构演进介绍
业务起步:规模化
寻找规模化的业务产品形态 提高运营效率
App
I版
用户业务系统
Web
PC
App
商家业务系统
打印机
dbwaimai master/slave
技术架构:2.0
快速开发多个业务系统 复用工具库Util:http 复用业务库
相关文档
最新文档