CN110288347A - 访问控制装置和方法 - Google Patents
访问控制装置和方法 Download PDFInfo
- Publication number
- CN110288347A CN110288347A CN201910455670.5A CN201910455670A CN110288347A CN 110288347 A CN110288347 A CN 110288347A CN 201910455670 A CN201910455670 A CN 201910455670A CN 110288347 A CN110288347 A CN 110288347A
- Authority
- CN
- China
- Prior art keywords
- amount
- residual amount
- trade company
- last
- request
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/403—Solvency checks
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Medical Informatics (AREA)
- Finance (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供一种访问控制装置和方法。所述装置包括:状态缓存模块、业务提醒模块和流量控制模块,状态缓存模块存储各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;查询商户下未同步请求、最后获取余额时间、最后剩余金额以及产品包最大金额;计算第一预算金额,根据第一预算金额和最后剩余金额直接获取所要请求的数据;或者将数据请求发送到计费***;业务提醒模块计算第一预算金额和最后剩余金额的比值,根据所述比值以及最后剩余金额向商户返回提醒信息;流量控制模块根据所述第比值以及最后剩余金额进行流量控制。本发明实施例能够加快商户访问时间,提升***吞吐量,降低平台的风险。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种访问控制装置和方法。
背景技术
随着大数据业务的不断发展,数据公共服务平台向平台商户提供越来越多的数据产品服务。与传统的应用服务相比,数据服务有很多特性,例如会按照一段时间内成功调用次数设置不同的阶梯价格。因此数据公共服务平台的计费***和访问控制策略与传统的实时计费***完全不同。
针对数据服务的特性,现有技术提出了如下两种实时计费方式:
一、预付费计费方式。通过预设的模型预测用户未来的业务使用量,判断用户账户余额是否充足,如果充足,则预先扣除预测账户金额。但是该方案对于用户的每个请求,都需要通过其历史使用情况预测相应扣减费用,判断该用户账户是否足额,对于类似通讯服务这种使用频率不高的还可以接受,但是对于像数据服务(每秒钟调用多次)的使用场景明显不适用,计算太频繁,影响***整体吞吐量。
二、引入代理商的角色。业务服务器向计费***发送用户的计费请求,如果用户的计费请求超过了用户的余额,则从其所属的代理商的账户上进行扣减,加到该用户的账户上,保证该用户的访问。该方案的不足是需要商户有代理商的支持,才能当用户预存费用不足的时候从代理商的账户进行扣减。
发明内容
针对现有技术问题,本发明实施例提供一种访问控制装置和方法。
本发明实施例提供一种访问控制装置,应用于数据公共服务平台,包括:接收模块,用于接收商户的数据请求,所述装置包括:状态缓存模块、业务提醒模块和流量控制模块,其中:
所述状态缓存模块存储有各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
所述接收模块,还用于将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
所述状态缓存模块,用于接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
还用于根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据;或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;还用于将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
所述业务提醒模块,用于接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;还用于将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
所述流量控制模块,用于接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
本发明实施例提供一种访问控制方法,应用于数据公共服务平台,包括:接收商户的数据请求;所述方法还包括:
状态缓存模块存储各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
接收模块将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
状态缓存模块接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
状态缓存模块根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据,或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;状态缓存模块将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
业务提醒模块接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
流量控制模块接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
本发明实施例还提供一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述访问控制方法。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述访问控制方法。
本发明实施例提供的访问控制装置和方法,通过在状态缓存模块存储各商户的数据请求和余额状态,对于每个商户的请求,都预先从缓存中判断本次预算金额和预存费用关系,判断是否同步请求计费***,以及设置不同的提示和访问控制,能够加快商户访问时间,提升***吞吐量,有效降低用户欠费的风险性,降低平台的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的访问控制装置的结构示意图;
图2为本发明实施例访问控制方法的流程示意图;
图3为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明实施例提供的一种访问控制装置的结构示意图。
本发明实施例提供的访问控制装置应用于数据公共服务平台,包括:接收模块,用于接收商户的数据请求,如图1所示,所述装置还包括:状态缓存模块11、业务提醒模块12和流量控制模块13,其中:
所述状态缓存模块11存储有各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
具体地,针对商户请求的每笔请求,都需要根据底层表数据计算该笔请求费用,并在数据表中执行扣费操作,在请求很频繁的情况下,会对核心计费***造成巨大压力;而数据访问的特性就是TPS(Transactions Per Second,事务数/秒)请求非常高,但是每笔的费用相对较低。
因此,本发明实施例通过设置一个状态缓存模块,缓存商户的数据请求,数据请求携带发起请求的商户的编号MerchantId、请求时间以及所请求的产品的编号ProductId。对于每个商户,都预先从缓存中判断本次请求超过预存费用的可能性,如果可能性比较低,则先不同步请求计费***;如果可能性比较高,才同步请求到计费***。
进一步地,状态缓存模块中设置一个缓存存储***(现实可以用Redis,Memcache等缓存),以key-value形式存储每个商户的访问信息Map,主键Key为商户编号MerchantId,值Value为该商户的未同步请求信息(还未被计费***同步的请求信息,例如请求信息如果表示为请求时间_产品编号,值Value可以为13:04:08:187_ProductId,13:04:08:326_ProductId),最后获取剩余金额时间LastTime,最后剩余金额LeftMoney,产品包最大金额MaxMoney等。
所述接收模块,还用于将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
具体地,商户向数据公共服务平台发出数据请求,访问控制装置接收数据请求,请求中包括商户编号(MerchantId)产品编号(ProductId)等内容,接收模块将请求信息发送给状态缓存模块。
所述状态缓存模块11,用于接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
具体地,收到请求后,首先在状态缓存管理模块查看当前是否有MerchantId的信息,如果有,表示该商户历史有过访问记录;如果没有,则会请求计费***获取该商户的历史剩余金额,同时更新获取剩余金额时间,最后剩余金额字段。
还用于根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据;或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;还用于将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
具体地,从Map中取出该MerchantId对应的Value,计算还未被计费***同步的请求个数+1(本次商户请求)得到未同步总请求数Num,在乘以产品包最大金额MaxMoney,得到TotalMoney,判断TotalMoney和LeftMoney的差距,如果TotalMoney小于LeftMoney*预设的第一阈值(例如50%)并且LeftMoney大于预设的第二阈值(例如100元),那么表示本次请求超额的可能性非常低,则可以让商户直接获取数据,不用再经过计费***,并将本次的访问信息更新到Value中,计入本次的访问信息,如13:04:08:187_ProductId;如果不满足前设条件,则会访问计费***,传递本次请求的MerchantId和ProductId,计算实时的最新余额,并同步更新到缓存管理模块的缓存Map。
取得数据后则会访问业务提醒模块,并同步本次商户访问的实际情况TotalMoney、LeftMoney。
所述业务提醒模块12,用于接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;还用于将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
具体地,根据状态缓存模块保存的余额的多少,在返回给商户的请求中添加相关信息;同时在余额不足的时候,向商户进行短信、微信提醒、电话提醒,确保商户能及时续费。
所述流量控制模块13,用于接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
具体地,当商户余额不足的时,根据商户剩余的金额对商户访问接口的频率进行控制,保证商户可以持续访问,增加商户接口服务时间,让商户可以有机会进行充值操作;特别的,如果商户目前访问情况与平时有巨大差异,则会提前采取相应措施,以防平台受到损失。
本发明实施例提供的访问控制装置,通过在状态缓存模块存储各商户的数据请求和余额状态,对于每个商户的请求,都预先从缓存中判断本次预算金额和预存费用关系,判断是否同步请求计费***,以及设置不同的提示和访问控制,能够加快商户访问时间,提升***吞吐量,有效降低用户欠费的风险性,降低平台的风险。
在上述实施例的基础上,所述状态缓存模块包括:
计算单元,用于计算未同步请求总数,所述未同步请求总数等于未同步到计费***的请求个数加1,然后计算所述未同步请求总数和获取的产品包最大金额的乘积,得到第一预算金额;
获取单元,用于当所述第一预算金额与所述最后剩余金额的差值小于第一预设阈值,且所述最后剩余金额大于第二预设阈值时,直接获取所要请求的数据;
发送单元,用于当所述第一预算金额与所述最后剩余金额的差值不小于第一预设阈值,或者所述最后剩余金额不大于第二预设阈值时,将所述数据请求发送到计费***,以使所述计费***实时计算最新余额。
具体地,从Map中取出该MerchantId对应的Value,计算还未被计费***同步的请求个数+1(本次商户请求)得到未同步总请求数Num,在乘以产品包最大金额MaxMoney,得到TotalMoney,判断TotalMoney和LeftMoney的差距,如果TotalMoney小于LeftMoney*预设的第一阈值(例如50%)并且LeftMoney大于预设的第二阈值(例如100元),那么表示本次请求超额的可能性非常低,则可以让商户直接获取数据,不用再经过计费***。并将本次的访问信息更新到Value中,计入本次的访问信息,如13:04:08:187_ProductId;如果不满足前设条件,则会访问计费***,传递本次请求的MerchantId和ProductId,计算实时的最新余额,并同步更新到缓存管理模块的缓存Map。
取得数据后则会访问业务提醒模块,并同步本次商户访问的实际情况TotalMoney、LeftMoney。
在上述实施例的基础上,所述状态缓存模块还包括:
第一更新单元,用于在获取所要请求的数据之后,记入本次访问信息,所述访问信息包括请求时间和产品编号;
第二更新单元,用于在将所述数据请求发送到计费***之后,根据所述计费***实时计算的最新余额更新最后获取余额时间和所述最后剩余金额。
具体地,如果未同步到商户***,让商户直接获取数据之后,并将本次的访问信息更新到Value中,计入本次的访问信息,如13:04:08:187_ProductId;如果同步请求到计费***,访问计费***,传递本次请求的MerchantId和ProductId,计算实时的最新余额,并同步更新到缓存管理模块的缓存Map。
在上述实施例的基础上,所述业务提醒模块包括:
第一提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第一预设条件时,向商户返回标识为正常的提醒信息;
第二提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第二预设条件时,向商户返回标识为提示的提醒信息;
第三提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第三预设条件时,向商户返回标识为预警的提醒信息;
第四提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第四预设条件时,向商户返回标识为警告的提醒信息,并通过微信、短信或电话的方式通知商户。
具体地,业务提醒模块得到TotalMoney、LeftMoney后,根据比例Rate=TotalMoney/LeftMoney以及LeftMoney的不同数值,依据不同的阈值采取不同的业务提醒措施,主要如下:
Rate<第三阈值且LeftMoney>第四阈值,则给商户的返回码标识为Normal(正常);
第五阈值<Rate<第六阈值or第七阈值<LeftMoney<第八阈值,则给商户的返回码表示为Notice(提示),可以采用微信或者短信的方式对商户进行通知;
第九阈值<Rate<第十阈值or第十一阈值<LeftMoney<第十二阈值,则给商户的返回码表示为Attention(预警),可以采用微信和短信的方式对商户进行通知;
Rate>第十三阈值or LeftMoney<第十四阈值,则给商户的返回码表示为Warning(警告),除了采用微信和短信的方式,还需要通过电话方式联系商户进行通知;
接下来会继续访问流量控制模块,同时传递Rate和LeftMoney的数值。
在上述实施例的基础上,所述流量控制模块包括:
第一控制单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第五预设条件时,允许商户任意访问;
第二控制单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第六预设条件时,对商户的访问TPS进行受限;当商户访问次数超过第三阈值时,向商户返回标识为警告的返回码;当商户访问次数超过第四阈值时,标识所述商户非正常访问,提前只允许所述商户最低限度的TPS访问,并向商户返回标识为最低访问频率限制的返回码;
第三控制单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第七预设条件时,只允许商户最低限度TPS的访问,向商户返回标识码为最低访问频率限制的返回码;当商户访问次数超过第五阈值时,标识所述商户非正常访问,提前停止商户访问权限,并返回标识为服务停止的返回码。
具体地,流量控制模块获得Rate和LeftMoney后,根据不同的阈值对访问接口的频率进行控制,执行不同的流量控制策略;
Rate<第十五阈值且LeftMoney>第十六阈值,允许商户任意访问;
第十七阈值<Rate<第十八阈值or第十九阈值<LeftMoney<第二十阈值,对现有商户的访问TPS进行受限,当商户访问次数超过第二十一阈值的时候,返回访问Warning(警告)的返回码;特别的,如果当前商户访问TPS超过第二十二阈值,则标识该商户非正常访问,则提前只允许该商户最低限度的TPS访问,并返回Restrict(最低访问频率限制)的返回码;
Rate>第二十三阈值or LeftMoney<第二十四阈值,只允许商户最低限度TPS的访问,返回Restrict(最低访问频率限制)的返回码;特别的,如果当前商户访问TPS超过第二十五阈值,则标识该商户非正常访问,则提前停止商户访问权限,并返回访问Forbidden(服务停止)的返回码。
图2示出了本发明实施例提供的一种访问控制方法的流程示意图。
本发明实施例提供的访问控制方法应用于数据公共服务平台,包括:接收商户的数据请求;如图1所示,还包括以下步骤:
S11、接收模块将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
所述状态缓存模块存储各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
具体地,本发明实施例通过设置一个状态缓存模块,对于每个商户,都预先从缓存中判断超过预存费用的可能性,如果可能性比较低,则先不同步请求计费***;如果可能性比较高,才同步请求到计费***。状态缓存模块中设置一个缓存存储(现实可以用Redis,Memcache等缓存),里面存储每个商户的访问信息Map,主键Key为商户编号MerchantId,值Value为该商户的未同步请求信息(还未被计费***同步的请求信息,例如13:04:08:187_ProductId,13:04:08:326_ProductId),最后获取剩余金额时间LastTime,最后剩余金额LeftMoney,产品包最大金额MaxMoney。
商户向数据公共服务平台发出数据请求,访问控制装置接收数据请求,请求中包括商户编号(MerchantId)产品编号(ProductId)等内容,接收模块将请求信息发送给状态缓存模块。
S12、状态缓存模块接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
具体地,收到请求后,首先在状态缓存管理模块查看当前是否有MerchantId的信息,如果有,表示该商户历史有过访问记录;如果没有,则会请求计费***获取该商户的历史剩余金额,同时更新获取剩余金额时间,最后剩余金额字段。
S13、状态缓存模块根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据,或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;状态缓存模块将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
具体地,从Map中取出该MerchantId对应的Value,计算还未被计费***同步的请求个数+1(本次商户请求)得到未同步总请求数Num,在乘以产品包最大金额MaxMoney,得到TotalMoney,判断TotalMoney和LeftMoney的差距,如果TotalMoney小于LeftMoney*预设的第一阈值(例如50%)并且LeftMoney大于预设的第二阈值(例如100元),那么表示本次请求超额的可能性非常低,则可以让商户直接获取数据,不用再经过计费***,并将本次的访问信息更新到Value中,计入本次的访问信息,如13:04:08:187_ProductId;如果不满足前设条件,则会访问计费***,传递本次请求的MerchantId和ProductId,计算实时的最新余额,并同步更新到缓存管理模块的缓存Map。
取得数据后则会访问业务提醒模块,并同步本次商户访问的实际情况TotalMoney、LeftMoney。
S14、业务提醒模块接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
具体地,根据状态缓存模块保存的余额的多少,在返回给商户的请求中添加相关信息;同时在余额不足的时候,向商户进行短信、微信提醒、电话提醒,确保商户能及时续费。
S15、流量控制模块接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
具体地,当商户余额不足的时,根据商户剩余的金额对商户访问接口的频率进行控制,保证商户可以持续访问,增加商户接口服务时间,让商户可以有机会进行充值操作;特别的,如果商户目前访问情况与平时有巨大差异,则会提前采取相应措施,以防平台受到损失。
本发明实施例提供的访问控制方法,通过在状态缓存模块存储各商户的数据请求和余额状态,对于每个商户的请求,都预先从缓存中判断本次预算金额和预存费用关系,判断是否同步请求计费***,以及设置不同的提示和访问控制,能够加快商户访问时间,提升***吞吐量,有效降低用户欠费的风险性,降低平台的风险。
在上述实施例的基础上,S13具体包括以下步骤:
计算未同步请求总数,所述未同步请求总数等于未同步到计费***的请求信息个数加1,然后计算所述未同步请求总数和获取的产品包最大金额的乘积,得到第一预算金额;
当所述第一预算金额与所述最后剩余金额的差值小于第一预设阈值,且所述最后剩余金额大于第二预设阈值时,直接获取所要请求的数据;
当所述第一预算金额与所述最后剩余金额的差值不小于第一预设阈值,或者所述最后剩余金额不大于第二预设阈值时,将所述数据请求发送到计费***,以使所述计费***实时计算最新余额。
具体地,从Map中取出该MerchantId对应的Value,计算还未被计费***同步的请求个数+1(本次商户请求)得到未同步总请求数Num,在乘以产品包最大金额MaxMoney,得到TotalMoney,判断TotalMoney和LeftMoney的差距,如果TotalMoney小于LeftMoney*预设的第一阈值(例如50%)并且LeftMoney大于预设的第二阈值(例如100元),那么表示本次请求超额的可能性非常低,则可以让商户直接获取数据,不用再经过计费***。并将本次的访问信息更新到Value中,计入本次的访问信息,如13:04:08:187_ProductId;如果不满足前设条件,则会访问计费***,传递本次请求的MerchantId和ProductId,计算实时的最新余额,并同步更新到缓存管理模块的缓存Map。
取得数据后则会访问业务提醒模块,并同步本次商户访问的实际情况TotalMoney、LeftMoney。
在上述实施例的基础上,所述方法还包括:
在获取所要请求的数据之后,记入本次访问信息,所述访问信息包括请求时间和产品编号;
在将所述数据请求发送到计费***之后,根据所述计费***实时计算的最新余额更新状态缓存模块中的最后获取余额时间和最后剩余金额。
具体地,如果未同步到商户***,让商户直接获取数据之后,并将本次的访问信息更新到Value中,计入本次的访问信息,如13:04:08:187_ProductId;如果同步请求到计费***,访问计费***,传递本次请求的MerchantId和ProductId,计算实时的最新余额,并同步更新到缓存管理模块的缓存Map。
在上述实施例的基础上,所述方法还包括:
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第一预设条件时,向商户返回标识为正常的提醒信息;
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第二预设条件时,向商户返回标识为提示的提醒信息;
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第三预设条件时,向商户返回标识为预警的提醒信息;
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第四预设条件时,向商户返回标识为警告的提醒信息。
具体地,业务提醒模块得到TotalMoney、LeftMoney后,根据比例Rate=TotalMoney/LeftMoney以及LeftMoney的不同数值,依据不同的阈值采取不同的业务提醒措施,主要如下:
Rate<第三阈值且LeftMoney>第四阈值,则给商户的返回码标识为Normal(正常);
第五阈值<Rate<第六阈值or第七阈值<LeftMoney<第八阈值,则给商户的返回码表示为Notice(提示),可以采用微信或者短信的方式对商户进行通知;
第九阈值<Rate<第十阈值or第十一阈值<LeftMoney<第十二阈值,则给商户的返回码表示为Attention(预警),可以采用微信和短信的方式对商户进行通知;
Rate>第十三阈值or LeftMoney<第十四阈值,则给商户的返回码表示为Warning(警告),除了采用微信和短信的方式,还需要通过电话方式联系商户进行通知;
接下来会继续访问流量控制模块,同时传递Rate和LeftMoney的数值。
在上述实施例的基础上,所述方法还包括:
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第五预设条件时,允许商户任意访问;
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第六预设条件时,对商户的访问TPS进行受限;当商户访问次数超过第三阈值时,向商户返回标识为警告的返回码;当商户访问次数超过第四阈值时,标识所述商户非正常访问,提前只允许所述商户最低限度的TPS访问,并向商户返回标识为最低访问频率限制的返回码;
当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第七预设条件时,只允许商户最低限度TPS的访问,向商户返回标识码为最低访问频率限制的返回码;当商户访问次数超过第五阈值时,标识所述商户非正常访问,提前停止商户访问权限,并返回标识为服务停止的返回码。
具体地,流量控制模块获得Rate和LeftMoney后,根据不同的阈值对访问接口的频率进行控制,执行不同的流量控制策略;
Rate<第十五阈值且LeftMoney>第十六阈值,允许商户任意访问;
第十七阈值<Rate<第十八阈值or第十九阈值<LeftMoney<第二十阈值,对现有商户的访问TPS进行受限,当商户访问次数超过第二十一阈值的时候,返回访问Warning(警告)的返回码;特别的,如果当前商户访问TPS超过第二十二阈值,则标识该商户非正常访问,则提前只允许该商户最低限度的TPS访问,并返回Restrict(最低访问频率限制)的返回码;
Rate>第二十三阈值or LeftMoney<第二十四阈值,只允许商户最低限度TPS的访问,返回Restrict(最低访问频率限制)的返回码;特别的,如果当前商户访问TPS超过第二十五阈值,则标识该商户非正常访问,则提前停止商户访问权限,并返回访问Forbidden(服务停止)的返回码。
图3示例了一种服务器的实体结构示意图,如图3所示,该服务器可以包括:处理器(processor)21、通信接口(Communications Interface)22、存储器(memory)23和通信总线24,其中,处理器21,通信接口22,存储器23通过通信总线24完成相互间的通信。处理器21可以调用存储器23中的逻辑指令,以执行如下方法:
接收模块将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
所述状态缓存模块存储各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
状态缓存模块接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
状态缓存模块根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据,或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;状态缓存模块将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
业务提醒模块接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
流量控制模块接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
此外,上述的存储器23中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
接收模块将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
所述状态缓存模块存储各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
状态缓存模块接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
状态缓存模块根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据,或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;状态缓存模块将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
业务提醒模块接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
流量控制模块接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种访问控制装置,应用于数据公共服务平台,包括:接收模块,用于接收商户的数据请求,其特征在于,所述装置还包括:状态缓存模块、业务提醒模块和流量控制模块,其中:
所述状态缓存模块存储有各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
所述接收模块,还用于将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
所述状态缓存模块,用于接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
还用于根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据;或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;还用于将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
所述业务提醒模块,用于接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;还用于将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
所述流量控制模块,用于接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
2.根据权利要求1所述的访问控制装置,其特征在于,所述状态缓存模块包括:
计算单元,用于计算未同步请求总数,所述未同步请求总数等于未同步到计费***的请求个数加1,然后计算所述未同步请求总数和获取的产品包最大金额的乘积,得到第一预算金额;
获取单元,用于当所述第一预算金额与所述最后剩余金额的差值小于第一预设阈值,且所述最后剩余金额大于第二预设阈值时,直接获取所要请求的数据;
发送单元,用于当所述第一预算金额与所述最后剩余金额的差值不小于第一预设阈值,或者所述最后剩余金额不大于第二预设阈值时,将所述数据请求发送到计费***,以使所述计费***实时计算最新余额。
3.根据权利要求1所述的访问控制装置,其特征在于,所述状态缓存模块还包括:
第一更新单元,用于在获取所要请求的数据之后,记入本次访问信息,所述访问信息包括请求时间和产品编号;
第二更新单元,用于在将所述数据请求发送到计费***之后,根据所述计费***实时计算的最新余额更新最后获取余额时间和所述最后剩余金额。
4.根据权利要求1所述的访问控制装置,其特征在于,所述业务提醒模块包括:
第一提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第一预设条件时,向商户返回标识为正常的提醒信息;
第二提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第二预设条件时,向商户返回标识为提示的提醒信息;
第三提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第三预设条件时,向商户返回标识为预警的提醒信息;
第四提醒单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第四预设条件时,向商户返回标识为警告的提醒信息。
5.根据权利要求1所述的访问控制装置,其特征在于,所述流量控制模块包括:
第一控制单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第五预设条件时,允许商户任意访问;
第二控制单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第六预设条件时,对商户的访问TPS进行受限;当商户访问次数超过第三阈值时,向商户返回标识为警告的返回码;当商户访问次数超过第四阈值时,标识所述商户非正常访问,提前只允许所述商户最低限度的TPS访问,并向商户返回标识为最低访问频率限制的返回码;
第三控制单元,用于当所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额达到第七预设条件时,只允许商户最低限度TPS的访问,向商户返回标识码为最低访问频率限制的返回码;当商户访问次数超过第五阈值时,标识所述商户非正常访问,提前停止商户访问权限,并返回标识为服务停止的返回码。
6.一种访问控制方法,应用于数据公共服务平台,包括:接收商户的数据请求;其特征在于,所述方法还包括:
状态缓存模块存储各商户未同步到计费***的请求信息、最后获取余额时间、最后剩余金额以及各产品包最大金额;
接收模块将所述数据请求发送至状态缓存模块,所述数据请求包括商户编号、请求时间和产品编号;
状态缓存模块接收所述数据请求,并根据所述数据请求中的商户编号查询当前商户下的未同步到计费***的请求信息、最后获取余额时间和最后剩余金额;根据所述数据请求中的产品编号获取产品包最大金额;
状态缓存模块根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据,或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额;状态缓存模块将所述第一预算金额和最后剩余金额发送到所述业务提醒模块;
业务提醒模块接收所述状态缓存模块发送的第一预算金额和最后剩余金额,计算所述第一预算金额和最后剩余金额的比值,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额向商户返回提醒信息;将所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额发送给所述流量控制模块;
流量控制模块接收所述业务提醒模块发送的第一预算金额和最后剩余金额的比值以及所述最后剩余金额,根据所述第一预算金额和最后剩余金额的比值以及所述最后剩余金额进行流量控制。
7.根据权利要求6所述的访问控制方法,其特征在于,所述根据未同步到计费***的请求信息和获取的产品包最大金额计算第一预算金额,根据所述第一预算金额和最后剩余金额直接获取所要请求的数据,或者将所述数据请求发送到计费***,以使所述计费***实时计算最新余额包括:
计算未同步请求总数,所述未同步请求总数等于未同步到计费***的请求信息个数加1,然后计算所述未同步请求总数和获取的产品包最大金额的乘积,得到第一预算金额;
当所述第一预算金额与所述最后剩余金额的差值小于第一预设阈值,且所述最后剩余金额大于第二预设阈值时,直接获取所要请求的数据;
当所述第一预算金额与所述最后剩余金额的差值不小于第一预设阈值,或者所述最后剩余金额不大于第二预设阈值时,将所述数据请求发送到计费***,以使所述计费***实时计算最新余额。
8.根据权利要求6所述的访问控制方法,其特征在于,所述方法还包括:
在获取所要请求的数据之后,记入本次访问信息,所述访问信息包括请求时间和产品编号;
在将所述数据请求发送到计费***之后,根据所述计费***实时计算的最新余额更新状态缓存模块中的最后获取余额时间和最后剩余金额。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求6至8任一项所述访问控制方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求6至8任一项所述访问控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910455670.5A CN110288347B (zh) | 2019-05-29 | 2019-05-29 | 访问控制装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910455670.5A CN110288347B (zh) | 2019-05-29 | 2019-05-29 | 访问控制装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110288347A true CN110288347A (zh) | 2019-09-27 |
CN110288347B CN110288347B (zh) | 2021-12-14 |
Family
ID=68002809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910455670.5A Active CN110288347B (zh) | 2019-05-29 | 2019-05-29 | 访问控制装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110288347B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062771A (zh) * | 2019-11-13 | 2020-04-24 | 农眼区块链科技(广州)有限公司 | 一种设备流量在线的续费方法与*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335642A (zh) * | 2008-07-10 | 2008-12-31 | ***通信集团山西有限公司 | 一种业务运营管理方法 |
JP4385225B2 (ja) * | 2004-07-21 | 2009-12-16 | 日本電気株式会社 | データ中継装置 |
CN101841421A (zh) * | 2009-03-19 | 2010-09-22 | 华为技术有限公司 | 在线计费方法、装置和*** |
CN103888926A (zh) * | 2012-12-21 | 2014-06-25 | 中兴通讯股份有限公司 | 漫游本地业务的计费策略方法及装置 |
CN104735635A (zh) * | 2014-12-22 | 2015-06-24 | 华为技术有限公司 | 一种策略控制方法和装置 |
CN107135323A (zh) * | 2017-07-04 | 2017-09-05 | 中国联合网络通信集团有限公司 | 预付费业务的处理方法及*** |
-
2019
- 2019-05-29 CN CN201910455670.5A patent/CN110288347B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4385225B2 (ja) * | 2004-07-21 | 2009-12-16 | 日本電気株式会社 | データ中継装置 |
CN101335642A (zh) * | 2008-07-10 | 2008-12-31 | ***通信集团山西有限公司 | 一种业务运营管理方法 |
CN101841421A (zh) * | 2009-03-19 | 2010-09-22 | 华为技术有限公司 | 在线计费方法、装置和*** |
CN103888926A (zh) * | 2012-12-21 | 2014-06-25 | 中兴通讯股份有限公司 | 漫游本地业务的计费策略方法及装置 |
CN104735635A (zh) * | 2014-12-22 | 2015-06-24 | 华为技术有限公司 | 一种策略控制方法和装置 |
CN107135323A (zh) * | 2017-07-04 | 2017-09-05 | 中国联合网络通信集团有限公司 | 预付费业务的处理方法及*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062771A (zh) * | 2019-11-13 | 2020-04-24 | 农眼区块链科技(广州)有限公司 | 一种设备流量在线的续费方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN110288347B (zh) | 2021-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3465981A1 (en) | Method, system and device for online charging in cloud system | |
CN102572768B (zh) | 计费方法、认证方法、计费设备和认证设备 | |
CN110381455B (zh) | 流量监控处理方法和相关装置和*** | |
US8341044B1 (en) | System, method, and computer program product for rating and re-rating events | |
CN101662773A (zh) | 支持降低通信欺诈风险的计算机实现方法和设备 | |
CN102142967A (zh) | 基于多账户的在线计费处理方法、装置和*** | |
CN103581458A (zh) | 一种套餐自动升级方法及装置 | |
CN111209060A (zh) | 能力开发平台处理方法及装置 | |
US20220286564A1 (en) | Method and Apparatus for Dynamic Realtime Sharing of Credit Units for Online Charging | |
CN110288347A (zh) | 访问控制装置和方法 | |
CN101299670A (zh) | 计费方法、计费***及计费装置 | |
CN108076443B (zh) | 一种在线计费***中流量的分配方法及在线计费*** | |
CN108259196A (zh) | 一种配额管理方法及装置 | |
CN110717745B (zh) | 一种业务处理的方法以及服务器 | |
CN112184278A (zh) | 能力商品计费方法、能力开放平台和能力商品订购*** | |
EP1586208B1 (en) | Communication system | |
CN107483217A (zh) | 一种在线计费方法及*** | |
CN110324153A (zh) | 计费方法以及*** | |
CN108809666B (zh) | 流量在线计费的方法、装置及设备 | |
CN110264246B (zh) | 计费控制装置和方法 | |
CN111524002A (zh) | 联名***额度确定方法及装置 | |
CN112738743A (zh) | 业务服务、实时计费方法、装置、边缘服务器及计费*** | |
CN108900989A (zh) | 计费方法、计费装置和计费*** | |
CN109785033A (zh) | 共享***、共享方法以及管理服务器 | |
CN102137371B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |