支付交易限额设计

本文介绍了在双十一期间,面对产品需求增加商户维度的交易额度限制,如何利用Redis和Lua脚本来实现这一功能。分析了限额的多种维度,并讨论了为何选择Redis存储临时数据,特别是选择了Redis的Hash数据结构结合Lua脚本来保证原子性操作,从而实现高效、低延迟的交易限额系统。
摘要由CSDN通过智能技术生成

 一、背景

技术栈:Redis+Lua

双十一,一个属于电商而不是属于运营商的节日,然鹅无奈还是被安排了值班,零点过后支付系统流量上升了一波持续了半小时然后稳定运行没啥问题,本着认真负责的态度还是坚持个通宵吧,不知干点为了让自己不瞌睡,想到了平时最容易失眠的方法,想业务实现,于是想了下白天产品同学的需求:增加商户维度的交易额度限制,无聊扒了下系统已经实现的渠道维度的交易限额代码,看了下.....没看完,实在看不下去了,曲线救国,绕的圈有点大,不明觉厉吧,于是自己写了下。

二、分析实现

1.分析

限额分很多维度,有通道级单笔限额/累计限额、日累计限额/笔数、月累计限额/笔数,交易类型级...等等。限额一般是支付路由系统的一个规则条件,这些维度一般是根据对接的支付渠道限额进行调整配置自己系统限额,当然你也可以为自己平台商户做限额,产品需求也就是为自己平台商户做限额,那么我们就清楚了产品想要什么了,接下来如果做的话会就是怎么去做的问题了。

支付类系统,在运行时候对中间件和其他系统的依赖,包括和数据库的交互次数越少越好,本着这个原则,首先考虑此数据应该存哪里,又将以怎样的数据结构存储,限额仅作为支付的一个很小的逻辑,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值