CN111597019A - 调用请求处理方法、装置、终端和计算机可读存储介质 - Google Patents

调用请求处理方法、装置、终端和计算机可读存储介质 Download PDF

Info

Publication number
CN111597019A
CN111597019A CN202010319739.4A CN202010319739A CN111597019A CN 111597019 A CN111597019 A CN 111597019A CN 202010319739 A CN202010319739 A CN 202010319739A CN 111597019 A CN111597019 A CN 111597019A
Authority
CN
China
Prior art keywords
thread
request
calling
call
terminal
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
CN202010319739.4A
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.)
ZTE ICT Technologies Co Ltd
Original Assignee
ZTE ICT Technologies 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 ZTE ICT Technologies Co Ltd filed Critical ZTE ICT Technologies Co Ltd
Priority to CN202010319739.4A priority Critical patent/CN111597019A/zh
Publication of CN111597019A publication Critical patent/CN111597019A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提出了一种终端的调用请求处理方法、装置、终端和计算机可读存储介质。其中,方法包括:获取终端的调用请求;根据预设分类条件对调用请求进行分类合并,生成请求列表;根据请求列表配置对应的线程池,并确定线程执行队列;根据线程执行队列执行接口调用操作。本发明的调用请求处理方法,将同一类的调用请求作为一种请求来响应,分批量进行接口调用,从而形成合并请求‑入列等待对垒‑进入执行队列‑执行并回调的循环机制,实现一处响应多处返回,进而在较少硬件资源条件下保证准确、高效、有序地进行响应调用请求,降低运行维护成本,且有利于问题追踪。

Description

调用请求处理方法、装置、终端和计算机可读存储介质
技术领域
本发明涉及电路板制造技术领域,具体而言,涉及一种终端的调用请求处理方法、一种调用请求处理装置、一种终端和一种计算机可读存储介质。
背景技术
鉴于微服务和软件高内聚、低耦合的实现要求以及移动应用的广泛普及,接口的调用从之前的内部单一调用变成了海量客户端的请求调用,尤其一些常用数据接口面对百万级甚至千万级的请求需要在服务快速高效地响应每个请求,在此除了在硬件上进行扩容,更多的是需要软件层依据一些高并发处置策略进行有效响应。
相关技术中,对于海量接口请求调用处理方式大致分为入口并发异步锁机制、接口调用分布式/集群机制,对此两种机制,目标是在入口和执行端进行控制,抑制高并发造成的资源耗尽和端口堵塞。但上述两种方案具有很大的弊端:第一,在调用入口加异步锁机制会造成延迟,这对于实时性比较高的接口调用显然不合理;第二,在接口响应时进行分布式或集群对资源要求更高,相应的成本也更高,而且更多的分布式或集群带来的维护成本、问题追踪更加复杂。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明第一方面在于提出了一种终端的调用请求处理方法。
本发明的第二方面在于提出了一种调用请求处理装置。
本发明的第三方面在于提出了一种终端。
本发明的第四方面在于提出了一种计算机可读存储介质。
有鉴于此,根据本发明的第一方面,提出了一种终端的调用请求处理方法,包括:获取终端的调用请求;根据预设分类条件对调用请求进行分类合并,生成请求列表;根据请求列表配置对应的线程池,并确定线程执行队列;根据线程执行队列执行接口调用操作。
本发明提供的调用请求处理方法,不同客户端对接口的调用会不同的参数和规则要求,由于同一类(条件)的请求调用本质上与单一的请求返回机制是一样的,为此,对接口的海量调用请求根据预设分类条件进行归类,其中,预设分类条件包括参数、类型、规则等,将统一的业务、规则、参数的请求进行合并,生成请求列表,然后根据请求列表将合并归类后的调用请求调用组以键值对的形式入列到等待队列中,整个队列是一定数量的线程池,使得线程池能够对应同一类的调用请求,这些待执行的调用请求会去不断检查线程池中是否有空闲执行线程,如果存在空闲执行线程,则从等待队列出列到线程执行队列,并由线程池对应的空闲执行线程快速执行接口调用操作。从而形成合并请求-入列等待对垒-进入执行队列-执行并回调的循环机制,能够将同一类的调用请求作为一种请求来响应,分批量进行接口调用,实现一处响应多处返回,进而在较少硬件资源条件下保证准确、高效、有序地进行响应调用请求,降低运行维护成本,且有利于问题追踪。
另外,根据本发明提供的上述技术方案中终端的调用请求处理方法,还可以具有如下附加技术特征:
在上述技术方案中,进一步地,确定线程执行队列,具体包括:获取终端的数据处理参数;获取终端的数据处理参数;根据阻抗匹配规则和数据处理参数,确定线程池的执行线程数量;根据预设优先级确定请求列表中调用请求的调用顺序;根据调用顺序和执行线程数量,确定线程执行队列。
在该技术方案中,线程池是一系列线程聚集地,考虑到在请求调用接口的应用上,如果基于“thread per request”的模式,每个调用请求用一个线程去处理,当请求数达到某个临界值,由于线程的增加,上下文之间的切换开销也随之增加,使得接口吞吐量反而会下降,为了在并发请求数很高时也能保持稳定的吞吐量,利用线程池来处理调用请求,并且利用终端的数据处理参数和线程池阻抗匹配规则对线程池中每个线程进行饱和度计算,从而确定线程池的执行线程数量,即系统CPU(中央处理器)能够用于执行请求的线程数量,其中,CPU的性能越高,执行线程数量越多,然后根据预设优先级确定请求列表中调用请求的调用顺序,例如,先进先出、请求数据量大小等规则,按照调用顺序以键值对(key-value)的形式入列到线程池的等待队列中,等待队列对应一个固定执行线程数量的线程池,线程池中的执行线程按序列号有序转入执行调用请求的线程执行队列,同时,等待队列中待执行的调用请求不断检查线程池中是否有空闲执行线程,判断空闲的标准是采用线程池阻抗匹配,若存在空闲执行线程,则调用请求从等待队列出列到执行线程池对应的空闲执行线程,以执行线程池的接口调用,从而运用了线程池阻抗匹配规则接收线程,让每个线程池根据CPU的性能得出最优布局,利用线程池轮询机制,无论在调用请求的等待队列还是执行队列,实现入列-出列(执行)快速多线程执行,在提高了接口响应的并发度的同时保证稳定的吞吐量,进而提升响应调用请求的效率。
具体地,线程池中的线程在执行任务时,密集计算所占的时间比重为A(0<A≤1),而系统一共有N个CPU,为了让这N个CPU跑满而又不过载,线程池大小百分比(执行线程数量)的经验公式T=N/A,例如N=8,A=1.0,即线程池的任务完全是密集计算,那么T=8,只要8个执行线程就能让8个CPU饱和,即使调用请求的数量超过8个,但由于CPU资源耗尽,多余调用请求也只能继续存于等待队列中,直至空闲执行线程出现。
在上述任一技术方案中,进一步地,根据线程执行队列执行接口调用操作,具体包括:确定线程执行队列中调用请求的线程类型;根据线程类型调用线程池中的执行线程进行线程执行队列的接口调用操作。
在该技术方案中,根据调用请求中业务类型、调用规则等信息,确定线程执行队列中调用请求所需的线程类型,根据线程类型调用线程池中的执行线程进行线程执行队列的接口调用操作,从而将不同的数据处理操作分别交由不同的线程来异步进行,实现不同的数据处理操作的相互重叠(并行),降低了系统延迟,有利于快速对接口调用后返回进行同类分发,进而降低资源消耗,提高响应服务速度。
在上述任一技术方案中,进一步地,还包括:获取线程执行队列的线程回调函数;根据线程回调函数生成调用结果;返回调用结果,并更新执行线程的状态信息。
在该技术方案中,接口调用执行后分可以直接完成操作,不做返回,也可以根据线程执行队列的线程回调函数生成调用结果,并将调用结果返回给请求端,同时更新执行线程的状态为空闲,以便于等待队列中的调用请求继续调用该执行线程进行接口调用,从而提高了线程的利用率,进而在较少硬件资源条件下保证准确、高效、有序地响应调用请求,降低维护成本。
在上述任一技术方案中,进一步地,线程类型包括:IO线程和计算线程。
在该技术方案中,IO操作主要是读写存储在物理介质中的数据,数据获取之后的需要进行计算也,采用IO和“计算”拆分的算法,把读写数据和数据计算进行分离,让一个线程只从事某一项处理操作,实现线程的重用,降低了系统延迟和资源消耗,提高响应服务速度。
在上述任一技术方案中,进一步地,获取终端的调用请求之后,还包括:判断调用请求是否满足预设调用规则;判定调用请求不满足预设调用规则,删除调用请求。
在该技术方案中,在接收到调用请求后,判断调用请求是否满足接口的预设调用规则,若调用请求不满足预设调用规则,说明接口无法处理该调用请求,则对不符合预设调用规则的调用请求进行屏蔽,以提高调用请求的响应效率。
在上述任一技术方案中,进一步地,调用请求至少包括:业务类型、调用规则、请求数据。
根据本发明的第二方面,提出了一种调用请求处理装置,包括存储器、处理器,存储器储存有计算机程序,处理器执行计算机程序时执行上述第一方面的终端的调用请求处理方法。因此该调用请求处理装置具备上述任一项的终端的调用请求处理方法的全部有益效果。
根据本发明的第三方面,提出了一种终端,上述第二方面的调用请求处理装置,调用请求处理装置执行计算机程序时能够执行以下步骤:获取终端的调用请求;根据预设分类条件对调用请求进行分类合并,生成请求列表;根据请求列表配置对应的线程池,并生成线程执行队列;根据线程执行队列执行接口调用操作。
在该技术方案中,不同客户端对接口的调用会不同的参数和规则要求,由于同一类(条件)的请求调用本质上与单一的请求返回机制是一样的,为此,对接口的海量调用请求根据预设分类条件进行归类,其中,预设分类条件包括参数、类型、规则等,将统一的业务、规则、参数的请求进行合并,生成请求列表,然后根据请求列表将合并归类后的调用请求调用组以键值对的形式入列到等待队列中,整个队列是一定数量的线程池,使得线程池能够对应同一类的调用请求,这些待执行的调用请求会去不断检查线程池中是否有空闲执行线程,如果存在空闲执行线程,则从等待队列出列到线程执行队列,并由线程池对应的空闲执行线程快速执行接口调用操作。从而形成合并请求-入列等待对垒-进入执行队列-执行并回调的循环机制,能够将同一类的调用请求作为一种请求来响应,分批量进行接口调用,进而在较少硬件资源条件下保证准确、高效、有序地响应调用请求,降低运行维护成本,且有利于问题追踪。
根据本发明的第四方面,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时执行如上述第一方面的终端的调用请求处理方法的步骤。因此该计算机可读存储介质具备上述任一项的终端的调用请求处理方法的全部有益效果。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明一个实施例的终端的调用请求处理方法流程示意图;
图2示出了本发明又一个实施例的终端的调用请求处理方法流程示意图;
图3示出了本发明又一个实施例的终端的调用请求处理方法流程示意图;
图4示出了本发明又一个实施例的终端的调用请求处理方法流程示意图;
图5示出了本发明一个具体实施例的终端的调用请求处理方法流程示意图;
图6示出了本发明一个具体实施例的海量数据接口调用的合并-请求-执行策略示意图;
图7示出了本发明一个实施例的调用请求处理装置示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不限于下面公开的具体实施例的限制。
下面参照图1至图7描述根据本发明一些实施例的终端的调用请求处理方法和调用请求处理装置。
实施例一
如图1所示,根据本发明第一方面的实施例,提出了一种终端的调用请求处理方法,该方法包括:
步骤102,获取终端的调用请求;
步骤104,根据预设分类条件对调用请求进行分类合并,生成请求列表;
步骤106,根据请求列表配置对应的线程池,并确定线程执行队列;
步骤108,根据线程执行队列执行接口调用操作。
在该实施例中,不同客户端对接口的调用会有一些不同的参数和规则要求,由于同一类(条件)的请求调用本质上与单一的请求返回机制是一样的,为此,对接口的海量调用请求根据预设分类条件进行归类,其中,预设分类条件包括参数、类型、规则等,将统一的业务、规则、参数的请求进行合并,生成请求列表,然后根据请求列表将合并归类后的调用请求调用组以键值对的形式入列到等待队列中,整个队列是一定数量的线程池,使得线程池能够对应同一类的调用请求,这些待执行的调用请求会去不断检查线程池中是否有空闲执行线程,如果存在空闲执行线程,则从等待队列出列到线程执行队列,并由线程池对应的空闲执行线程快速执行接口调用操作。从而形成合并请求-入列等待对垒-进入执行队列-执行并回调的循环机制,能够将同一类的调用请求作为一种请求来响应,分批量进行接口调用,实现一处响应多处返回,进而在较少硬件资源条件下保证准确、高效、有序地进行响应调用请求,降低运行维护成本,且有利于问题追踪。
具体地,调用请求至少包括:业务类型、调用规则、请求数据。
实施例二
如图2所示,根据本发明的一个实施例,提出了一种终端的调用请求处理方法,该方法包括:
步骤202,获取终端的调用请求和数据处理参数;
步骤204,根据预设分类条件对调用请求进行分类合并,生成请求列表;
步骤206,根据请求列表配置对应的线程池;
步骤208,根据预设优先级确定请求列表中调用请求的调用顺序;
步骤210,根据调用顺序和执行线程数量,确定线程执行队列;
步骤212,根据线程执行队列执行接口调用操作。
在该实施例中,线程池是一系列线程聚集地,考虑到在请求调用接口的应用上,如果基于“thread per request”的模式,每个调用请求用一个线程去处理,当请求数达到某个临界值,由于线程的增加,上下文之间的切换开销也随之增加,使得接口吞吐量反而会下降,为了在并发请求数很高时也能保持稳定的吞吐量,利用线程池来处理调用请求,并且利用终端的数据处理参数和线程池阻抗匹配规则对线程池中每个线程进行饱和度计算,从而确定线程池的执行线程数量,即系统CPU(中央处理器)能够用于执行请求的线程数量,其中,CPU的性能越高,执行线程数量越多,然后根据预设优先级确定请求列表中调用请求的调用顺序,例如,先进先出、请求数据量大小等规则。根据调用顺序和执行线程数量,确定线程执行队列的步骤具体包括:按照调用顺序以键值对(key-value)的形式入列到线程池的等待队列中,其中,等待队列对应一个固定执行线程数量的线程池,同时,线程池中的执行线程按序列号有序转入执行调用请求的线程执行队列,等待队列中待执行的调用请求不断检查线程池中是否有空闲执行线程,若存在空闲执行线程,则调用请求从等待队列出列到执行线程池对应的空闲执行线程,以执行线程池的接口调用。从而运用了线程池阻抗匹配规则接收线程,让每个线程池根据CPU的性能得出最优布局,利用线程池轮询机制,无论在调用请求的等待队列还是执行队列,都能够实现入列-出列(执行)快速多线程执行,在提高了接口响应的并发度的同时保证稳定的吞吐量,进而提升响应调用请求的效率。
具体地,线程池中的线程在执行任务时,密集计算所占的时间比重为A(0<A≤1),而系统一共有N个CPU,为了让这N个CPU跑满而又不过载,线程池大小百分比(执行线程数量)的经验公式T=N/A,例如N=8,A=1.0,即线程池的任务完全是密集计算,那么T=8,只要8个执行线程就能让8个CPU饱和,即使调用请求的数量超过8个,但由于CPU资源耗尽,多余调用请求也只能继续存于等待队列中,直至空闲执行线程出现。
实施例三
如图3所示,根据本发明的一个实施例,提出了一种终端的调用请求处理方法,该方法包括:
步骤302,获取终端的调用请求;
步骤304,根据预设分类条件对调用请求进行分类合并,生成请求列表;
步骤306,根据请求列表配置对应的线程池,并确定线程执行队列;
步骤308,确定线程执行队列中调用请求的线程类型;
步骤310,根据线程类型调用线程池中的执行线程进行线程执行队列的接口调用操作;
步骤312,获取线程执行队列的线程回调函数;
步骤314,根据线程回调函数生成调用结果;
步骤316,返回调用结果,并更新执行线程的状态信息。
在该实施例中,根据调用请求中业务类型、调用规则等信息,确定线程执行队列中调用请求所需的线程类型,根据线程类型调用线程池中的执行线程进行线程执行队列的接口调用操作,从而将不同的数据处理操作分别交由不同的线程来异步进行,实现不同的数据处理操作的相互重叠(并行),降低了系统延迟,有利于快速对接口调用后返回进行同类分发,进而降低资源消耗,提高响应服务速度。接口调用执行后分可以直接完成操作,不做返回,也可以根据线程执行队列的线程回调函数生成调用结果,并将调用结果返回给请求端,同时更新执行线程的状态为空闲,以便于等待队列中的调用请求继续调用该执行线程进行接口调用,从而提高了线程的利用率,进而在较少硬件资源条件下保证准确、高效、有序地响应调用请求,降低维护成本。
具体地,线程类型包括:IO线程和计算线程。IO操作主要是读写存储在物理介质中的数据,这是一个比较耗时的地方,数据获取之后的计算也需要耗费资源,采用IO和“计算”拆分的算法,把读写数据和数据计算进行分离,让一个线程只从事某一项处理操作,实现线程的重用,降低了系统延迟,降低资源消耗,提高响应服务速度。
实施例四
如图4所示,根据本发明的一个实施例,提出了一种终端的调用请求处理方法,该方法包括:
步骤402,获取终端的调用请求;
步骤404,调用请求是否满足预设调用规则,若是,进入步骤406,若否,进入步骤408;
步骤406,根据预设分类条件对调用请求进行分类合并,生成请求列表;
步骤408,删除调用请求;
步骤410,根据请求列表配置对应的线程池,并确定线程执行队列;
步骤412,根据线程执行队列执行接口调用操作。
在该实施例中,在接收到调用请求后,判断调用请求是否满足接口的预设调用规则,若调用请求不满足预设调用规则,说明接口无法处理该调用请求,则对不符合预设调用规则的调用请求进行屏蔽,以提高调用请求的响应效率。
具体地,删除调用请求后及时提醒请求端该调用请求已被屏蔽,以便用户随时了解服务访问情况。
实施例五
如图5所示,根据本发明的一个具体实施例,提出了一种终端的调用请求处理方法,该方法包括:
步骤502,调用请求合并;
步骤504,调用请求队列;
步骤506,执行请求队列;
步骤508,请求回调。
在该实施例中,基于加软件减硬件的成本理念,提出对接口访问的海量请求根据参数、类型等条件进行归类分批量进行接口调用,同一类的请求调用本质上与单一的请求返回机制是一样的,合并归类后的请求调用组以键值对的形式入列到等待队列中,整个队列是一定数量的线程池,每个线程采用线程池阻抗匹配技术进行饱和度计算,每个线程池对应一类待执行请求,在此这些待执行调用任务会去不断检查执行队列是否有空闲执行线程,判断空闲的标准是采用线程池阻抗匹配技术,如果有的话则出列到执行线程池对应的空闲线程,由执行线程在REST API(表现层状态转移应用程序接口)快速执行接口请求任务然后返回,同时重置该执行线程状态为空闲,由此继续去接收待执行接口调用请求。海量数据接口调用的合并-请求-执行策略如图6所示。另外,采用IO和“计算”拆分的算法把读写数据和数据计算进行分离,从而形成合并请求-入列等待对垒-进入执行队列-执行并回调的循环机制。
具体的实现步骤主要分4大响应机制:
1、调用请求合并;
不同请求端对接口的调用会有一些不同的参数和规则要求,在进行接口响应之前就对这些调用进行归类合并,将统一业务、规则、参数的请求进行合并,做到一处响应多处返回,同时对一些不符合接口调用规则的请求进行屏蔽。
2、调用请求队列;
对已经合并好的请求列表按线程池阻抗匹配规则,例如先进先出、请求数据量大小等规则将调用请求列表存入等待队列,队列大小对应一个固定线程数量的线程池,线程池中的线程按序列号有序转入执行调用请求的线程执行队列,执行线程池中执行接口调用,并返回调用结果。
3、执行请求队列;
执行队列对应一个固定值的线程池,每个请求列分配一个线程进行接口访问调用,每个请求都进行IO和“计算”拆分然后合并返回,最后将该线程重新入队,回调接收新的请求列表。
4、请求回调;
接口服务调用后分两种情况,一种是直接操作完成,不做返回;第二种需要将接口调用的结果返回给服务请求端,这时就需要调用在执行队列里的线程回调函数来执行返回,等结果返回后再重置线程为待执行状态。
进一步地,将调用请求以队列形式存入,是因为消息队列为高吞吐量的分布式发布订阅消息中间件,具有高性能、持久化、多副本备份、横向扩展能力。在请求调用接口的应用上,如果基于“thread per request”的模式,当请求数达到某个临界值,随着线程的增加,上下文之间的切换开销也随之增加,导致接口吞吐量下降,为了在并发请求数很高时也能保持稳定的吞吐量,实施例中使用线程池处理调用请求,使得在调用接口请求并没有大量的计算时,线程可以快速实现切换而无需等待IO操作。
线程池阻抗匹配规则原理:池中线程在执行任务时,密集计算所占的时间比重为A(0<A<=1),而系统一共有N个CPU,为了让这N个CPU跑满而又不过载,线程池大小百分比的经验公式T=N/A。
IO和“计算”拆分算法原理:IO操作主要是读写存储在物理介质中的数据,这是一个比较耗时的地方,此外,数据获取之后的计算也需要耗费资源,把这两部分操作分别交由不同的线程来异步进行,让“专业”的线程从事“专业”的任务,相当于IO操作和“计算”相互重叠,降低了延迟。
本实施例对海量接口调用,首先通过独立线程机制进行分类合并,以key-value键值对的形式入列等待队列,使得同一类(条件)的请求作为一种请求来响应,结果返回后分发。运用了线程池阻抗匹配技术接收线程,让每个线程池根据CPU的性能得出最优布局,入列等待执行的请求以先进先出的机制轮询执行队列线程池是否有空闲线程,有的话则入列执行线程池,调用执行线程进行接口调用,无论在等待队列还是执行队列,入列-出列(执行)快速多线程执行,提高了接口响应的并发度。接口IO和“计算”拆分的响应机制,可以快速对接口调用后返回进行同类分发,同时对执行后线程进行空闲标识,提高了线程的利用率。
实施例六
如图7所示,根据本发明第二方面的实施例,提出了一种调用请求处理装置700,包括存储器702和处理器704,存储器702存储有计算机程序,处理器704执行计算机程序时实现上述第一方面实施例提出的终端的调用请求处理方法。因此该调用请求处理装置700具备上述第一方面实施例提出的终端的调用请求处理方法的全部有益效果。
实施例七
根据本发明第三方面的实施例,提出了一种终端,包括上述第二方面实施例提出的调用请求处理装置,调用请求处理装置执行计算机程序时能够执行以下步骤:获取终端的调用请求;根据预设分类条件对调用请求进行分类合并,生成请求列表;根据请求列表配置对应的线程池,并生成线程执行队列;根据线程执行队列执行接口调用操作。
在该实施例中,不同客户端对接口的调用会有一些不同的参数和规则要求,由于同一类(条件)的请求调用本质上与单一的请求返回机制是一样的,为此,对接口的海量调用请求根据预设分类条件进行归类,其中,预设分类条件包括参数、类型、规则等,将统一的业务、规则、参数的请求进行合并,生成请求列表,然后根据请求列表将合并归类后的调用请求调用组以键值对的形式入列到等待队列中,整个队列是一定数量的线程池,使得线程池能够对应同一类的调用请求,这些待执行的调用请求会去不断检查线程池中是否有空闲执行线程,如果存在空闲执行线程,则从等待队列出列到线程执行队列,并由线程池对应的空闲执行线程快速执行接口调用操作。从而形成合并请求-入列等待对垒-进入执行队列-执行并回调的循环机制,能够将同一类的调用请求作为一种请求来响应,分批量进行接口调用,进而在较少硬件资源条件下保证准确、高效、有序地响应调用请求,降低运行维护成本,且有利于问题追踪。
实施例八
根据本发明第四方面的实施例,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时执行如上述第一方面实施例提出的终端的调用请求处理方法的步骤。因此该计算机可读存储介质具备上述任一实施例的调用请求处理方法的全部有益效果。
在本说明书的描述中,术语“第一”、“第二”仅用于描述的目的,而不能理解为指示或暗示相对重要性,除非另有明确的规定和限定;术语“连接”、“安装”、“固定”等均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种终端的调用请求处理方法,其特征在于,包括:
获取所述终端的调用请求;
根据预设分类条件对所述调用请求进行分类合并,生成请求列表;
根据所述请求列表配置对应的线程池,并确定线程执行队列;
根据所述线程执行队列执行接口调用操作。
2.根据权利要求1所述的终端的调用请求处理方法,其特征在于,所述确定线程执行队列,具体包括:
获取所述终端的数据处理参数;
根据阻抗匹配规则和所述数据处理参数,确定所述线程池的执行线程数量;
根据预设优先级确定所述请求列表中所述调用请求的调用顺序;
根据所述调用顺序和所述执行线程数量,确定所述线程执行队列。
3.根据权利要求1所述的终端的调用请求处理方法,其特征在于,所述根据所述线程执行队列执行接口调用操作,具体包括:
确定所述线程执行队列中所述调用请求的线程类型;
根据所述线程类型调用所述线程池中的执行线程进行所述线程执行队列的接口调用操作。
4.根据权利要求3所述的终端的调用请求处理方法,其特征在于,还包括:
获取所述线程执行队列的线程回调函数;
根据所述线程回调函数生成调用结果;
返回所述调用结果,并更新所述执行线程的状态信息。
5.根据权利要求3所述的终端的调用请求处理方法,其特征在于,
所述线程类型包括:IO线程和计算线程。
6.根据权利要求1至5中任一项所述的终端的调用请求处理方法,其特征在于,所述获取终端的调用请求之后,还包括:
判断所述调用请求是否满足预设调用规则;
判定所述调用请求不满足所述预设调用规则,删除所述调用请求。
7.根据权利要求1至5中任一项所述的终端的调用请求处理方法,其特征在于,
所述调用请求至少包括:业务类型、调用规则、请求数据。
8.一种调用请求处理装置,包括:存储器和处理器,所述存储器存储有计算机程序,所述处理器执行计算机程序时执行如权利要求1至7中任一项所述的终端的调用请求处理方法的步骤。
9.一种终端,其特征在于,包括:
如权利要求8所述的调用请求处理装置,所述调用请求处理装置执行计算机程序时能够执行以下步骤:
获取所述终端的调用请求;
根据预设分类条件对所述调用请求进行分类合并,生成请求列表;
根据所述请求列表配置对应的线程池,并生成线程执行队列;
根据所述线程执行队列执行接口调用操作。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时执行了如权利要求1至7中任一项所述的终端的调用请求处理方法的步骤。
CN202010319739.4A 2020-04-22 2020-04-22 调用请求处理方法、装置、终端和计算机可读存储介质 Pending CN111597019A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010319739.4A CN111597019A (zh) 2020-04-22 2020-04-22 调用请求处理方法、装置、终端和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010319739.4A CN111597019A (zh) 2020-04-22 2020-04-22 调用请求处理方法、装置、终端和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111597019A true CN111597019A (zh) 2020-08-28

Family

ID=72187580

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010319739.4A Pending CN111597019A (zh) 2020-04-22 2020-04-22 调用请求处理方法、装置、终端和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111597019A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328392A (zh) * 2020-10-27 2021-02-05 金蝶软件(中国)有限公司 一种数据处理方法及相关设备
CN112463118A (zh) * 2020-11-26 2021-03-09 北京宏景世纪软件股份有限公司 一种软件开发框架的控制方法、装置、终端及其系统
CN112583733A (zh) * 2020-12-01 2021-03-30 北京三快在线科技有限公司 一种接口的流量整形方法、装置、存储介质及电子设备
CN112799732A (zh) * 2020-12-30 2021-05-14 深圳市捷顺科技实业股份有限公司 一种基于插件化的显示屏显示方法及相关装置
CN113098969A (zh) * 2021-04-09 2021-07-09 薪得付信息技术(上海)有限公司 数据分发方法、装置、系统及电子设备
CN113467909A (zh) * 2021-06-29 2021-10-01 北京房江湖科技有限公司 用于压缩并发请求的耗时的方法和装置
CN114327568A (zh) * 2022-01-14 2022-04-12 重庆长安汽车股份有限公司 基于SOA架构的Server参数传递方法、系统及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010148884A1 (zh) * 2009-12-31 2010-12-29 中兴通讯股份有限公司 移动终端系统线程处理方法及装置
CN103473138A (zh) * 2013-09-18 2013-12-25 柳州市博源环科科技有限公司 基于线程池的多任务队列调度方法
CN109558255A (zh) * 2018-12-13 2019-04-02 广东浪潮大数据研究有限公司 一种任务处理的方法及任务处理装置
CN109582472A (zh) * 2018-10-19 2019-04-05 华为技术有限公司 一种微服务处理方法及设备
CN110851246A (zh) * 2019-09-30 2020-02-28 天阳宏业科技股份有限公司 一种批量任务处理方法、装置、系统及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010148884A1 (zh) * 2009-12-31 2010-12-29 中兴通讯股份有限公司 移动终端系统线程处理方法及装置
CN103473138A (zh) * 2013-09-18 2013-12-25 柳州市博源环科科技有限公司 基于线程池的多任务队列调度方法
CN109582472A (zh) * 2018-10-19 2019-04-05 华为技术有限公司 一种微服务处理方法及设备
CN109558255A (zh) * 2018-12-13 2019-04-02 广东浪潮大数据研究有限公司 一种任务处理的方法及任务处理装置
CN110851246A (zh) * 2019-09-30 2020-02-28 天阳宏业科技股份有限公司 一种批量任务处理方法、装置、系统及存储介质

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328392A (zh) * 2020-10-27 2021-02-05 金蝶软件(中国)有限公司 一种数据处理方法及相关设备
CN112328392B (zh) * 2020-10-27 2024-05-28 金蝶软件(中国)有限公司 一种数据处理方法及相关设备
CN112463118A (zh) * 2020-11-26 2021-03-09 北京宏景世纪软件股份有限公司 一种软件开发框架的控制方法、装置、终端及其系统
CN112583733A (zh) * 2020-12-01 2021-03-30 北京三快在线科技有限公司 一种接口的流量整形方法、装置、存储介质及电子设备
CN112799732A (zh) * 2020-12-30 2021-05-14 深圳市捷顺科技实业股份有限公司 一种基于插件化的显示屏显示方法及相关装置
CN113098969A (zh) * 2021-04-09 2021-07-09 薪得付信息技术(上海)有限公司 数据分发方法、装置、系统及电子设备
CN113467909A (zh) * 2021-06-29 2021-10-01 北京房江湖科技有限公司 用于压缩并发请求的耗时的方法和装置
CN113467909B (zh) * 2021-06-29 2022-03-15 贝壳找房(北京)科技有限公司 用于压缩并发请求的耗时的方法和装置
CN114327568A (zh) * 2022-01-14 2022-04-12 重庆长安汽车股份有限公司 基于SOA架构的Server参数传递方法、系统及可读存储介质
CN114327568B (zh) * 2022-01-14 2024-05-10 重庆长安汽车股份有限公司 基于SOA架构的Server参数传递方法、系统及可读存储介质

Similar Documents

Publication Publication Date Title
CN111597019A (zh) 调用请求处理方法、装置、终端和计算机可读存储介质
US20200334183A1 (en) Event system and methods for using same
US10671458B2 (en) Epoll optimisations
US9390130B2 (en) Workload management in a parallel database system
JP4569846B2 (ja) I/oノード制御方式及び方法
EP2898655B1 (en) System and method for small batching processing of usage requests
US8239873B2 (en) Speedy event processing
CN111078436B (zh) 数据处理的方法、装置、设备及存储介质
US20030204552A1 (en) IO completion architecture for user-mode networking
US9378047B1 (en) Efficient communication of interrupts from kernel space to user space using event queues
WO2020019743A1 (zh) 流量控制方法及装置
CN101114984A (zh) 一种多线程网络负载控制方法
US8141077B2 (en) System, method and medium for providing asynchronous input and output with less system calls to and from an operating system
CN112799811B (zh) 一种边缘网关的高并发线程池任务调度方法
CN111597041A (zh) 一种分布式系统的调用方法、装置、终端设备及服务器
CN116233022A (zh) 一种作业调度方法、服务器及服务器集群
CN111193774A (zh) 提高服务器系统吞吐量的方法、系统以及服务器系统
CN115878910A (zh) 线路查询方法、装置和存储介质
CN110401708B (zh) 基于服务器负载状态的会话处理系统及方法
CN114338694A (zh) 一站式云数据中心服务器调度方法及系统
US20100042679A1 (en) Method and interprocess communication driver for managing requests of a database client to a database server
CN117076133B (zh) 云游戏平台异构资源分配方法、计算机装置及存储介质
US20230359490A1 (en) Device, system and method for scheduling job requests
CN112887414B (zh) 资源信息分批推送方法、装置、计算机设备和存储介质
CN117608822A (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200828