大众点评支付渠道网关系统实践
李力@到店综合事业群  201605
• 支付渠道网关业务概况  
• 支付渠道网关高并发架构演进  
• 支付渠道网关高并发技术实践  
• 实践经验总结
目录
1
业务概况
➢ O2O交易流程中支付环节  
➢ O2O支付架构中资金转移角色  
➢ 架构权衡
O2O交易流程 - 支付环节
O2O用户
访问入口 PC APP M站 微信
业务产品 团购 闪惠 外卖 电影 KTV…
交易订单
收银台
交易处理
支付前台 收款
支付后台
渠道管理
支付银行前置
第三方支付网关银行网关
账务
O2O支付架构 - 连接用户资金账户
支付宝/微信等第三方支付渠道 招行/建行/微众等银行渠道
PC收银台
支付 退款 提现充值
支付产品
App收银台 M站收银台
收银台服务 支付工具管理
支付工具映射 支付工具优惠
收单服务
收单前置 支付/退款/充值/提现收单支付优惠
支付优惠服务优惠配置
优惠检索 优惠执行
                      
账务服务
积分 礼品卡 红包 抵用券 余额 第三方资金
    
渠道服务
渠道管理 渠道路由 对账服务支付服务 退款服务 查询服务 转账服务快捷服务
架构权衡
业务增长与创新
系统稳定与演进
快
稳
渠道接入敏捷  -  让用户自由选择怎么付  
渠道稳定可用  -  让用户付的爽快
2
高并发架构演进
➢ 业务挑战  
➢ 架构演进  
➢ 现阶段系统架构
业务挑战
日均交易额3~5KW  
QPS  300  ~500
日均交易额破亿  
QPS  超过  1K
日均交易额近2亿  
QPS  2~3K  
渠道接入数量3个  
涉及第三方接口10+
渠道接入数量6个  
涉及第三方接口30+
渠道接入数量10+  
涉及第三方接口80+
高并发架构演进
99% 99.9% 99.99%
可用性
0.5%
0.3%
0.1%
客诉率
渠道网关系统
application
db
第三方支付渠道
weixin,  
alipay,  
bank  etc.
能用
渠道网关系统
payment
master
第三方支付渠道
weixin,  
alipay,  
bank  etc.
refund
callback query
job
slave
W/R R
可用
渠道网关系统 第三方支付渠道
weixin,  
alipay,  
bank  
etc.
payment
db
refund
callback
query
job
quickpay
checkaccount
mq
fail-fast monitor
checkaccount
payment
refund
quickpay
api domain
gateway    interface
infrastructure(pigeon/cat/swallow/avatar/
lion  etc.)
zk hdfs
柔性可用
现阶段系统架构
Zebra
Swallow
Avatar
Lion
Cat
中间件
Hive
第
三
方
支
付
、
银
行
用户体系
依赖服务
安全
支付收单 支付账务 客服交易订单 财务 支付运营后台
接口层
服务层
框架层
支付 退款 查询
第三方  
通知
快捷 对账 Job
异步退款
退款通知
退款查询
正向支付
支付通知
支付查询同步退款 快捷签约
快捷解约
快捷查询
快捷验证对账通知
对账查询
文件下载
业务调度
业务补偿
业务监控
本地缓存
分布式  
缓存
业务配置
系统配置
业务监控
Cat监控 Log监控
自动容错
渠道接入
持久层
Mysql Memcache MQ
3
高并发技术实践
➢ 技术挑战  
➢ 技术应对
◆ 服务隔离 ◆ 自动容错
◆ 数据分布 ◆ 数据缓存
◆ 数据一致性
◆ 组件重用 ◆ 安全控制
◆ SLA保障
技术挑战
高可用 强一致
重安全易伸缩
10分钟  
损失交易额100W
每分钟  
50+的客诉
支付宝故障影响微信  
退款业务影响支付业务
支付欺诈  
高密信息泄漏
高并发
服务隔离
支
付
服
务
退
款
服
务
查
询
服
务
第
三
方
通
知
服
务
快
捷
服
务
对
账
服
务
微信
支付宝
其他
业
务
、
渠
道
合
理
拆
分
高
低
低
重要程度
自动容错 – 快速失败
Fail-Fast路径
Fail-Fast事务  
静态FailFast开关
动态Fail-Fast开关  
健康管理  
总量 失败量
异常量 超时量
健康统计
HALF_OPEN OPEN
CLOSED健康状态变迁
pass  /  rejectenter
健
康
状
态
监
听
器  
listen
自动容错 – 自动恢复
自动容错 – 收银台联动
数据分布
业
务
服
务
Master OperationSlave Slave…
Master OperationSlave Slave…
热
冷
数
据
迁
移
数据缓存
少量数据
更新频率低
渠道配置
银行配置 监控配置
本地缓存
定时刷新  +  数据变更监听刷新
大量数据
更新频率较高
风控团单黑名单
用户快捷绑卡数量
用户快捷绑卡列表
分布式缓存
1.  缓存失效  
2.  数据更新  
3.  (主动/异步)重建缓存
数据一致性
技术
✓ 关联性状态变更事务保证  
✓ 支付状态变迁强制性MASTER-RW  
✓ 核心接口失败(同步+异步)重试  
✓ 内部服务API幂等性承诺
流程
✓ 第三方渠道:通知、查询、对账三管齐下  
✓ 内部系统之间状态异步消息通知  
✓ 多周期、分时段的定时Job补偿  
✓ 分业务、分渠道的同步策略
多渠道组件重用
weixin,  alipay,  bank  etc.第三方支付渠道
Http
Https
Netty
LB Conn  Pool
Sender/Receiver
Retry
HttpReq
HttpsReq
NettyReq
HttpResp
HttpsResp
NettyResp
payment,  refund,  query  etc.
接入框架层
业务领域层
binary  
xml  
json  parser
keystore  
truststore  
loader
encrypt  
decrypt  
sign  
verify  sign
接
入
高
效
率
多层次安全控制
➢ RSA加密  
➢ MD5、SHA签名  
➢ HTTPS协议
通信安全
• 敏感信息加密传输  
• 重要接口鉴权认证
➢ 高密信息DB物理隔离  
➢ 高密表、高密字段  
➢ 敏感信息不落日志  
➢ 安全权限审计
➢ 支付画像数据上报风控  
➢ 疑套现团单实时拦截
存储安全
• 高密数据物理隔离  
• 敏感信息加密存储
风控安全
• 异常流量及时上报  
• 高危交易安全拦截
全方位SLA保障
SLA保障体系
日常运行
灰
度
分
流
Nginx
Venus
MQ DB
全
链
路
监
控
Cat
End  -  to  -  End
Zabbix
Logscan
规
范
发
布
Code  Review
Test
Pub  /  rollback
事前预案
DB  集群
Cache集群
MQ集群
应用集群
服务不可用
关闭 自动降级/恢复
收银台联动
演练
事中把控
2分钟5分钟3分钟
邮件 短信 微信
平台
应用
第三方
硬件 网络 中间件
JVM 容器 业务
内部 外部渠道
降级
流控
恢复
服务下线 渠道关闭
扩容 限流 路由
回滚 重启
决策
事后复盘
Root  Cause
故障报告
业务完善
流程完善
工具完善
总结
4
实践经验总结
➢ 大系统小做,复杂系统简单做  
➢ 单点和发布是高可用的敌人  
➢ 高可用性是一个持续构建的目标  
➢ 高可用是整个技术链路(开发+测试+
运维+DBA+产品)集体努力的结果
谢 谢 !

美团点评技术沙龙07 - 大众点评支付渠道网关系统实践