CN113656473A - 接口访问方法、装置、设备及介质 - Google Patents

接口访问方法、装置、设备及介质 Download PDF

Info

Publication number
CN113656473A
CN113656473A CN202110872231.1A CN202110872231A CN113656473A CN 113656473 A CN113656473 A CN 113656473A CN 202110872231 A CN202110872231 A CN 202110872231A CN 113656473 A CN113656473 A CN 113656473A
Authority
CN
China
Prior art keywords
access
interface
request
access request
legal
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
Application number
CN202110872231.1A
Other languages
English (en)
Inventor
周开用
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Consumer Finance Co Ltd
Original Assignee
Ping An Consumer Finance Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Consumer Finance Co Ltd filed Critical Ping An Consumer Finance Co Ltd
Priority to CN202110872231.1A priority Critical patent/CN113656473A/zh
Publication of CN113656473A publication Critical patent/CN113656473A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及人工智能技术领域,揭示了一种接口访问方法、装置、介质及设备,其中方法包括:响应于若干条接口访问请求,分别判断每一条接口配置信息是否为合法信息;在访问记录表中查询合法访问请求的访问失败次数;获取访问失败次数小于预设的重试次数阈值的合法访问请求所对应的接口属组标志,根据不同的接口属组标志将合法访问请求进行分组;将各个请求组分发至不同查询节点,获取每一合法访问请求携带的标识信息;选取标识信息相同的合法访问请求中的一条作为正常访问请求;根据正常访问请求执行接口调用,若调用失败,在访问记录表中更新正常访问请求的访问失败次数。从而对不同接口请求加以区分,实现各个接口的差异化重试。

Description

接口访问方法、装置、设备及介质
技术领域
本申请涉及到人工智能技术领域,特别是涉及到一种接口访问方法、装置、设备及介质。
背景技术
在业务系统的交互中,接口请求是系统间交互过程所不可或缺的部分,但是接口请求有时会因为并发量高或者代码异常等原因导致请求调用失败,核心接口的调用失败可能会导致当前业务的中断。
现有技术中的接口请求重试方式,往往是统一设置一个固定的重试时间,在到达该重试时间后进行重试,或生成一个随机数时间,在到达该随机数时间点时进行重试,没有对各个系统中的不同接口请求加以区分,因此无法支持各个接口的差异化重试。
发明内容
本申请的主要目的为提供一种接口访问方法、装置、介质及设备,旨在解决现有技术无法对不同接口请求加以区分,导致无法支持各个接口的差异化重试的技术问题。
为了实现上述发明目的,本申请提出一种接口访问方法,所述方法包括:
响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;
将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;
获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;
将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;
当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;
根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
进一步的,所述在所述访问记录表中更新所述正常访问请求的访问失败次数之后,还包括:
获取第一时间段内接收到的所述接口访问请求的第一请求数量,以及所述接口访问请求中,接口调用成功的第二请求数量;
根据所述第一请求数量和所述第二请求数量计算所述第一时间段内的访问成功率;
当所述访问成功率小于预设的的成功率阈值时,经过第二时间段后再接收新的接口访问请求。
进一步的,所述响应于若干条接口访问请求之后,还包括:
经过第三时间段后,向产生各个所述接口访问请求的系统获取各个所述接口访问请求的发送列表,其中,所述列表包括各个所述接口访问请求的标识信息和发送时间;
将接收到的所述接口访问请求与所述发送列表进行匹配,得到丢包信息;
根据所述丢包信息向所述系统发送补发指令,以使所述系统根据所述补发指令发送所述丢包信息对应的接口访问请求。
进一步的,所述在所述访问记录表中更新所述正常访问请求的访问失败次数之后,还包括:
通过RandomAccessFile将所述合法访问请求的访问失败次数写入预设的数据落库地址,并通过MappedByteBuffer对所述数据落库地址中的所述合法访问请求的访问失败次数进行日志异步落库。
进一步的,所述根据所述正常访问请求执行接口调用之后,还包括:
若调用成功,通过内存文件队列将所述合法访问请求的访问成功状态进行日志异步落库。
进一步的,所述在所述访问记录表中更新所述正常访问请求的访问失败次数之后,还包括:
判断所述访问失败次数是否大于所述重试次数阈值;
若大于,不对所述正常访问请求执行接口调用,将所述正常访问请求的状态更改为接口终止;
发送状态为接口终止的所述正常访问请求对应的告警信息。
进一步的,所述根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息之后,包括:
将所述接口配置信息不合法的所述接口访问请求作为非法访问请求,向产生所述非法访问请求的系统发送非法请求警告,以使产生所述非法访问请求的系统进行风险处理;
将产生所述非法访问请求的系统标记为风险系统,将所述风险系统发送的每一条接口访问请求均缓存至待定区域内,直至所述风险系统根据所述非法请求警告反馈风险处理结果。
本申请还提出了一种接口访问装置,包括:
请求判断模块,用于响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;
访问查询模块,用于将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;
请求分组模块,用于获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;
标识信息获取模块,用于将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;
请求筛选模块,用于当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;
接口调用模块,用于根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法。
本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法。
本申请的接口访问方法、装置、介质及设备,通过在接收到接口访问请求时先进行请求的合法性验证,从而在接口调用之前剔除非法请求,减小后续的接口调用负担,并提高了接口调用的安全性;通过对合法访问请求进行访问失败次数查询,根据每一条合法访问请求的访问失败次数分别进行访问情况判定,从而实现了各个请求的差异化重试;通过接口属组标志对合法访问请求进行分组,并对同一接口属组的请求进行统一查询,从而实现了任意逻辑的聚集排序查询,能够更好地适应分布式环境;通过对各个请求组进行多线程查询,将查询的负载由单个节点转移到多个,提高了信息查询效率,并避免由于单个节点失效而使整个系统崩溃的危险;通过仅选取一条合法访问请求作为正常访问请求,将标识信息相同的其它合法访问请求作为异常访问请求,避免对一条指令进行多次响应的问题,提高了系统的稳定性;通过在调用失败后,在访问记录表中对正常访问请求的访问失败次数进行更新,提高了各个正常访问请求可追溯性,以便于对各个正常访问请求进行区分,从而进行对不同的接口的差异化重试。
附图说明
图1为本申请一实施例的接口访问方法的流程示意图;
图2为本申请一具体实施例的接口访问方法的流程示意图;
图3为本申请一具体实施例的接口访问方法的流程示意图;
图4为本申请一实施例的接口访问装置的结构示意框图;
图5为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,为了实现上述发明目的,本申请提出一种接口访问方法,所述方法包括:
S1:响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;
S2:将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;
S3:获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;
S4:将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;
S5:当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;
S6:根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
本实施例通过在接收到接口访问请求时先进行请求的合法性验证,从而在接口调用之前剔除非法请求,减小后续的接口调用负担,并提高了接口调用的安全性;通过对合法访问请求进行访问失败次数查询,根据每一条合法访问请求的访问失败次数分别进行访问情况判定,从而实现了各个请求的差异化重试;通过接口属组标志对合法访问请求进行分组,并对同一接口属组的请求进行统一查询,从而实现了任意逻辑的聚集排序查询,能够更好地适应分布式环境;通过对各个请求组进行多线程查询,将查询的负载由单个节点转移到多个,提高了信息查询效率,并避免由于单个节点失效而使整个系统崩溃的危险;通过仅选取一条合法访问请求作为正常访问请求,将标识信息相同的其它合法访问请求作为异常访问请求,避免对一条指令进行多次响应的问题,提高了系统的稳定性;通过在调用失败后,在访问记录表中对正常访问请求的访问失败次数进行更新,提高了各个正常访问请求可追溯性,以便于对各个正常访问请求进行区分,从而进行对不同的接口的差异化重试。
对于步骤S1,本实施例应用于接口访问,尤其是业务系统之间的接口调用的应用中,本实施例可以基于人工智能技术对接口访问请求的接口配置信息进行获取和处理,其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。在系统实际工作中,在一定的时间内往往会接收到多个接口访问请求,此时需要根据其接口配置信息来区别各个接口访问请求;上述数据库可以为服务器中云存储的数据,也可以为电脑内存中存储的数据,当获取到接口访问请求的接口配置信息后,在上述数据库中的接口配置列表中查找接口配置信息,以便于校验该请求的合法性。本实施例中,通过在接收到接口访问请求时先根据数据库中存储的接口配置列表分别判断每一条上述接口配置信息是否为合法信息,完成请求的合法性验证,从而在接口调用之前剔除非法请求,减小后续的接口调用负担,并提高了接口调用的安全性。
对于步骤S2,若上述接口配置信息为合法信息,即对应的接口访问请求为合法访问请求,此时可获取访问记录表中该合法访问请求的访问失败次数,具体地,访问记录表可以包括该合法访问请求的标识信息、访问时间和访问状态访问记录表中查询访问失败次数时,可以统计失败的访问状态连续出现的次数,即每一次成功访问后,对访问失败次数进行重新计数。本实施例通过对接口配置信息合法的接口访问请求进行访问失败次数查询,从而根据该合法访问请求的访问失败次数进行访问情况判定。
对于步骤S3,上述接口属组标志为用于判定某一条接口访问请求来源于哪一个业务系统的标志,接口属组标志相同的接口访问请求判定为来自于同一业务系统;具体来说,可以预先设定重试次数阈值,并且不再响应访问失败次数大于预设的重试次数阈值的请求,避免合法访问请求无限度地不断访问接口,造成系统资源浪费;对于访问失败次数未达到重试次数阈值的请求,扫描得到合法访问请求对应的任务配置表,从上述任务配置列表中识别出该合法访问请求对应的接口属组标志,将接口属组标志相同的合法访问请求分入同一组中,即将来自同一业务系统的合法访问请求分入同一组,得到若干个分别对应不同业务系统的请求组,以便于后续通过不同的查询节点对各个合法访问请求的标志信息进行查询,避免查询节点针对来自不同的业务系统的合法访问请求查询时,需要频繁切换查询规则的问题;通常来说,一个请求组对应一个接口属组标志,一个接口属组标志对应一个业务系统。本发明通过接口属组标志对合法访问请求进行分组,并对同一接口属组的请求进行统一查询,从而实现了任意逻辑的聚集排序查询,能够更好地适应分布式环境。
对于步骤S4,上述不同的查询节点可以是隶属于同一服务器的,也可以是隶属于不同服务器的,上述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。通过接口属组标志对合法访问请求进行分组后,可对每一请求组同时进行多线程查询,以获取合法访问请求携带的标识信息;具体来说,可以将上述各个请求组分别发送至系统中的多个查询节点,以使各个节点同时进行标识信息查询,避免单个节点的运行负载过大的问题。本实施例通过对各个请求组进行多线程查询,将查询的负载由单个节点转移到多个,提高了信息查询效率,并避免由于单个节点失效而使整个系统崩溃的危险。
对于步骤S5,在实际系统中,由于分布式环境中网络的复杂性,用户误操作,网络抖动,消息重复,服务超时导致业务自动重试等等各种情况都可能会使线上数据产生了不一致,造成生产事故等情况;本发明引入幂等接口,具体来说,幂等可以表示为f(f(x))=f(x),即一个操作多次执行产生的结果与一次执行产生的结果一致,因此,通过将标识信息作为上述合法访问请求的唯一索引,若一识别到若干个标识信息相同的合法访问请求,即可判定为存在网络抖动、用户误操作等其它原因造成发送了多次一样的合法访问请求。本发明通过仅选取一合法访问请求作为正常访问请求,将标识信息相同的其它合法访问请求作为异常访问请求,避免对一条指令进行多次响应的问题,提高了系统的稳定性。
对于步骤S6,对正常访问请求重新执行接口调用,若调用成功,则在调用完成后结束任务,若调用失败,则在上述访问记录表中更新该正常访问请求的访问失败次数,即,失败一次就将该正常访问请求的访问失败次数+1,以便于后续统计。本发明通过在调用失败后,在访问记录表中对正常访问请求的访问失败次数进行更新,提高了各个正常访问请求可追溯性。
在一个实施例中,参照图2,所述在所述访问记录表中更新所述正常访问请求的访问失败次数S6之后,还包括:
S61:获取第一时间段内接收到的所述接口访问请求的第一请求数量,以及所述接口访问请求中,接口调用成功的第二请求数量;
S62:根据所述第一请求数量和所述第二请求数量计算所述第一时间段内的访问成功率;
S63:当所述访问成功率小于预设的的成功率阈值时,经过第二时间段后再接收新的接口访问请求。
本实施例通过计算某一时段内的访问成功率,并在访问成功率较低时延迟接收新的访问请求,避免新的接口访问请求因网络波动或系统故障等影响导致访问失败的问题。
对于步骤S61,可根据统计需要,获取第一时间段内的接口访问请求的总数量,将其作为第一请求数量,再获取该第一时间段内的每一接口访问请求的成功数量,将其作为第二请求数量,并将第二请求数量与第一请求数量的比值作为上述访问成功率。
对于步骤S63,若当前的访问成功率低于预设的阈值,表示此时可能存在网络抖动较大、或系统故障等原因,因此等待第二时间段后再开始接收新的接口访问请求,从而尽可能在网络抖动时期后或者系统恢复正常后再进行新的接口访问请求接收,避免该时期接收到的新的接口访问请求也受网络或系统故障影响,无法成功访问的问题。
在一个实施例中,参照图3,所述响应于若干条接口访问请求S1之后,还包括:
S11:经过第三时间段后,向产生各个所述接口访问请求的系统获取各个所述接口访问请求的发送列表,其中,所述列表包括各个所述接口访问请求的标识信息和发送时间;
S12:将接收到的所述接口访问请求与所述发送列表进行匹配,得到丢包信息;
S13:根据所述丢包信息向所述系统发送补发指令,以使所述系统根据所述补发指令发送所述丢包信息对应的接口访问请求。
本实施例通过向各个系统获取接口访问请求发送列表,以对接收到的接口访问请求数量进行匹配,得到丢包信息,并向各个系统发送补发指令,从而获取因网络波动或网络偶发断线等原因导致接口访问请求丢失的问题。
对于步骤S12,在实际网络连接中,不可避免会存在网络波动或网络偶发断线导致丢包的情况发生,此时通过将接收到的接口访问请求与系统发送的接口访问请求进行比对,得到丢包信息;上述丢包信息包括发生丢包的接口访问请求的标识信息和发送时间。
对于步骤S13,系统接收到丢包信息后,查询上述发送时间时,与上述标志信息相同的接口访问指令,并再次发送至本实施例所提供的方法搭载的系统中,避免由于网络波动或网络偶发断线等原因,造成无法接收也无法验证接口访问请求丢失情况的问题。
在一个实施例中,所述在所述访问记录表中更新所述正常访问请求的访问失败次数S6之后,还包括:
S71:通过RandomAccessFile将所述合法访问请求的访问失败次数写入预设的数据落库地址,并通过MappedByteBuffer对所述数据落库地址中的所述合法访问请求的访问失败次数进行日志异步落库。
本实施例通过对合法访问请求的访问失败次数进行日志异步落库,避免并发进程较多时阻塞接口,同时避免未落库的数据被抛弃,导致数据丢失的问题。
对于步骤S71,在网络中,低并发进程较少的情况下,如果直接用消息队列进行日志落库,系统通常能够稳定运行;然而,对于并发进程较多的情况,会导致落库端的系统性能高于99%,即TP99(Top Percentile)等指标快速增长,消息队列的发送耗时往往会超过200ms,甚至导致不少timeout产生。因此,需要一种异步落库方法,避免因并发进程较多导致落库效率严重降低的问题。
具体来说,本实施例通过基于RandomAccessFile和MappedByteBuffer的内存文件队列进行落库,RandomAccessFile是java体系中的文件内容访问类,可以读取文件内容,也可以向文件中写入内容,并且通过RandomAccessFile可以直接跳到文件的任意位置来读写数据,即可以实现只访问文件的部分内容。MappedByteBuffer是java中引入的文件内存映射方案,读写性能极高,其能够实现对异步操作的支持,在RandomAccessFile将所述合法访问请求的访问失败次数写入预设的数据落库地址后,MappedByteBuffer能够将该地址的数据直接映射到内存上。上述内存文件队列采用了阻塞式的队列ArrayBlockingQueue,通过add(Ee)函数将合法访问请求待落库的访问失败次数信息e添加到BlockingQueue中,如果BlockingQueue可以容纳,则返回true参数,否则回传异常函数alse put(Ee),即把访问失败次数信息e添加到BlockingQueue中,如果BlockingQueue中没有空间,则阻断调用此函数的日志异步落库,直至BlockingQueue中重新有存储空间。当并发进程较多时,BlockingQueue的管道满了的情况下会阻塞接口,未落库的数据不会被抛弃,而是通过落盘操作不经过缓存,直接存入库中,避免数据丢失的问题。
在一个实施例中,所述根据所述正常访问请求执行接口调用S6之后,还包括:
S72:若调用成功,通过内存文件队列将所述合法访问请求的访问成功状态进行日志异步落库。
本实施例通过对调用成功的合法访问请求对应的访问成功状态进行日志异步落库,避免并发进程较多时,合法访问请求的访问成功状态丢失的问题,从而避免调用成功的合法访问请求因状态丢失进行请求重试。
对于步骤S72,通过基于RandomAccessFile和MappedByteBuffer的内存文件队列对调用成功的合法访问请求对应的访问成功状态进行落库。采用了阻塞式的队列ArrayBlockingQueue,通过add(Ee)函数将合法访问请求待落库的访问成功状态信息e’添加到BlockingQueue中,如果BlockingQueue可以容纳,则返回true参数,否则回传异常函数alse put(Ee),即把访问成功状态信息e’添加到BlockingQueue中,如果BlockingQueue中没有空间,则阻断调用此函数的日志异步落库,直至BlockingQueue中重新有存储空间。当并发进程较多时,BlockingQueue的管道满了的情况下会阻塞接口,未落库的数据不会被抛弃,而是通过落盘操作不经过缓存,直接存入库中,避免数据丢失的问题。
在一个实施例中,所述在所述访问记录表中更新所述正常访问请求的访问失败次数S6之后,还包括:
S81:判断所述访问失败次数是否大于所述重试次数阈值;
S82:若大于,不对所述正常访问请求执行接口调用,将所述正常访问请求的状态更改为接口终止;
S83:发送状态为接口终止的所述正常访问请求对应的告警信息。
本实施例通过设定重试次数阈值,在到达阈值后进行访问禁止和告警,避免无意义的重试导致系统的资源浪费,降低了系统负担,从而提高了接口访问效率。
对于步骤S81,预先设定合适的重试次数阈值,示例性地,重试次数阈值可以为10次、15次或20次,以便于重新访问的次数足以排除网络抖动、系统卡顿等其他原因造成的访问失败。
对于步骤S82,当一接口访问请求的访问失败次数大于重试次数阈值时,即不对该正常访问请求执行接口调用,并将其状态修改为接口终止,从而不再响应该请求的重试操作,避免无意义的重试导致系统的资源浪费,降低了系统负担,从而提高了接口访问效率。
在一个实施例中,所述根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息S1之后,包括:
S14:将所述接口配置信息不合法的所述接口访问请求作为非法访问请求,向产生所述非法访问请求的系统发送非法请求警告,以使产生所述非法访问请求的系统进行风险处理;
S15:将产生所述非法访问请求的系统标记为风险系统,将所述风险系统发送的每一条接口访问请求均缓存至待定区域内,直至所述风险系统根据所述非法请求警告反馈风险处理结果。
本实施例通过在识别到接口配置信息不合法的接口访问请求后进行非法告警,以使系统根据非法请求警告重新发送接口访问请求或进行非法溯源,并在接收到风险处理结果之前对风险系统的接口访问请求进行数据隔离,提高了接口访问的安全性。
对于步骤S14,若数据库中存储的接口配置列表中不存在上述接口访问请求的接口配置信息,则可判定为接口配置信息不合法,即,上述接口访问请求为非法请求;此时可向产生上述接口访问请求的系统发送非法请求警告,以使该系统根据该非法请求警告进行风险处理,例如自行杀毒,或通知相关工作人员查找非法请求来源,提高了系统的安全性。
对于步骤S15,为了避免非法访问请求携带的异常数据或病毒侵害其他服务器,在产生非法访问请求的系统,即风险系统,反馈风险处理结果之前,将该风险系统发送的每一条接口访问请求均缓存至待定区域内,以实现风险数据隔离,若风险处理结果为不存在病毒,则重新响应该风险系统在待定区域内的接口访问请求;若风险处理结果为存在病毒,则将该风险系统在待定区域内的接口访问请求全部清除。
参照图4,本申请还提出了一种接口访问装置,包括:
请求判断模块100,用于响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;
访问查询模块200,用于将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;
请求分组模块300,用于获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;
标识信息获取模块400,用于将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;
请求筛选模块500,用于当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;
接口调用模块600,用于根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
本实施例通过在接收到接口访问请求时先进行请求的合法性验证,从而在接口调用之前剔除非法请求,减小后续的接口调用负担,并提高了接口调用的安全性;通过对合法访问请求进行访问失败次数查询,根据每一条合法访问请求的访问失败次数分别进行访问情况判定,从而实现了各个请求的差异化重试;通过接口属组标志对合法访问请求进行分组,并对同一接口属组的请求进行统一查询,从而实现了任意逻辑的聚集排序查询,能够更好地适应分布式环境;通过对各个请求组进行多线程查询,将查询的负载由单个节点转移到多个,提高了信息查询效率,并避免由于单个节点失效而使整个系统崩溃的危险;通过仅选取一条合法访问请求作为正常访问请求,将标识信息相同的其它合法访问请求作为异常访问请求,避免对一条指令进行多次响应的问题,提高了系统的稳定性;通过在调用失败后,在访问记录表中对正常访问请求的访问失败次数进行更新,提高了各个正常访问请求可追溯性,以便于对各个正常访问请求进行区分,从而进行对不同的接口的差异化重试。
在一个实施例中,还包括请求延时模块701,用于:
获取第一时间段内接收到的所述合法访问请求的第一请求数量,以及所述合法访问请求中,接口调用成功的第二请求数量;
根据所述第一请求数量和所述第二请求数量计算所述第一时间段内的访问成功率;
当所述访问成功率小于预设的的成功率阈值时,经过第二时间段后再接收新的合法访问请求。
在一个实施例中,还包括丢包信息匹配模块101,用于:
经过第三时间段后,向产生各个所述接口访问请求的系统获取各个所述接口访问请求的发送列表,其中,所述列表包括各个所述接口访问请求的标识信息和发送时间;
将接收到的所述接口访问请求与所述发送列表进行匹配,得到丢包信息;
根据所述丢包信息向所述系统发送补发指令,以使所述系统根据所述补发指令发送所述丢包信息对应的接口访问请求。
在一个实施例中,还包括异步落库模块702,用于:
通过RandomAccessFile将所述合法访问请求的访问失败次数写入预设的数据落库地址,并通过MappedByteBuffer对所述数据落库地址中的所述合法访问请求的访问失败次数进行日志异步落库。
在一个实施例中,所述异步落库模块702,还用于:
若调用成功,通过内存文件队列将所述合法访问请求的访问成功状态进行日志异步落库。
在一个实施例中,还包括业务包加载模块703,用于:
判断所述访问失败次数是否大于所述重试次数阈值;
若大于,不对所述正常访问请求执行接口调用,将所述正常访问请求的状态更改为接口终止;
发送状态为接口终止的所述正常访问请求对应的告警信息。
在一个实施例中,还包括非法告警模块102,用于:
将所述接口配置信息不合法的所述接口访问请求作为非法访问请求,向产生所述非法访问请求的系统发送非法请求警告,以使产生所述非法访问请求的系统进行风险处理;
将产生所述非法访问请求的系统标记为风险系统,将所述风险系统发送的每一条接口访问请求均缓存至待定区域内,直至所述风险系统根据所述非法请求警告反馈风险处理结果。
参照图5,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存接口访问方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口访问方法。所述接口访问方法,包括:响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种接口访问方法,包括步骤:响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
上述执行的接口访问方法,本实施例通过在接收到接口访问请求时先进行请求的合法性验证,从而在接口调用之前剔除非法请求,减小后续的接口调用负担,并提高了接口调用的安全性;通过对合法访问请求进行访问失败次数查询,根据每一条合法访问请求的访问失败次数分别进行访问情况判定,从而实现了各个请求的差异化重试;通过接口属组标志对合法访问请求进行分组,并对同一接口属组的请求进行统一查询,从而实现了任意逻辑的聚集排序查询,能够更好地适应分布式环境;通过对各个请求组进行多线程查询,将查询的负载由单个节点转移到多个,提高了信息查询效率,并避免由于单个节点失效而使整个系统崩溃的危险;通过仅选取一条合法访问请求作为正常访问请求,将标识信息相同的其它合法访问请求作为异常访问请求,避免对一条指令进行多次响应的问题,提高了系统的稳定性;通过在调用失败后,在访问记录表中对正常访问请求的访问失败次数进行更新,提高了各个正常访问请求可追溯性,以便于对各个正常访问请求进行区分,从而进行对不同的接口的差异化重试。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种接口访问方法,其特征在于,所述方法包括:
响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;
将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;
获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;
将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;
当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;
根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
2.根据权利要求1所述的接口访问方法,其特征在于,所述在所述访问记录表中更新所述正常访问请求的访问失败次数之后,还包括:
获取第一时间段内接收到的所述接口访问请求的第一请求数量,以及所述接口访问请求中,接口调用成功的第二请求数量;
根据所述第一请求数量和所述第二请求数量计算所述第一时间段内的访问成功率;
当所述访问成功率小于预设的的成功率阈值时,经过第二时间段后再接收新的接口访问请求。
3.根据权利要求1所述的接口访问方法,其特征在于,所述响应于若干条接口访问请求之后,还包括:
经过第三时间段后,向产生各个所述接口访问请求的系统获取各个所述接口访问请求的发送列表,其中,所述列表包括各个所述接口访问请求的标识信息和发送时间;
将接收到的所述接口访问请求与所述发送列表进行匹配,得到丢包信息;
根据所述丢包信息向所述系统发送补发指令,以使所述系统根据所述补发指令发送所述丢包信息对应的接口访问请求。
4.根据权利要求1所述的接口访问方法,其特征在于,所述在所述访问记录表中更新所述正常访问请求的访问失败次数之后,还包括:
通过RandomAccessFile将所述合法访问请求的访问失败次数写入预设的数据落库地址,并通过MappedByteBuffer对所述数据落库地址中的所述合法访问请求的访问失败次数进行日志异步落库。
5.根据权利要求1所述的接口访问方法,其特征在于,所述根据所述正常访问请求执行接口调用之后,还包括:
若调用成功,通过内存文件队列将所述合法访问请求的访问成功状态进行日志异步落库。
6.根据权利要求1所述的接口访问方法,其特征在于,所述在所述访问记录表中更新所述正常访问请求的访问失败次数之后,还包括:
判断所述访问失败次数是否大于所述重试次数阈值;
若大于,不对所述正常访问请求执行接口调用,将所述正常访问请求的状态更改为接口终止;
发送状态为接口终止的所述正常访问请求对应的告警信息。
7.根据权利要求1所述的接口访问方法,其特征在于,所述根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息之后,包括:
将所述接口配置信息不合法的所述接口访问请求作为非法访问请求,向产生所述非法访问请求的系统发送非法请求警告,以使产生所述非法访问请求的系统进行风险处理;
将产生所述非法访问请求的系统标记为风险系统,将所述风险系统发送的每一条接口访问请求均缓存至待定区域内,直至所述风险系统根据所述非法请求警告反馈风险处理结果。
8.一种接口访问装置,其特征在于,包括:
请求判断模块,用于响应于若干条接口访问请求,分别获取每一条所述接口访问请求的接口配置信息,并根据数据库中存储的接口配置列表分别判断每一条所述接口配置信息是否为合法信息;
访问查询模块,用于将合法的所述接口配置信息对应的所述接口访问请求作为合法访问请求,在访问记录表中查询各条所述合法访问请求的访问失败次数;
请求分组模块,用于获取所述访问失败次数小于预设的重试次数阈值的所述合法访问请求所对应的接口属组标志,并根据不同的所述接口属组标志将所述合法访问请求进行分组,得到若干个请求组;
标识信息获取模块,用于将各个所述请求组分发至不同的查询节点,以使各个所述查询节点进行多线程查询,获取每一个所述合法访问请求携带的标识信息;
请求筛选模块,用于当识别到若干条所述标识信息相同的所述合法访问请求时,选取其中一条所述合法访问请求作为正常访问请求,不再响应所述标识信息相同的其余所述合法访问请求;
接口调用模块,用于根据所述正常访问请求执行接口调用,若调用失败,在所述访问记录表中更新所述正常访问请求的访问失败次数。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法。
CN202110872231.1A 2021-07-30 2021-07-30 接口访问方法、装置、设备及介质 Pending CN113656473A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110872231.1A CN113656473A (zh) 2021-07-30 2021-07-30 接口访问方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110872231.1A CN113656473A (zh) 2021-07-30 2021-07-30 接口访问方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN113656473A true CN113656473A (zh) 2021-11-16

Family

ID=78490149

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110872231.1A Pending CN113656473A (zh) 2021-07-30 2021-07-30 接口访问方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113656473A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338171A (zh) * 2021-12-29 2022-04-12 中国建设银行股份有限公司 一种黑产攻击检测方法和装置
CN114363221A (zh) * 2021-12-29 2022-04-15 武汉烽火信息集成技术有限公司 一种基于微服务系统的心跳检测方法、存储介质、电子设备及系统
CN114666250A (zh) * 2022-03-01 2022-06-24 中国电子科技集团公司第五十二研究所 一种保持安防软件系统中数据和状态一致性的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140033278A1 (en) * 2012-07-25 2014-01-30 Oracle International Corporation System and method of securing sharing of resources which require consent of multiple resource owners using group uri's
CN104732331A (zh) * 2015-02-13 2015-06-24 腾讯科技(深圳)有限公司 分组管理方法、装置和系统
CN105262717A (zh) * 2015-08-31 2016-01-20 福建天晴数码有限公司 一种网络服务安全管理方法及装置
CN109992431A (zh) * 2019-03-05 2019-07-09 福建天泉教育科技有限公司 一种实现重试的方法及终端
CN111782688A (zh) * 2020-06-29 2020-10-16 中国平安财产保险股份有限公司 基于大数据分析的请求处理方法、装置、设备及存储介质
CN112905930A (zh) * 2019-12-04 2021-06-04 北京沃东天骏信息技术有限公司 一种接口请求重发方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140033278A1 (en) * 2012-07-25 2014-01-30 Oracle International Corporation System and method of securing sharing of resources which require consent of multiple resource owners using group uri's
CN104732331A (zh) * 2015-02-13 2015-06-24 腾讯科技(深圳)有限公司 分组管理方法、装置和系统
CN105262717A (zh) * 2015-08-31 2016-01-20 福建天晴数码有限公司 一种网络服务安全管理方法及装置
CN109992431A (zh) * 2019-03-05 2019-07-09 福建天泉教育科技有限公司 一种实现重试的方法及终端
CN112905930A (zh) * 2019-12-04 2021-06-04 北京沃东天骏信息技术有限公司 一种接口请求重发方法和装置
CN111782688A (zh) * 2020-06-29 2020-10-16 中国平安财产保险股份有限公司 基于大数据分析的请求处理方法、装置、设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338171A (zh) * 2021-12-29 2022-04-12 中国建设银行股份有限公司 一种黑产攻击检测方法和装置
CN114363221A (zh) * 2021-12-29 2022-04-15 武汉烽火信息集成技术有限公司 一种基于微服务系统的心跳检测方法、存储介质、电子设备及系统
CN114363221B (zh) * 2021-12-29 2024-05-03 武汉烽火信息集成技术有限公司 一种基于微服务系统的心跳检测方法、存储介质、电子设备及系统
CN114666250A (zh) * 2022-03-01 2022-06-24 中国电子科技集团公司第五十二研究所 一种保持安防软件系统中数据和状态一致性的方法

Similar Documents

Publication Publication Date Title
CN113656473A (zh) 接口访问方法、装置、设备及介质
CN109064345B (zh) 消息处理方法、系统以及计算机可读存储介质
US11586673B2 (en) Data writing and reading method and apparatus, and cloud storage system
CN109828847B (zh) 基于区块链的锁处理方法、装置、计算机设备及存储介质
EP3221795B1 (en) Service addressing in distributed environment
CN109614209B (zh) 一种任务处理方法、应用服务器及系统
CN106059825A (zh) 一种分布式系统及配置方法
CN112395140B (zh) 去中心化的任务调度方法、装置、设备及介质
CN107329820B (zh) 一种用于集群系统的任务处理方法及装置
US20200036812A1 (en) Resource Download Method, Electronic Device, and Apparatus
CN107015884B (zh) 一种数据存储方法及装置
US7877757B2 (en) Work item event monitor for procession of queued events
CN112559211A (zh) 消息数据的更新方法、装置、计算机设备及存储介质
CN110597764A (zh) 一种文件管理方法及装置
CN103905512A (zh) 一种数据处理方法和设备
CN113010306A (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN113590180B (zh) 一种检测策略生成方法及装置
CN112860746B (zh) 一种基于缓存削减的方法、设备及系统
CN112583761B (zh) 安全实体的管理方法、装置、计算机设备和存储介质
CN110740062B (zh) 断点续传方法和装置
CN114610762A (zh) 数据请求的三级响应方法、系统、设备及存储介质
CN114647663A (zh) 一种资源处理方法、装置、系统、电子设备及存储介质
KR102066178B1 (ko) 웹 모니터링 시스템 및 이를 이용한 응답시간 분포 정보 생성 방법
CN111866130B (zh) 基于zookeeper的日志处理方法、装置、计算机设备和存储介质
CN114185625A (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