View
478
Download
11
Embed Size (px)
Citation preview
大众点评支付渠道网关系统实践李力@到店综合事业群 � 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+产品)集体努力的结果
谢 谢 !