美团外卖后端技术架构实践
fangjianping@美团外卖 2016.5
• 一、美团外卖概览
• 二、美团外卖后端架构的演进与设计原则
• 三、美团外卖性能&稳定性核心实践
目录
一、美团外卖概览
C




M
R
B



MT 
美团外卖概览
ü  O2O 

•  
•  Slogan
2013/11
 2014/11
 2015/12
 2016/05
l  
300
2015/05
 ?
1000
200
100
400
l  
l  logo
l  PC 
l  MVP
l  
l  90%+ 
美团外卖重要里程碑
二、外卖后端架构的演进与设计原则
美团外卖业务流程下的技术应用体系概览
C
RANK
app


















/ /BI
/ 


APP
 PC


 
M
R
B

GIS 

 



/
• 驱动因素
ü  满足基本业务诉求
ü  快速提供线上服务
ü  验证业务模型
• 系统特征
ü  系统结构简单,易部署&维护
ü  服务相互之间耦合较多
美团外卖后端系统体系架构的演进V1.0






Web 
 
 API
DB/Cache

 
waimaiService.jar 
PC
 native/H5 
/
APP/PC

 
C
 M
B
• 驱动因素
ü  业务发展迅速,订单数据膨胀
ü  业务复杂度上升,支持在线支付
ü  上层重复开发较多
• 重构核心
ü  垂直拆分部分关键核心服务
ü  构建订单交易专用DB
ü  抽取搜索基本服务
美团外卖后端系统体系架构的演进V2.0
PC
 native/H5 
/APP/
PC/ 

 
C
 M
B








 
 

 
/Cache 



Web 
 
 API
• 驱动因素
ü  业务品类扩展,渠道增加
ü  系统数据驱动因素提升
ü  用户规模与单量上升
• 重构核心
ü  拆分日志数据、营销服务与线上
业务系统
ü  整合移动后台服务
ü  拆分门店、商品、UGC等业务
ü  抽取通用基础服务
美团外卖后端系统体系架构的演进V3.0
UI 















APP
 APP
 H5
 PC WEB
 

(api.waimai.meituan)
APP/H5 
 LOG 
PC-WEB 
(waimai.meituan)

open.waimai.meituan 

Rank& 
 
UGC 

 
 

 
 
 
 UGC 
 
接⼊层TAIR集群
 Rank TAIR 
 TAIR集群
 TAIR 

Cache/ 
DB 
APP








 
A/B 
APP 
…
-  
-  , 
-  
-  

-  MIS 
-  
ü  …
-  
ü  & 
ü  / 
-  
ü  业务上功能&非功能服务
ü  数据上历史数据&实时数据
-  
-  
-  
-  
-  
-  
-  
-  服务抽象,低耦合
ü  & 
-  
ü  ,SLA
外卖系统架构演进的关键思想总结-架构设计原则
三、美团外卖性能&稳定性核心实践
•  系统压力高峰期区分明显
•  交易的链路长实时性要求高
•  交易转化率高
•  用户停留时间短
外卖业务的系统特点
QPS
• 接入层重点
ü  控制所有接入服务接口最大超时时间500ms~300ms
ü  各服务接口接入提供是否具备降级能力和降级策略
ü  设置聚合数据缓存,减少底层服务调用
ü  采用异步服务调度框架,实现部分并行服务调度
外卖线上系统性能核心关注点
API
N
1
 …
C
• 服务/数据层重点
ü  缓存
ü  提前计算,构建文件索引
ü  数据分库,分表 cache
 
 / 
cache
• 问题
ü  外卖启动列表页QPS高,聚合服务多
(Lbs->Rank->POI->活动->配送->…)
• 策略
ü  首页门店列表的缓存à基于用户维度的列表
(时效3分钟)
ü  门店VO的缓存
接入层缓存典型场景之一:首页列表信息缓存
tair 
C
API 
RANK
 
 

MQ

MySQL Master
DB 



 ……
MySQL Slave

Databus






&
• 需求
ü  首页频道(特定门店属性聚合)的门
店筛选
ü  门店商品的信息组合展示(销量、库
存、静态配送费、评分、配送时长等)
• 策略
ü  构建聚合服务提前汇聚数据集合
ü  实时变更部分采用消息监听同步
服务层计算数据聚合典型场景之一:门店商品聚合服务

ETL 


& DB

MQ
DB MAS
TER
DB SLAVE


Databus 
API
C
&
• 业务特点
ü  数据库读写高
ü  单库,单表数据量大
ü  服务使用场景差异
• 分片策略
ü  实时交易系统与基本查询服务分离
ü  订单基本库&订单详情库&流程状态
库分离
ü  按照门店、用户、ID三维度分基本信
息库
ü  各维度按照ID散100个表
每维度25个表一个库
ü  历史库归档
服务&数据分片典型场景之一 :订单中心
























Tair 
(17M)
 Lucene 
Databus

(45S)

MQ













 Tair/Hive
外卖线上服务部署&服务治理
DNS
ISP(A)
 ISP(B)
MGW
 MGW
 MGW
 MGW
Nignx 1
HTTP Service 01
Thrift Service 1
 Thrift Service …
DS.1
Nignx…
HTTP Service..
HTTP Service ..
Nignx N
Thrift Service N
DS.N
DS…
外卖系统稳定性工作设计总结
ü 
QPS 
ü  
ü  SLA
ü  ----

ü  ---

ü  
ü  
ü  
日常运行 事前预管 线上故障处理 事后Review
全
链
路
灰
度
分
流
Nigi
nx
LVS
MQ
DB
DX
YF
OCTO
CQ
核
心
流
程
监
控
HLB
LOG
OCTO
压测
运维工具
Tair双机
房
MQ双机房
DB双机房
演练
支付不可
用
排序不可
用
活动不可
用
商家接单
不可用
限流
QPS配额
扩容
Casestudy
调权
ERROR
用户行为 系统能力
降级、扩容
分流
损失核算
完善业务
降级SOP
Review
完善工具
• 
外卖体系系统调度实时关系图


+
谢谢!
waimai.job@meituan.com want you

美团点评技术沙龙07 - 外卖后端端技术架构