技术架构
1.网上常见的支付系统架构体系图
2.支付宝
3.京东
简化流程图
技术栈
controller/service/dao
1.struts2/springMVC //控制器层
有多个web,有的是struts2(早期),有的是springMVC(后期)。
2.spring //业务层
基于配置文件或注解。
3.ibatis //持久层
基于sql。
三大中间件
1.memcache nosql数据库-基于内存的缓存。
适用于:1.常用数据 2.小数据
例如:短信验证码,tokenID/order等
2.metaQ
消息发送
3.mongoDB
nosql数据库-基于磁盘的缓存
适用于:1.不常用的数据 2.大数据
例如:操作日志等
分布式服务
分布式服务框架
1.zookeeper //服务注册中心
2.阿里dubbo //服务治理和服务发现
服务
1.支付系统核心服务 //几十个
按业务流拆分,按业务拆分
2.基础框架 //1 20个
common框架 //启动服务,memcache缓存,metaQ消息,mongoDB,http请求,加密等
3.后台系统 //几十个
1)总后台 //10来个
2)商家 //10来个
3)代理商 //10来个
4)钱包后台和钱包app //1 20个
4.风控系统 //20个以上
5.model //10来个
订单
提现转账
账户
用户 //系统库
风控
钱包
等等
后台系统
1.总后台
2.商家
3.代理商
4.钱包
移动端
1.商家
2.代理商
3.钱包app
类似支付宝。//核心功能:方便提现和转账。
绑定银行卡
四要素:姓名、身份证号、手机号、银行卡号。
业务场景之入金(支付/订单)和出金(提现和转账)
入金(账户加钱)
支付方式
1.扫码 //二维码
2.H5 //支付宝/微信/浏览器
3.快捷支付 //签约/解约
流程图
3条主线
出金(账户减钱)
1.提现 2.转账
流程图
流程差不多,最大的区别是,一个加钱,一个减钱。
清结算(主要是结算)
1.清算
生成订单数据的时候,订单金额和手续费都已经计算好了。
2.结算 //给账户金额加钱
流程图
订单结算表和支付流水表
结算服务和账户服务之间的关系
数据库oracle
1.按业务划分
订单库
提现/转账库
账户库
系统用户库
等等
2.大表
1)按new/history划分数据到2个库
2)表分区
partition by range (date)
自动化运维jenkins
1.开发和测试
开发提交代码——》git——》jenkins打包——》测试拿包测试。
2.发布 //运维部门,运维系统
测试整包——》推送发布包——》运维正式上线。
线上生产环境部署
1.nginx集群 //静态内容和负载均衡/转发请求
2.tomcat集群
3.服务集群
4.cdn加速 //静态资源
5.中间件集群
总结
1.支付核心交易流程
2.后台运营和监控
3.对账 //单笔订单对账/多笔批量对账
4.风控 //业务比较复杂,各种风控场景、规则
5.通道路由 //实现智能化路由通道:1.负载均衡 2.监控通道质量、是否可用等
网上资料
http://doc.cocolian.cn/
https://tech.meituan.com/tag/%E6%94%AF%E4%BB%98