CN113938489A - 一种处理高并发充值请求的方法 - Google Patents
一种处理高并发充值请求的方法 Download PDFInfo
- Publication number
- CN113938489A CN113938489A CN202111308276.2A CN202111308276A CN113938489A CN 113938489 A CN113938489 A CN 113938489A CN 202111308276 A CN202111308276 A CN 202111308276A CN 113938489 A CN113938489 A CN 113938489A
- Authority
- CN
- China
- Prior art keywords
- recharging
- user
- php script
- payment
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种处理高并发充值请求的方法,涉及计算机技术领域,包括以下的步骤:S1、使用nginx服务器接收用户的充值请求;S2、使用nginx内部的负载均衡技术分别将用户充值请求拆分成多份,并发送给相应数量的redis服务器;S3、redis服务器接收到用户充值请求,存入到各自的redis列表;S4、使用php脚本连接redis服务器,调用充值接口,完成充值操作,实现了同一时间能支持处理千万条用户充值请求,给用户很好的使用体验;并且服务器的CPU使用状况良好,服务器运行正常,没有运行压力,维护方便;并且可根据用户的选择需求,灵活发送充值成功的短信通知给用户。
Description
技术领域
本发明涉及计算机技术领域,具体的,本发明涉及一种处理高并发充值请求的方法。
背景技术
随着互联网技术的发展,对互联网产品服务器的性能要求越来越高。当服务器接收到大量并发请求时,可能会严重超出服务器的负荷能力,请求得不到及时的处理,会导致大量的并发请求堆积,将大量占用服务器资源,严重时可能会使服务器内存溢出,导致服务器报错、崩溃。
现有的移动转售系统同一时间无法支持千万个用户的充值请求,当用户量达到千万时会出现充值失败的情况,或报错用户不存在;还会出现点击充值按钮,影响用户体验。并且有些用户充值后需要短信通知,而有些用户不需要,现有的移动转售系统无法灵活满足用户的短信发送需求。
发明内容
为了克服现有技术的不足,本发明提供了一种处理高并发充值请求的方法,以解决上述的技术问题。
本发明解决其技术问题所采用的技术方法是:一种处理高并发充值请求的方法,其改进之处在于:包括以下的步骤:S1、使用nginx服务器接收用户的充值请求;S2、使用nginx内部的负载均衡技术分别将用户充值请求拆分成多份,并发送给相应数量的redis服务器;S3、redis服务器接收到用户充值请求,存入到各自的redis列表;S4、使用php脚本连接redis服务器,调用充值接口,完成充值操作。
在上述方法中,所述步骤S4,包括以下的步骤:
S41、使用定时任务crontab每分钟运行一次php脚本,php脚本连接所述redis服务器,获取所述redis列表中的充值消息;
S42、使用foreach循环所有的充值消息;
S43、使用php脚本调用充值接口,完成充值操作,打印日志。
在上述方法中,所述步骤S43,包括以下的步骤:
S431、使用php脚本获取用户的手机号码、充值金额和支付方式;
S432、使用php脚本判断所述手机号码是否为空,如果是为空,则报错;如果不为空,则跳转至步骤S433;
S433、使用php脚本判断充值金额是否为空,如果是为空,则报错;如果不为空,则跳转至步骤S434;
S434、使用php脚本判断支付方式是否为空,如果是为空,则报错;如果不为空,则跳转至步骤S435;
S435、使用php脚本判断支付方式是微信支付还是支付宝支付,如果是微信支付,则调用第三方微信支付接口支付充值金额,并跳转至步骤S436;如果是支付宝支付,则调用第三方支付宝接口支付充值金额,并跳转至步骤S436;
S436、使用php脚本连接mysql数据库,操作用户余额表,根据充值金额给用户余额表增钱;
S437、操作用户充值记录表,添加用户充值记录;
S438、充值完成,打印日志。
在上述方法中,所述步骤S4之后,还包括步骤:S5、调用灵活发送短信函数,给用户发送充值成功短信。
在上述方法中,所述步骤S5,包括以下的步骤:
S51、使用php脚本获取用户传入的手机号码,判断用户传入的手机号码是否存在,若不存在,则报错;若存在,则跳转至步骤S52;
S52、使用php脚本获取用户传入的充值金额,判断用户传入的充值金额是否存在,若不存在,则报错;若存在,则跳转至步骤S53;
S53、使用php脚本连接mysql数据库,获取用户配置表user_conf的数据;
S54、判断IsRechargeSendSMS字段的值,当该字段的值为空时,则报错;当该字段的值为1,程序终止;当该字段的值为2时,则跳转至步骤S55;
S55、使用php脚本调用短信接口,并传入手机号码和充值金额,给用户发送充值成功。
本发明的有益效果是:通过将高并发的用户充值请求进行拆分,并发送给相应数量的redis服务器处理,实现了同一时间能支持处理千万条用户充值请求,给用户很好的使用体验;并且服务器的CPU使用状况良好,服务器运行正常,没有运行压力,维护方便;并且可根据用户的选择需求,灵活发送充值成功的短信通知给用户。
附图说明
附图1为本发明的一种处理高并发充值请求的方法的流程图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整地描述,以充分地理解本发明的目的、特征和效果。显然,所描述的实施例只是本发明的一部分实施例,而不是全部实施例,基于本发明的实施例,本领域的技术人员在不付出创造性劳动的前提下所获得的其他实施例,均属于本发明保护的范围。另外,专利中涉及到的所有联接/连接关系,并非单指构件直接相接,而是指可根据具体实施情况,通过添加或减少联接辅件,来组成更优的联接结构。本发明创造中的各个技术特征,在不互相矛盾冲突的前提下可以交互组合。
在充值请求高并发时,虽然用户量达到千万,但是同一时间内充值的用户最高只有20万左右,针对20万左右的并发充值请求,参照图1,本发明的一种处理高并发充值请求的方法,包括以下的步骤:
S1、使用nginx服务器接收20万用户的充值请求。
S2、使用nginx内部的负载均衡技术分别将20万用户的充值请求拆分成5份4万的用户充值请求,并发送给相应数量的5台redis服务器。
S3、5台redis服务器接收到5份4万的用户充值请求,存入到各自的redis列表。
S4、使用php脚本连接5台redis服务器,调用充值接口,完成充值操作;
具体的,所述步骤S4,包括以下步骤:
S41、使用定时任务crontab每分钟运行一次php脚本,php脚本连接所述5台redis服务器,获取所述redis列表中的充值消息,crontab指的是定时任务软件;
S42、使用foreach循环所有的充值消息,foreach是一种遍历数组;
S43、使用php脚本调用充值接口,完成充值操作,打印日志;
具体的,所述步骤S43,包括以下的步骤:
S431、使用php脚本获取用户的手机号码、充值金额和支付方式;
S432、使用php脚本判断所述手机号码是否为空,如果是为空,则报错"手机号码不存在",程序终止;如果不为空,则跳转至步骤S433;
S433、使用php脚本判断充值金额是否为空,如果是为空,则报错"充值金额不存在",程序终止;如果不为空,则跳转至步骤S434;
S434、使用php脚本判断支付方式是否为空,如果是为空,则报错"支付方式不存在",程序终止;如果不为空,则跳转至步骤S435;
S435、使用php脚本判断支付方式是微信支付还是支付宝支付,如果是微信支付,则调用第三方微信支付接口支付充值金额,并跳转至步骤S436;如果是支付宝支付,则调用第三方支付宝接口支付充值金额,并跳转至步骤S436;
S436、使用php脚本连接mysql数据库,操作用户余额表,根据充值金额给用户余额表增钱;
S437、使用php脚本连接mysql数据库,操作用户充值记录表,添加用户充值记录;
S438、充值完成,打印日志。
S5、调用灵活发送短信函数,给用户发送充值成功短信;
具体的,所述步骤S5,包括以下的步骤:
S51、使用php脚本获取用户传入的手机号码,判断用户传入的手机号码是否存在,若不存在,则报错“用户传入的手机号码不存在”,程序终止;若存在,则跳转至步骤S52;
S52、使用php脚本获取用户传入的充值金额,判断用户传入的充值金额是否存在,若不存在,则报错“充值金额不存在”,程序终止;若存在,则跳转至步骤S53;
S53、使用php脚本连接mysql数据库,获取用户配置表user_conf的数据;
S54、判断IsRechargeSendSMS字段的值,当该字段的值为空时,则报错,程序终止;当该字段的值为1,程序终止;当该字段的值为2时,则跳转至步骤S55;
IsRechargeSendSMS字段的值由用户在前端选择设置,该字段的值决定了是否执行发送短信的操作,该字段的值有三个,分别是:空表示未设置,1表示不需要发送短信,2需要发送短信;
S55、使用php脚本调用短信接口,并传入手机号码和充值金额,给用户发送充值成功。
本发明通过将高并发的用户充值请求进行拆分,并发送给相应数量的redis服务器处理,实现了同一时间能支持处理千万条用户充值请求,给用户很好的使用体验;并且服务器的CPU使用状况良好,服务器运行正常,没有运行压力,维护方便;并且可根据用户的选择需求,灵活发送充值成功的短信通知给用户。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (5)
1.一种处理高并发充值请求的方法,其特征在于:包括以下的步骤:
S1、使用nginx服务器接收用户的充值请求;
S2、使用nginx内部的负载均衡技术分别将用户充值请求拆分成多份,并发送给相应数量的redis服务器;
S3、redis服务器接收到用户充值请求,存入到各自的redis列表;
S4、使用php脚本连接redis服务器,调用充值接口,完成充值操作。
2.如权利要求1所述的一种处理高并发充值请求的方法,其特征在于:所述步骤S4,包括以下的步骤:
S41、使用定时任务crontab每分钟运行一次php脚本,php脚本连接所述redis服务器,获取所述redis列表中的充值消息;
S42、使用foreach循环所有的充值消息;
S43、使用php脚本调用充值接口,完成充值操作,打印日志。
3.如权利要求2所述的一种处理高并发充值请求的方法,其特征在于:所述步骤S43,包括以下的步骤:
S431、使用php脚本获取用户的手机号码、充值金额和支付方式;
S432、使用php脚本判断所述手机号码是否为空,如果是为空,则报错;如果不为空,则跳转至步骤S433;
S433、使用php脚本判断充值金额是否为空,如果是为空,则报错;如果不为空,则跳转至步骤S434;
S434、使用php脚本判断支付方式是否为空,如果是为空,则报错;如果不为空,则跳转至步骤S435;
S435、使用php脚本判断支付方式是微信支付还是支付宝支付,如果是微信支付,则调用第三方微信支付接口支付充值金额,并跳转至步骤S436;如果是支付宝支付,则调用第三方支付宝接口支付充值金额,并跳转至步骤S436;
S436、使用php脚本连接mysql数据库,操作用户余额表,根据充值金额给用户余额表增钱;
S437、操作用户充值记录表,添加用户充值记录;
S438、充值完成,打印日志。
4.如权利要求1所述的一种处理高并发充值请求的方法,其特征在于:所述步骤S4之后,还包括步骤:S5、调用灵活发送短信函数,给用户发送充值成功短信。
5.如权利要求4所述的一种处理高并发充值请求的方法,其特征在于:所述步骤S5,包括以下的步骤:
S51、使用php脚本获取用户传入的手机号码,判断用户传入的手机号码是否存在,若不存在,则报错;若存在,则跳转至步骤S52;
S52、使用php脚本获取用户传入的充值金额,判断用户传入的充值金额是否存在,若不存在,则报错;若存在,则跳转至步骤S53;
S53、使用php脚本连接mysql数据库,获取用户配置表user_conf的数据;
S54、判断IsRechargeSendSMS字段的值,当该字段的值为空时,则报错;当该字段的值为1,程序终止;当该字段的值为2时,则跳转至步骤S55;
S55、使用php脚本调用短信接口,并传入手机号码和充值金额,给用户发送充值成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308276.2A CN113938489A (zh) | 2021-11-05 | 2021-11-05 | 一种处理高并发充值请求的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111308276.2A CN113938489A (zh) | 2021-11-05 | 2021-11-05 | 一种处理高并发充值请求的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113938489A true CN113938489A (zh) | 2022-01-14 |
Family
ID=79286059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111308276.2A Pending CN113938489A (zh) | 2021-11-05 | 2021-11-05 | 一种处理高并发充值请求的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113938489A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567636A (zh) * | 2022-01-20 | 2022-05-31 | 银盛通信有限公司 | 一种基于移动转售系统百万级并发续期的方法 |
CN114598703A (zh) * | 2022-01-26 | 2022-06-07 | 银盛通信有限公司 | 一种基于移动转售系统百万级并发订购流量包的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202505A (zh) * | 2016-07-20 | 2016-12-07 | 北京京东尚科信息技术有限公司 | 数据处理方法及其系统 |
CN107734004A (zh) * | 2017-09-26 | 2018-02-23 | 河海大学 | 一种基于Nginx、Redis的高并发负载均衡系统 |
CN108470054A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种数据访问方法及系统 |
CN111221509A (zh) * | 2019-12-27 | 2020-06-02 | 江苏苏州农村商业银行股份有限公司 | 一种基于SpringCloud架构体系的可定制化线上缴费服务开发平台 |
CN112738252A (zh) * | 2020-12-30 | 2021-04-30 | 昆山巨星行动电子商务有限公司 | 一种电商高并发秒杀系统 |
-
2021
- 2021-11-05 CN CN202111308276.2A patent/CN113938489A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202505A (zh) * | 2016-07-20 | 2016-12-07 | 北京京东尚科信息技术有限公司 | 数据处理方法及其系统 |
CN107734004A (zh) * | 2017-09-26 | 2018-02-23 | 河海大学 | 一种基于Nginx、Redis的高并发负载均衡系统 |
CN108470054A (zh) * | 2018-03-14 | 2018-08-31 | 北京思特奇信息技术股份有限公司 | 一种数据访问方法及系统 |
CN111221509A (zh) * | 2019-12-27 | 2020-06-02 | 江苏苏州农村商业银行股份有限公司 | 一种基于SpringCloud架构体系的可定制化线上缴费服务开发平台 |
CN112738252A (zh) * | 2020-12-30 | 2021-04-30 | 昆山巨星行动电子商务有限公司 | 一种电商高并发秒杀系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114567636A (zh) * | 2022-01-20 | 2022-05-31 | 银盛通信有限公司 | 一种基于移动转售系统百万级并发续期的方法 |
CN114598703A (zh) * | 2022-01-26 | 2022-06-07 | 银盛通信有限公司 | 一种基于移动转售系统百万级并发订购流量包的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113938489A (zh) | 一种处理高并发充值请求的方法 | |
CN109104336B (zh) | 服务请求处理方法、装置、计算机设备及存储介质 | |
US8028085B2 (en) | Optimizing message transmission and delivery in a publisher-subscriber model | |
CN108563567B (zh) | 自动化测试方法、装置、设备及计算机可读存储介质 | |
CN110888893A (zh) | 一种基于微服务电商系统的订单处理方法 | |
CN111245900A (zh) | 一种分布式消息发送的处理系统及其处理方法 | |
CN114205761A (zh) | 一种基于多个短信通道的短信分发方法和设备 | |
US20030158883A1 (en) | Message processing | |
CN108243014B (zh) | 一种语音催缴处理方法及装置 | |
CN112346794A (zh) | 接口调用方法、装置、设备及介质 | |
CN111680914B (zh) | 事件分配方法、事件分配装置、存储介质、电子设备 | |
CN110737548B (zh) | 数据请求方法和服务器 | |
CN108763052A (zh) | 一种虚拟现实软件内存回收机制的性能检测方法及系统 | |
US20230283655A1 (en) | Data download method and apparatus, electronic device, and readable storage medium | |
CN111966508A (zh) | 一种消息的批量发送方法、装置、计算机设备和存储介质 | |
CN111145033A (zh) | 服务项目的领取权限处理方法及装置、存储介质 | |
CN114895879B (zh) | 管理系统设计方案确定方法、装置、设备及存储介质 | |
CN116302652A (zh) | 系统报警信息的处理方法、装置及电子设备 | |
CN114039981B (zh) | 一种消息处理方法、装置、服务器及存储介质 | |
CN108874325B (zh) | 数据打印方法及系统 | |
CN114186161A (zh) | 页面展示信息的配置方法、装置、设备及可读存储介质 | |
CN114647701A (zh) | 分布式数据库的负载均衡方法、装置、电子设备及介质 | |
CN111049938A (zh) | 消息通知方法、装置、电子设备及可读存储介质 | |
US7010781B1 (en) | Methods and apparatus for managing debugging I/O | |
CN110896413A (zh) | 一种报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |