突破微信支付系统–单秒600QPS这个上限
介绍需求
- 在秒杀环境下,可能出现一瞬间高达几千次的支付请求,但是微信官网明确规定,最高QPS只有600,那么要如何
突破这个600QPS的界限呢?
解决方案
1. 多商户策略, 采用负载均衡,即创建多个收款的商户,把支付收款的账号扩充到好几个即可
2. 注意多个商户进行负载均衡,一定要把商户和支付的用户对应起来,因为如果用户发起退款,一定要哪个商户收的钱
就用哪个商户号去退款
3. 举例:
(1). 有5个商户号, 每次支付根据订单上用户编号进行取模 然后和5取余来确定使用哪个商户
(2). 有了多个账号,那么面临高并发支付就可以分摊压力。而取模是为了让【支付】【退款】是从同一个商户那进行的
(3). 根据API控制好频率+监控
4. 实际上秒杀类业务,真正的高并发是发生在【锁定库存】 以及 【生成订单】上。 而真正的支付的并发量并不会高的离谱
IP地区定位高并发解决方案
解决方案1. 和支付一样,可以采用多个账号
举例: 比如申请5个高德账号,获取5个key,进行负载均衡,原本默认单用户1000的QPS,现在就可以达到5000QPS了
解决方案2. 或者接入多个平台,比如高德平台,百度地图平台,腾讯等。反正他们的最终效果都是一致的,这样就可以
实现负载均衡作用,并且还能增加每日次数限制。选择该方案,做好地理位置统一编码信息即可,不能不同平台
产生不同的编码,这样就乱了