CN113114768A - 一种业务请求处理方法、装置和系统 - Google Patents
一种业务请求处理方法、装置和系统 Download PDFInfo
- Publication number
- CN113114768A CN113114768A CN202110400022.7A CN202110400022A CN113114768A CN 113114768 A CN113114768 A CN 113114768A CN 202110400022 A CN202110400022 A CN 202110400022A CN 113114768 A CN113114768 A CN 113114768A
- Authority
- CN
- China
- Prior art keywords
- service
- service request
- cache
- feature code
- processing result
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 185
- 238000000034 method Methods 0.000 claims abstract description 38
- 230000004044 response Effects 0.000 claims description 26
- 230000000903 blocking effect Effects 0.000 claims description 12
- 238000009987 spinning Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种业务请求处理方法、装置和系统,涉及计算机技术领域。该方法的一具体实施方式包括:响应于接收到客户端发送的业务请求,为业务请求生成特征码;判断缓存中是否存储有特征码,如果是,则控制业务请求进入自旋/阻塞阶段,并从缓存中获取与特征码相配的业务处理结果,并将业务处理结果发送给客户端;否则,将特征码存储到缓存,并将业务请求发送给业务服务端,接收业务服务端发业务处理结果,将业务处理结果存储到缓存中,并发送给客户端。该实施方式能够有效地提高用户体验。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种业务请求处理方法、装置和系统。
背景技术
在业务请求处理过程中,针对相同的业务请求,一般只处理一次,而两次业务请求得到的处理结果往往是不同的。即:如果客户端发起了两次相同的业务请求,一般第一次业务请求接收的结果是成功的,而第二次业务请求得到的结果是处理失败或者处理异常等。
现有的这种业务请求处理方式,会使得请求发起方在接收到两种不同的返回结果时,并不能确定业务请求是否处理成功,用户体验较差。
发明内容
有鉴于此,本发明实施例提供一种业务请求处理方法、装置和系统,能够有效地提高用户体验。
为实现上述目的,根据本发明实施例的一个方面,提供了一种业务请求处理方法,包括:
响应于接收到客户端发送的业务请求,为所述业务请求生成特征码;
判断缓存中是否存储有所述特征码,
如果是,则控制所述业务请求进入自旋/阻塞阶段,并从所述缓存中获取与所述特征码相匹配的业务处理结果,并将所述业务处理结果发送给客户端;
否则,将所述特征码存储到所述缓存,并将所述业务请求发送给业务服务端,接收所述业务服务端发送的业务处理结果,将所述业务处理结果存储到所述缓存中,并发送给所述客户端。
优选地,业务请求处理方法,进一步包括:
定时查询所述缓存中是否存储有与所述特征码相匹配的业务处理结果,如果是,则结束所述业务请求的自旋/阻塞阶段,并执行从所述缓存中获取与所述特征码相匹配的业务处理结果的步骤。
优选地,所述为所述业务请求生成特征码,包括:
解析所述业务请求包括的多个参数;
基于多个所述参数生成特征码。
优选地,所述基于多个所述参数生成特征码,包括:
从多个所述参数中筛选出与业务相关的参数;
基于与业务相关的参数,生成特征码。
优选地,上述业务请求处理方法,进一步包括:根据所述特征码和预设的注解方法名称,设置缓存结果键;
将所述业务处理结果存储到所述缓存中,包括:将所述业务处理结果与缓存结果键对应存储。
优选地,所述从所述缓存中获取与所述特征码相匹配的业务处理结果,包括:
在所述缓存中查找与所述特征码相匹配的缓存结果键;
如果查找到,则获取与相匹配的所述缓存结果键对应存储的业务处理结果。
优选地,上述业务请求处理方法,进一步包括:
定时监测处理所述业务请求的性能指标;
根据所述性能指标包括的每分钟请求平均响应时间,确定所述定时查询的时间间隔。
优选地,上述业务请求处理方法,进一步包括:
为所述缓存中存储的所述特征码设置有效时长,其中所述有效时长基于所述性能指标包括的每分钟最大请求响应时间设置;
当所述特征码存储在所述缓存中的时长超过所述有效时长时,删除所述特征码或者将所述特征码标注为无效。
第二方面,本发明实施例提供一种业务请求处理装置,包括:生成单元以及请求处理单元,其中,
所述生成单元,用于响应于接收到客户端发送的业务请求,为所述业务请求生成特征码;
所述请求处理单元,用于判断缓存中是否存储有所述特征码,如果是,则控制所述业务请求进入自旋/阻塞阶段,并从所述缓存中获取与所述特征码相匹配的业务处理结果,并将所述业务处理结果发送给客户端;否则,将所述特征码存储到所述缓存,并将所述业务请求发送给业务服务端,接收所述业务服务端发送的业务处理结果,将所述业务处理结果存储到所述缓存中。
第三方面,本发明实施例提供一种业务请求处理系统,包括:客户端、业务服务端以及权利要求10所述的业务请求处理装置,其中,
所述客户端,用于发送业务请求给所述业务请求处理装置;
所述业务服务端,用于接收所述业务请求处理装置发送的所述业务请求,并将业务处理结果发送给所述业务请求处理装置;
所述客户端,进一步用于接收所述业务请求处理装置发送的所述业务处理结果。
上述发明中的一个实施例具有如下优点或有益效果:由于针对业务请求生成对应的特征码,则相同的业务请求可有相同的特征码,那么,通过判断缓存中是否存储有该特征码可以确定该业务请求是否已经发生过,即如果缓存中未存储该特征码,说明该业务请求未发生过,则进入正常的业务处理流程:将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果,将业务处理结果存储到缓存中。如果缓存中已经存储有该特征码说明该业务请求已经发生过,则控制该业务请求进入自旋/阻塞阶段,避免业务服务端重复处理业务请求,并通过从缓存中获取与特征码相匹配的业务处理结果可以使该业务请求也可得到业务处理结果,使用户针对同一业务发出的多次业务请求均可得到相同的业务处理结果,以避免用户甄别多次业务请求的不同结果,从而有效地提高用户体验。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的业务请求处理方法的主要流程的示意图;
图2是根据本发明实施例的为业务请求生成特征码主要流程的示意图;
图3是根据本发明实施例的获取与特征码相匹配的业务处理结果主要流程的示意图;
图4是根据本发明实施例的定时查询的时间间隔确定的主要流程的示意图;
图5是根据本发明实施例的业务请求有效时长管理的主要流程的示意图;
图6是根据本发明另一实施例的业务请求处理方法的主要流程的示意图;
图7是根据本发明实施例的业务请求处理装置的主要单元的示意图;
图8是根据本发明实施例的业务请求处理系统的主要设备的示意图;
图9是本发明实施例可以应用于其中的示例性系统架构图;
图10是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在很多的客户端与服务端交互场景比如线上/电子支付、线上购物、线上办公、线上办理账户开通、转账等业务等,由于客户端与服务端通信网络的延迟、客户端卡顿、服务端处理延迟等原因,使用户通过客户端发出一次业务请求后,由于未及时收到针对该业务请求的反馈,又发出多次业务请求。如果服务器针对用户发出的每一个业务请求均进行处理,一方面可能导致业务办理重复比如线上支付多次扣款等;另一方面导致计算资源不必要消耗。因此,客户端与服务端交互过程中,当客户端发出多个相同的业务请求后,服务端一般只处理其中一个业务请求,而忽略其他相同的业务请求。
现有技术针对上述处理过程,会为多次相同的业务请求发送不同的处理结果,比如服务端针对处理的业务请求反馈的处理结果为:处理成功;针对其未处理的其他相同的业务请求则反馈处理失败、拒绝处理、处理异常等。这就导致客户端针对多个业务请求得到的不同处理结果,即客户端针对多次相同的业务请求得到的处理结果不同,需要用户花费时间甄别业务请求是否处理成功,导致用户体验较差。
为了能够使多次相同的业务请求得到相同的处理结果,图1是根据本发明实施例的一种业务请求处理方法,如图1所示,该业务请求处理方法可包括如下步骤:
步骤S101:响应于接收到客户端发送的业务请求,为业务请求生成特征码;
其中,业务请求可以为任意需要客户端与服务端交互的请求,比如,查询物流计费方式的请求、支付请求、购买请求、转账请求等。
该步骤中生成特征码的方式可以采用现有字符串转换的方式,比如哈希值算法中的单向散列算法MD5(为字符串/文本生成128位哈希值的算法)、SHA(对任意长度的数据运算生成一个160位的数值)等。
步骤S102:判断缓存中是否存储有特征码,如果是,则执行步骤S103;否则,执行步骤S104;
对于多个相同的业务请求具有相同的特征码,而不同的业务请求则具有不同的特征码。因此,通过设置缓存,并将业务请求对应的特征码,那么通过判断缓存中是否存储有特征码可以准确的判断出该业务请求是否已经存在,以防止业务服务端重复处理。
步骤S103:控制业务请求进入自旋/阻塞阶段,并从缓存中获取与特征码相匹配的业务处理结果,并将业务处理结果发送给客户端,结束当前流程;
其中,自旋阶段是指为业务请求设置自旋锁,以使业务请求对应的线程在循环体内循环,当从缓存中获取与特征码相匹配的业务处理结果后,则结束循环。
阻塞阶段是指,通过为业务请求设置阻塞锁,以改变业务请求对应线程的运行状态,让业务请求对应线程进入阻塞状态进行等待,当从缓存中获取与特征码相匹配的业务处理结果后,则结束该业务请求对应线程。
步骤S104:将特征码存储到缓存,并将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果,将业务处理结果存储到缓存中,并发送给客户端。
值得说明的是,上述业务请求处理方法可基于客户端与服务端之间的接口实现。即可在现有的接口中封装上述业务请求处理方法对应的程序,使接口实现上述业务请求处理方法。
在特征码不存在与缓存中时,说明该特征码对应的业务请求为首次发出,则该特征码的业务请求进入正常处理流程,即将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果。后续通过将业务处理结果存储到缓存中,可以使后续相同的业务请求能够直接获取该业务处理结果,使客户端多次发出的相同的业务请求可以得到相同的业务处理结果,提高用户体验。
在图1所示的实施例中,由于针对业务请求生成对应的特征码,则相同的业务请求可有相同的特征码,那么,通过判断缓存中是否存储有该特征码可以确定该业务请求是否已经发生过,即如果缓存中未存储该特征码,说明该业务请求未发生过,则进入正常的业务处理流程:将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果,将业务处理结果存储到缓存中。如果缓存中已经存储有该特征码说明该业务请求已经发生过,则控制该业务请求进入自旋/阻塞阶段,避免业务服务端重复处理业务请求,并通过从缓存中获取与特征码相匹配的业务处理结果可以使该业务请求也可得到业务处理结果,使用户针对同一业务发出的多次业务请求均可得到相同的业务处理结果,以避免用户甄别多次业务请求的不同结果,从而有效地提高用户体验。
客户端发送多次相同的业务请求所间隔的时间比较短,在多次相同的业务请求所间隔的时间内,业务服务端可能还未产生业务处理结果,基于此,本发明实施例中,上述业务请求处理方法可进一步包括:定时查询缓存中是否存储有与特征码相匹配的业务处理结果,如果是,则结束业务请求的自旋/阻塞阶段,并执行从缓存中获取与特征码相匹配的业务处理结果的步骤;否则,继续控制业务请求处于自旋、阻塞阶段。
该定时查询是指每间隔一段时间,查询一次缓存中是否存储有与特征码相匹配的业务处理结果。
通过上述过程能够保证业务请求获取到其对应的处理结果,并通过结束业务请求的自旋/阻塞阶段停止业务请求继续占有资源。
在本发明实施例中,如图2所示,上述步骤S101中为业务请求生成特征码的一种具体实施方式可包括如下步骤:
步骤S201:解析业务请求包括的多个参数;
该参数可以为与业务相关的参数、请求的发送时间、客户端信息、用户名等。其中,与业务相关的参数是指能够直接影响业务处理的参数。比如业务请求为按照体积和质量查询物流收费,则与业务相关的参数即为体积、质量。又比如,线上支付的账号信息、金额、收费方信息等。
步骤S202:基于多个参数生成特征码。
由于业务请求包括有很多信息,为了避免不相关信息对生成特征码的干扰,该实施例通过从业务请求中解析出多个参数,并基于该多个参数生成特征码,可有效地降低不必要信息对特征码的干扰,以准确的为相同的业务请求生成相同的特征码。
在本发明实施例中,为了进一步避免不相关参数的干扰,上述基于多个参数生成特征码的具体实施方式可包括:从多个参数中筛选出与业务相关的参数;基于与业务相关的参数,生成特征码。通过该生成特征码的方式,针对一些与具体用户无关的多个客户端发送的多个业务请求,可以生成相同的特征码,那么这些业务请求只需要业务服务端处理一次,可有效地节省业务服务端的资源。比如,针对物流收费查询的请求,不同的物流收费查询的请求包括的参数【体积,重量,业务请求时间】,由于只有体积和重量与物流收费查询相关,业务请求时间与物流收费并不相关,因此,在生成特征码过程中,将基于体积和重量生成特征码。由于特征码只参考了体积和重量,那么,不同的客户端发送物流收费查询的请求时,得到的特征码相同,则不同客户端可直接从缓存中获取物流收费查询的结果,能够有效地提高客户端获取业务处理结果的效率,同时无需业务服务端重新查询,可降低对业务服务端的开销。
在本发明实施例中,上述业务请求处理方法可进一步包括:根据特征码和预设的注解方法名称,设置缓存结果键;比如,缓存结果键为:注解方法名_特征码,该注解方法名可以为自定义的,通过该注解方法名可以增加代码的可读性,便于开发人员阅读。
相应地,将业务处理结果存储到缓存中的具体实施方式可包括:将业务处理结果与缓存结果键对应存储。那么在后续可以通过查找包括特征码的缓存结果键得到该特征码对应的业务处理结果,从而提高获取业务处理结果的效率以及准确性。
在本发明实施例中,如图3所示,上述从缓存中获取与特征码相匹配的业务处理结果的具体实施方式可包括:
步骤S301:在缓存中查找与特征码相匹配的缓存结果键,如果查找到,则执行步骤S302;如果未查找到,则执行步骤S303;
步骤S302:获取与相匹配的缓存结果键对应存储的业务处理结果,并结束当前流程;
步骤S303:继续等待。
在本发明实施例中,针对定时查询缓存中是否存储有与特征码相匹配的业务处理结果的步骤,该定时查询的时间间隔通过如图4所示的步骤得到。
步骤S401:定时监测处理业务请求的性能指标;
该性能指标可为:每分钟满足百分之九十九的业务请求,响应所需要的最低耗时时间(即每分钟请求平均响应时间,TP99)以及每分钟对业务请求的最大响应时间等。
步骤S402:根据性能指标包括的每分钟请求平均响应时间,确定定时查询的时间间隔。
该步骤具体实现方式可以为:直接将每分钟请求平均响应时间作为定时查询的时间间隔;也可以为将每分钟请求平均响应时间加一个固定时长比如100ms等作为定时查询的时间间隔。
通过上述监测处理业务请求的性能指标可以比较准确地获取处理业务请求的能力,并根据性能指标包括的每分钟请求平均响应时间,确定定时查询的时间间隔,由于处理业务请求的性能指标会与业务服务端的运行相关,因此,通过监测得到的处理业务请求的性能指标能够更准确地反映业务服务端的处理能力,进一步基于监测出的性能指标包括的每分钟请求平均响应时间,调变定时查询的时间间隔,一方面可以尽可能减少定时查询次数,另一方面可以使客户端能够比较及时的获取到缓存中存储的业务处理结果。
在本发明实施例中,如图5所示,上述业务请求处理方法可进一步包括如下步骤:
步骤S501:为缓存中存储的特征码设置有效时长,其中有效时长基于性能指标包括的最大请求响应时间设置;
步骤S502:当特征码存储在所述缓存中的时长超过有效时长时,删除特征码或者将特征码标注为无效。
上述有效时长可以为:最大请求响应时间加上一个固定时长比如1秒,由于该最大请求响应时间是通过定时监测得到的,其可比较真实的反映业务服务端的处理能力。因此,通过基于最大请求响应时间为特征码设置有效时长,能够比较准确的评估特征码在缓存中有效的时间,以通过清理失效或者无效的特征码的方式清理缓存。
为了能够清楚地说明本发明实施例对业务请求处理过程,下面以两个相同的业务请求A和B(其中,业务请求A为请求时间在前的业务请求,业务请求B为请求时间在后的业务请求)为例,展开说明本发明实施例对两个相同的业务请求A和B的处理过程。
如图6所示,本发明实施例对两个相同的业务请求A和B的处理过程可包括如下步骤:
步骤S600:定时监测处理业务请求的性能指标;
该步骤S600与下述步骤之前没有严格的先后顺序,即在下述其他步骤执行之前或执行之后或执行过程中,执行该步骤S600。
该性能指标包括每分钟满足百分之九十九的业务请求,响应所需要的最低耗时时间(即每分钟请求平均响应时间,TP99)以及每分钟对业务请求的最大响应时间等。
步骤S601:响应于接收到客户端发送的业务请求,解析业务请求包括的多个参数;
步骤S602:从多个参数中筛选出与业务相关的参数;
步骤S603:基于与业务相关的参数,生成特征码;
比如,业务请求A为物流查询请求,其包括的参数是{“weight”:1,“volume”:10,“date”:2019-09-07 17:00:00},则由于询价的计费要素仅仅是体积和重量两个属性,因此,该步骤将基于“weight”:1和“volume”:10,生成特征码。
业务请求B也为物流查询请求,其包括的参数是{“weight”:1,“volume”:10,“date”:2020-09-07 17:00:01},由于其与业务相关的参数与业务请求A中的是相同的,因此该业务请求B生成的特征码与业务请求A的特征码相同。该筛选与业务相关的参数可以参考注解中的except Field属性进行配置,例如:@IdempotentStrategy(exceptField=“date”)(多个属性以逗号分隔),通过此配置即可排除业务请求A、业务请求B中的date属性,业务请求A、业务请求B通过{“weight”:1,”volume”:10}JSON对象生成的相同的MD5字符串,后续即可判断A、B两个请求是相同的请求。
步骤S604:判断缓存中是否存储有特征码,如果是,则执行步骤S605;否则,执行步骤S609;
步骤S605:控制业务请求进入自旋/阻塞阶段;
步骤S606:根据性能指标包括的每分钟请求平均响应时间,确定定时查询的时间间隔;
步骤S607:根据定时查询的时间间隔,定时查询缓存中是否存储有与特征码相匹配的业务处理结果,如果查找到,则执行步骤S608;否则,继续等待;
在该步骤中,可以通过为业务处理结果生成的缓存结果键进行查找,即:在缓存中查找与特征码相匹配的缓存结果键;如果查找到,则获取与相匹配的缓存结果键对应存储的业务处理结果。
步骤S608:从缓存中获取与特征码相匹配的业务处理结果,并将业务处理结果发送给客户端,并结束当前流程;
步骤S609:将特征码存储到缓存,并将业务请求发送给业务服务端;
步骤S610:根据性能指标包括的每分钟最大请求响应时间,为缓存中存储的特征码设置有效时长;
比如,在该步骤为业务请求A的特征码设置的有效时长为:每分钟最大请求响应时间加1秒。
步骤S611:接收业务服务端发送的业务处理结果;
步骤S612:根据特征码和预设的注解方法名称,设置缓存结果键,将业务处理结果与缓存结果键对应存储;
步骤S613:发送业务处理结果给客户端;
步骤S614:判断缓存中存储的业务请求A的特征码的时长是否达到有效时长,如果是,则执行步骤S615;否则,执行步骤S616;
步骤S615:删除特征码或者将特征码标注为无效,并结束当前流程;
步骤S616:继续维持该业务请求A有效,并结束当前流程;
值得说明的是,本发明实施例可通过AOP注解的方式处理业务请求,获取目标注解的相关信息。AOP可以对业务逻辑的各个部分进行隔离,降低业务逻辑耦合度,提高程序的可重用性。
如图7所示,本发明实施例提供一种业务请求处理装置700,该业务请求处理装置700可包括:生成单元701以及请求处理单元702,其中,
生成单元701,用于响应于接收到客户端发送的业务请求,为业务请求生成特征码;
请求处理单元702,用于判断缓存中是否存储有所述特征码,如果是,则控制业务请求进入自旋/阻塞阶段,并从缓存中获取与特征码相匹配的业务处理结果,并将所述业务处理结果发送给客户端;否则,将特征码存储到缓存,并将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果,将业务处理结果存储到所述缓存中。
在本发明实施例中,请求处理单元702,进一步用于定时查询缓存中是否存储有与特征码相匹配的业务处理结果,如果是,则结束业务请求的自旋/阻塞阶段,并执行从缓存中获取与所述特征码相匹配的业务处理结果的步骤。
在本发明实施例中,生成单元701,用于解析业务请求包括的多个参数;基于多个参数生成特征码。
在本发明实施例中,生成单元701,用于从多个参数中筛选出与业务相关的参数;基于与业务相关的参数,生成特征码。
在本发明实施例中,请求处理单元702,进一步用于根据特征码和预设的注解方法名称,设置缓存结果键;将业务处理结果与缓存结果键对应存储。
在本发明实施例中,请求处理单元702,进一步用于在缓存中查找与特征码相匹配的缓存结果键;如果查找到,则获取与相匹配的缓存结果键对应存储的业务处理结果。
在本发明实施例中,请求处理单元702,进一步用于定时监测处理业务请求的性能指标;根据性能指标包括的每分钟请求平均响应时间,确定定时查询的时间间隔。
在本发明实施例中,请求处理单元702,进一步用于为缓存中存储的特征码设置有效时长,其中有效时长基于性能指标包括的每分钟最大请求响应时间设置;当特征码存储在缓存中的时长超过有效时长时,删除特征码或者将特征码标注为无效。
值得说明的是,上述业务请求处理装置可以为接口,也可安装于现有的接口,以使接口实现上述功能。
如图8所示,本发明实施例提供一种业务请求处理系统800,该业务请求处理系统800可包括:客户端801、业务服务端802以及上述业务请求处理装置803,其中,
客户端801,用于发送业务请求给业务请求处理装置803;
业务服务端802,用于接收业务请求处理装置803发送的业务请求,并将业务处理结果发送给业务请求处理装置803;
客户端801,进一步用于接收业务请求处理装置803发送的业务处理结果。
图9示出了可以应用本发明实施例的业务请求处理方法或业务请求处理装置的示例性系统架构900。
如图9所示,系统架构900可以包括终端设备901、902、903,网络904和服务器905。终端设备901、902、903通过对应的接口访问服务器905。网络904用以在终端设备901、902、903和服务器905之间提供通信链路的介质。网络904可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备901、902、903通过网络904与服务器905交互,以接收或发送消息等。终端设备901、902、903上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备901、902、903可以利用各种通讯客户端应用通过接口向服务器905发送业务请求。
终端设备901、902、903可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
接口可以对终端设备901、902、903向服务器905发送的业务请求进行处理,以根据处理的结果判断是否将该业务请求发送给服务器905。并向客户端反馈从服务器905获得的业务处理结果。
需要说明的是,本发明实施例所提供的业务请求处理方法一般由服务器905提供的可被终端调用的接口执行,相应地,业务请求处理装置一般设置于905提供的可被终端调用的接口中。
应该理解,图9中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图10,其示出了适于用来实现本发明实施例的终端设备的计算机系统1000的结构示意图。图10示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统Y00包括中央处理单元(CPU)1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。在RAM 1003中,还存储有系统1000操作所需的各种程序和数据。CPU 1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括生成单元以及请求处理单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,生成单元还可以被描述为“为业务请求生成特征码的单元”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:响应于接收到客户端发送的业务请求,为业务请求生成特征码;判断缓存中是否存储有所述特征码,如果是,则控制业务请求进入自旋/阻塞阶段,并从缓存中获取与特征码相匹配的业务处理结果,并将业务处理结果发送给客户端;否则,将特征码存储到缓存,并将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果,将业务处理结果存储到所述缓存中,并发送给客户端。
根据本发明实施例的技术方案,由于针对业务请求生成对应的特征码,则相同的业务请求可有相同的特征码,那么,通过判断缓存中是否存储有该特征码可以确定该业务请求是否已经发生过,即如果缓存中未存储该特征码,说明该业务请求未发生过,则进入正常的业务处理流程:将业务请求发送给业务服务端,接收业务服务端发送的业务处理结果,将业务处理结果存储到缓存中。如果缓存中已经存储有该特征码说明该业务请求已经发生过,则控制该业务请求进入自旋/阻塞阶段,避免业务服务端重复处理业务请求,并通过从缓存中获取与特征码相匹配的业务处理结果可以使该业务请求也可得到业务处理结果,使用户针对同一业务发出的多次业务请求均可得到相同的业务处理结果,以避免用户甄别多次业务请求的不同结果,从而有效地提高用户体验。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种业务请求处理方法,其特征在于,包括:
响应于接收到客户端发送的业务请求,为所述业务请求生成特征码;
判断缓存中是否存储有所述特征码,
如果是,则控制所述业务请求进入自旋/阻塞阶段,并从所述缓存中获取与所述特征码相匹配的业务处理结果,并将所述业务处理结果发送给客户端;
否则,将所述特征码存储到所述缓存,并将所述业务请求发送给业务服务端,接收所述业务服务端发送的业务处理结果,将所述业务处理结果存储到所述缓存中,并发送给所述客户端。
2.根据权利要求1所述的业务请求处理方法,其特征在于,进一步包括:
定时查询所述缓存中是否存储有与所述特征码相匹配的业务处理结果,如果是,则结束所述业务请求的自旋/阻塞阶段,并执行从所述缓存中获取与所述特征码相匹配的业务处理结果的步骤。
3.根据权利要求1所述的业务请求处理方法,其特征在于,所述为所述业务请求生成特征码,包括:
解析所述业务请求包括的多个参数;
基于多个所述参数生成特征码。
4.根据权利要求3所述的业务请求处理方法,其特征在于,所述基于多个所述参数生成特征码,包括:
从多个所述参数中筛选出与业务相关的参数;
基于与业务相关的参数,生成特征码。
5.根据权利要求1至4任一所述的业务请求处理方法,其特征在于,
进一步包括:根据所述特征码和预设的注解方法名称,设置缓存结果键;
将所述业务处理结果存储到所述缓存中,包括:将所述业务处理结果与缓存结果键对应存储。
6.根据权利要求5所述的业务请求处理方法,其特征在于,所述从所述缓存中获取与所述特征码相匹配的业务处理结果,包括:
在所述缓存中查找与所述特征码相匹配的缓存结果键;
如果查找到,则获取与相匹配的所述缓存结果键对应存储的业务处理结果。
7.根据权利要求2所述的业务请求处理方法,其特征在于,进一步包括:
定时监测处理所述业务请求的性能指标;
根据所述性能指标包括的每分钟请求平均响应时间,确定所述定时查询的时间间隔。
8.根据权利要求7所述的业务请求处理方法,其特征在于,进一步包括:
为所述缓存中存储的所述特征码设置有效时长,其中所述有效时长基于所述性能指标包括的每分钟最大请求响应时间设置;
当所述特征码存储在所述缓存中的时长超过所述有效时长时,删除所述特征码或者将所述特征码标注为无效。
9.一种业务请求处理装置,其特征在于,包括:生成单元以及请求处理单元,其中,
所述生成单元,用于响应于接收到客户端发送的业务请求,为所述业务请求生成特征码;
所述请求处理单元,用于判断缓存中是否存储有所述特征码,如果是,则控制所述业务请求进入自旋/阻塞阶段,并从所述缓存中获取与所述特征码相匹配的业务处理结果,并将所述业务处理结果发送给客户端;否则,将所述特征码存储到所述缓存,并将所述业务请求发送给业务服务端,接收所述业务服务端发送的业务处理结果,将所述业务处理结果存储到所述缓存中。
10.一种业务请求处理系统,其特征在于,包括:客户端、业务服务端以及权利要求9所述的业务请求处理装置,其中,
所述客户端,用于发送业务请求给所述业务请求处理装置;
所述业务服务端,用于接收所述业务请求处理装置发送的所述业务请求,并将业务处理结果发送给所述业务请求处理装置;
所述客户端,进一步用于接收所述业务请求处理装置发送的所述业务处理结果。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400022.7A CN113114768A (zh) | 2021-04-14 | 2021-04-14 | 一种业务请求处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400022.7A CN113114768A (zh) | 2021-04-14 | 2021-04-14 | 一种业务请求处理方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113114768A true CN113114768A (zh) | 2021-07-13 |
Family
ID=76716876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110400022.7A Pending CN113114768A (zh) | 2021-04-14 | 2021-04-14 | 一种业务请求处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114768A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886099A (zh) * | 2021-08-27 | 2022-01-04 | 北京房江湖科技有限公司 | 接口访问请求处理方法及存储介质 |
CN114844947A (zh) * | 2022-04-29 | 2022-08-02 | 北京达佳互联信息技术有限公司 | 请求的处理方法、装置、电子设备及计算机可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045545A1 (zh) * | 2014-09-28 | 2016-03-31 | 阿里巴巴集团控股有限公司 | 数据交互方法和系统以及服务器 |
WO2016101753A1 (zh) * | 2014-12-26 | 2016-06-30 | 北京奇虎科技有限公司 | 请求信息统一处理的方法和装置 |
CN107181787A (zh) * | 2017-03-21 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种请求处理方法及装置 |
CN108470043A (zh) * | 2018-02-27 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 一种业务结果的获取方法及装置 |
CN110891090A (zh) * | 2019-11-29 | 2020-03-17 | 北京声智科技有限公司 | 一种请求方法、装置、服务端、系统及存储介质 |
CN112653614A (zh) * | 2020-12-15 | 2021-04-13 | 建信金融科技有限责任公司 | 基于消息中间件的请求处理方法和装置 |
-
2021
- 2021-04-14 CN CN202110400022.7A patent/CN113114768A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016045545A1 (zh) * | 2014-09-28 | 2016-03-31 | 阿里巴巴集团控股有限公司 | 数据交互方法和系统以及服务器 |
WO2016101753A1 (zh) * | 2014-12-26 | 2016-06-30 | 北京奇虎科技有限公司 | 请求信息统一处理的方法和装置 |
CN107181787A (zh) * | 2017-03-21 | 2017-09-19 | 阿里巴巴集团控股有限公司 | 一种请求处理方法及装置 |
CN108470043A (zh) * | 2018-02-27 | 2018-08-31 | 阿里巴巴集团控股有限公司 | 一种业务结果的获取方法及装置 |
CN110891090A (zh) * | 2019-11-29 | 2020-03-17 | 北京声智科技有限公司 | 一种请求方法、装置、服务端、系统及存储介质 |
CN112653614A (zh) * | 2020-12-15 | 2021-04-13 | 建信金融科技有限责任公司 | 基于消息中间件的请求处理方法和装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113886099A (zh) * | 2021-08-27 | 2022-01-04 | 北京房江湖科技有限公司 | 接口访问请求处理方法及存储介质 |
CN114844947A (zh) * | 2022-04-29 | 2022-08-02 | 北京达佳互联信息技术有限公司 | 请求的处理方法、装置、电子设备及计算机可读介质 |
CN114844947B (zh) * | 2022-04-29 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 请求的处理方法、装置、电子设备及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115004673A (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN113114768A (zh) | 一种业务请求处理方法、装置和系统 | |
CN107918617B (zh) | 数据查询方法和装置 | |
CN110909022A (zh) | 一种数据查询方法和装置 | |
CN109918191B (zh) | 一种业务请求防频的方法和装置 | |
CN112819638A (zh) | 交易判重的方法、装置、设备和计算机可读介质 | |
CN110049358B (zh) | 一种基于电视的物品推送方法和系统 | |
CN113672357A (zh) | 任务调度的方法、装置和系统 | |
CN109753424B (zh) | Ab测试的方法和装置 | |
CN107291835B (zh) | 一种搜索词的推荐方法和装置 | |
CN108764866B (zh) | 用于分配资源、领取资源的方法和设备 | |
CN113360815B (zh) | 一种请求重试方法和装置 | |
CN113111626B (zh) | 序列生成的方法、装置、电子设备和存储介质 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN111415262A (zh) | 一种业务处理方法和装置 | |
CN109213815B (zh) | 控制执行次数的方法、装置、服务器终端以及可读介质 | |
CN108733668B (zh) | 用于查询数据的方法和装置 | |
CN114449031B (zh) | 信息获取方法、装置、设备和存储介质 | |
CN113726885B (zh) | 一种流量配额的调整方法和装置 | |
CN112784139B (zh) | 查询方法、装置、电子设备和计算机可读介质 | |
CN114925304A (zh) | 一种信息访问方法、装置和系统 | |
CN111786801B (zh) | 一种基于数据流量进行计费的方法和装置 | |
CN110019671B (zh) | 一种处理实时消息的方法和系统 | |
CN113238919A (zh) | 一种用户访问数的统计方法、装置及系统 | |
CN113572704A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210713 |
|
RJ01 | Rejection of invention patent application after publication |