CN112583733A - 一种接口的流量整形方法、装置、存储介质及电子设备 - Google Patents

一种接口的流量整形方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN112583733A
CN112583733A CN202011387037.6A CN202011387037A CN112583733A CN 112583733 A CN112583733 A CN 112583733A CN 202011387037 A CN202011387037 A CN 202011387037A CN 112583733 A CN112583733 A CN 112583733A
Authority
CN
China
Prior art keywords
calling
mode
request
subsystem
call
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
CN202011387037.6A
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.)
Beijing Sankuai Online Technology Co Ltd
Original Assignee
Beijing Sankuai Online Technology 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 Beijing Sankuai Online Technology Co Ltd filed Critical Beijing Sankuai Online Technology Co Ltd
Priority to CN202011387037.6A priority Critical patent/CN112583733A/zh
Publication of CN112583733A publication Critical patent/CN112583733A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling 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/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本说明书公开了一种接口的流量整形方法、装置、存储介质及电子设备。针对分布式系统中的每个子系统,该子系统在通过接口接收调用请求时,可确定调用请求对应的调用标识,以确定调用请求对应的调用模式。然后根据预设的调用模式和事务执行模式的对应关系,确定事务执行模式,当该事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。可以根据不同的调用模式,区分需要响应优先处理的调用请求和需要吞吐量优先处理的调用请求,并进行处理,在合理利用分布式系统的系统资源的同时还可以提高系统中的各子系统协作处理业务的效率。

Description

一种接口的流量整形方法、装置、存储介质及电子设备
技术领域
本说明书涉及互联网领域,尤其涉及一种接口的流量整形方法、装置、存储介质及电子设备。
背景技术
目前,分布式系统通过设置不同的子系统,由不同子系统协作执行业务,来减少设备性能瓶颈带来的问题,提高系统工作效率。由于分布式系统中的不同子系统分别负责处理不同的事务,因此为了协作执行任务,不同子系统间需要通过接口发送携带任务信息的调用请求以及响应该调用请求。此外,当外部系统需要调用分布式系统的一些功能时,也需要通过该分布式系统的接口与该分布式系统进行交互。
在现有技术中,分布式系统的各子系统间会预先约定各接口的接口规范,并通过远程调用协议(Remote Procedure Call Protocol,RPC)进行交互。服务端会按照约定的接口规范,定义各接口可供谁调用以及各接口可通过执行函数所能实现的功能,并把各接口发布到网络中。
由于分布式系统处理的业务繁多,其中存在用户发起的业务,也有系统根据业务逻辑的需求自行执行的业务,例如,定时对账、数据统计等等,因此系统在一定时间内需要处理的调用请求既包含用户发起的业务的调用请求,也包含系统发起的业务的调用请求。通常来说,系统发起的业务属于批量处理业务,会长时间占用子系统的资源,导致子系统处理业务的时间变长,遇到业务高峰时候还可能导致业务失败,使得整体效率比较低。
发明内容
本说明书提供一种接口的流量整形方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种接口的流量整形方法,针对分布式系统中的每个子系统,该子系统对外提供的每个业务功能对应一个接口,子系统通过接口接收调用请求,所述调用请求携带有入口标识,所述方法具体包括:
针对每个子系统,该子系统通过接口接收调用请求,确定所述调用请求对应的调用标识,根据所述调用标识,确定所述调用请求对应的调用模式,其中,所述调用模式包括用户调用以及定时调用;
根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,其中,所述事务执行模式包括响应优先模式和吞吐量优先模式;
当所述事务执行模式为响应优先模式时,根据所述调用请求,执行事务;
当所述事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
可选地,根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,具体包括:
当所述调用请求对应的调用模式为用户调用时,确定所述调用模式对应的事务执行模式为响应优先模式;
当所述调用请求对应的调用模式为定时调用时,确定所述调用模式对应的事务执行模式为吞吐量优先模式。
可选地,所述调用模式还包括系统间调用;
根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式之前,所述方法还包括:
当确定所述调用模式为系统间调用时,根据所述调用请求中携带的上下文内容,继续确定所述调用请求的调用模式。
可选地,将所述调用请求的调用模式记录在线程的上下文中;
根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,具体包括:
根据线程的上下文中记录的调用模式,以及预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式。
可选地,所述方法还包括:
确定所述调用请求对应的事务的执行结果;
将所述事务的执行结果返回给所述调用请求的发起者。
可选地,所述方法还包括:
确定所述调用请求对应的事务的执行结果;
根据远程调用协议,按照业务逻辑发送所述执行结果以及携带有所述调用请求的上下文至业务逻辑中的下一子系统。
可选地,所述预设的等待策略包括阈值等待策略以及时间等待策略;
根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理,具体包括:
当符合阈值等待策略的预设条件时,将缓存的各调用请求集合成第一批量处理请求,以及对所述第一批量处理请求对应的事务进行批量处理;
当符合时间等待策略的预设条件时,将缓存的各调用请求集合成第二批量处理请求,以及对所述第二批量处理请求对应的事务进行批量处理。
本说明书提供了一种接口的流量整形装置,针对分布式系统中的每个子系统,该子系统对外提供的每个业务功能对应一个接口以及多个入口,子系统通过接口接收调用请求,所述调用请求携带有入口标识,所述装置具体包括:
调用模式确定模块,用于针对每个子系统,该子系统通过接口接收调用请求,确定所述调用请求对应的调用标识,子系统通过接口接收调用请求,所述调用请求携带有入口标识,确定所述调用请求对应的调用模式,其中,所述调用模式包括用户调用以及定时调用;
执行模式确定模块,用于根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,其中,所述事务执行模式包括响应优先模式和吞吐量优先模式;
事务执行模块,用于当所述事务执行模式为响应优先模式时,根据所述调用请求,执行事务;
流量整形模块,当所述事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述接口的流量整形方法。
本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述接口的流量整形方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的接口的流量整形方法中,针对分布式系统中的每个子系统,该子系统在通过接口接收调用请求时,可确定调用请求对应的调用标识,并根据所述调用标识,确定调用请求对应的调用模式。然后根据预设的调用模式和事务执行模式的对应关系,确定调用模式对应的事务执行模式,当事务执行模式为响应优先模式时,根据调用请求,执行事务。当该事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
从上述方法中可以看出,本方法可根据接口的调用请求对应的不同调用模式,区分需要响应优先处理的调用请求和需要吞吐量优先处理的调用请求,并对不同的调用请求进行不同处理,在合理利用分布式系统的系统资源的同时还可以提高系统中的各子系统协作处理业务的效率。
附图说明
此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:
图1为本说明书中一种接口的流量整形方法的流程示意图;
图2为本说明书提供的一种子系统的示意图;
图3为本说明书提供的一种子系统与其它系统协作处理任务的示意图;
图4为本说明书提供的一种子系统的示意图;
图5为本说明书提供的一种接口的流量整形装置的示意图;
图6为本说明书提供的对应于图1的电子设备的结构示意图。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
为了解决现有系统处理事务的整体效率较低的情况,本申请提供了一种接口的流量整形方法。
图1为本说明书中一种接口的流量整形方法的流程示意图,具体包括以下步骤:
S100:针对每个子系统,该子系统通过接口接收调用请求,确定所述调用请求对应的调用标识,并根据所述调用标识,确定所述调用请求对应的调用模式。
在本说明书中,该接口的流量整形方法应用于分布式系统中,用于对子系统接口接收的调用请求进行流量整形,以提高分布式系统业务执行效率。其中,该分布式系统中的各子系统提供的接口,按照预先约定接口规范设置,针对每个子系统,该子系统供外部调用的每个业务功能对应一个接口,可以通过该接口调用该业务功能的入口有多个。其中,通过不同入口调用该接口的调用请求携带有不同入口的调用标识,不同调用标识对应不同调用模式。
在本说明书中,调用模式至少包括:用户调用以及定时调用。其中,调用模式为用户调用则说明该调用请求的发起者为用户,调用模式为定时调用则说明该调用请求的发起者为系统中的定时任务。不同调用请求的发起者通过不同入口调用接口,不同入口对应不同的调用标识。在接口的设计阶段,可以通过哪些入口调用该接口已经是确定的。
由于往往用户发送的调用请求对应的任务对时效性要求较高,需要尽快执行,若任务未能及时执行,则有可能导致用户认为任务失败而进行重试,造成资源浪费,或者导致用户放弃执行任务,因此用户发送的调用请求是需要及时处理的调用请求。而子系统中的定时任务往往不需要立即执行,在时效性上要求较低,所以定时任务发送的调用请求是可以缓存并等待一段时间后再进行处理的调用请求。基于此,在后续步骤中子系统可以针对不同调用请求的发起者,根据各调用请求携带的调用标识确定该调用请求的调用模式,并采用不同的任务执行模式对各调用请求对应的任务进行处理。
在本说明书一个或多个实施例中,在子系统处理事务时,为了提高系统的整体执行效率,对于不同的调用请求,子系统需要根据接口接收到的调用请求的内容,确定适合该调用请求的事务执行模式,来执行该调用请求对应的事务,以实现接口的流量整形。但仅根据调用请求的内容无法直接确定该调用请求对应的事务执行模式,还需确定该调用请求对应的调用模式。
由于在接口的设计阶段,可以通过哪些入口调用该接口已经是确定的,且不同调用请求的发起者通过不同入口调用该接口,不同入口对应不同的调用标识。所以在子系统接收到服务的调用请求后,可以根据接收到的调用请求携带的调用标识,确定该调用请求的发起者,以确定相应的的调用模式。
S102:根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式。
在本说明书一个或多个实施例中,在确定了该调用请求对应的调用模式之后,可根据该调用模式确定该调用请求对应事务的事务执行模式。事务执行模式包括响应优先模式和吞吐量优先模式。其中,响应优先模式即以子系统能够快速响应调用请求、减少处理单个调用请求对应事务的耗时为目的事务执行模式,吞吐量优先模式即以子系统能够批量处理调用请求、一定时间内处理更多调用请求为目的事务执行模式。如步骤S100中所述,由于用户发送的调用请求对时效性的要求较高,而定时任务的调用请求对时效性要求低,因此调用模式和事务执行模式的对应关系包括:用户调用对应响应优先模式以及定时调用对应吞吐量优先模式。子系统可在当调用请求对应的调用模式为用户调用时,确定该调用模式对应的事务执行模式为响应优先模式,在当调用请求对应的调用模式为定时调用时,则确定该调用模式对应的事务执行模式为吞吐量优先模式。
S104:当所述事务执行模式为响应优先模式时,根据所述调用请求,执行事务。
在本说明书一个或多个实施例中,在子系统确定了调用请求对应事务的事务执行模式为响应优先模式时,则根据该调用请求包含的内容,直接执行该事务。在子系统执行该事务后,若该事务对应的业务流程结束,则确定调用请求对应的事务的执行结果,并将该事务的执行结果返回给该调用请求的发起者。
S106:当所述事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
在本说明书一个或多个实施例中,由于子系统接收到的定时任务发送的调用请求对时效性的要求较低,并且往往定时任务对应处理的数据量大,处理过程较为复杂,所以子系统在接收到定时任务发送的调用请求后,可以先将该调用请求缓存,再进行批量处理。另外,子系统收到的需要批量处理的调用请求可能会有重复,同样的数据可能被多次获取或者进行重复处理,将子系统收到的调用请求缓存后进行批量处理,可减少子系统的重复操作。
在本说明书中,定时任务可以是统计一段时间内子系统执行业务的数量或者业务金额的任务,也可以是定时向用户发送提示信息的任务。以子系统接收定时任务的调用请求的接口是获取商品详情的接口为例,请求获取的商品详情可以用于确定一定时间内该商品的销售数量、金额等内容。其中,子系统接收的每个调用请求各包含一个商品ID,在一段时间内,存在子系统通过获取商品详情的接口收到多个获取同一个商品详情的调用请求的情况,所以子系统需要处理的数据中会存在重复数据,因此,子系统可以将收到的获取相同数据的调用请求缓存后进行批量处理,来减少重复操作。
在本说明书一个或多个实施例中,子系统在确定了调用模式对应的事务执行模式为吞吐量优先模式的各调用请求时,可根据预设的等待策略,缓存各调用请求,直至已缓存的各调用请求满足预设条件,再将已缓存的各调用请求进行整合,并进行批量处理。
在本说明书一个或多个实施例中,预设的等待策略包括阈值等待策略,阈值等待策略对应的预设条件为缓存调用请求的数量达到数量上限。当子系统缓存的调用请求达到该数量上限,则视为符合阈值等待策略的预设条件,此时,子系统会将缓存的各调用请求集合成第一批量处理请求,然后对第一批量处理请求对应的事务进行批量处理。
在本说明书一个或多个实施例中,预设的等待策略还包括时间等待策略,时间等待策略对应的预设条件为缓存调用请求所等待的时间达到时间上限。当子系统缓存的调用请求达到该时间上限,则视为满足时间等待策略的预设条件,此时,子系统会将缓存的各调用请求集合成第二批量处理请求,然后对第二批量处理请求对应的事务进行批量处理。
在本说明书一个或多个实施例中,若子系统处理的调用请求的发起者为用户,且在处理该调用请求对应的事务后,该事务对应的业务流程结束,则确定调用请求对应的事务的执行结果,并将该事务的执行结果返回给该调用请求的发起者。若子系统处理的调用请求的发起者为定时任务,则在批量处理各调用请求对应的事务并得到一个批量处理结果后,将该批量处理结果根据调用标识拆分,确定各调用请求分别对应的事务的执行结果,并将各调用请求分别对应的事务的执行结果返回给该事务对应的调用请求的发起者。
图2为本说明书提供的一种子系统的示意图,图中展示了子系统中一个功能的接口接收调用请求以及对调用请求进行处理的过程,图中的各入口对应子系统的一个功能的接口。如图所示,入口1为用户发送的调用子系统接口的调用请求的入口,子系统在接收到用户发送的调用请求后,确定其调用模式为用户调用,并确定其事务执行模式为响应优先模式,然后直接根据该调用请求,执行该调用请求对应的事务。入口2为定时任务发送的调用子系统接口的调用请求的入口,子系统在接收到定时任务发送的调用请求后,确定其调用模式为定时调用,并确定其事务执行模式为吞吐量优先模式,然后先进行流量整形,再执行该调用请求对应的事务。
基于图1所示的接口的流量整形方法,子系统通过接口接收调用请求,确定调用请求对应的调用标识,并根据调用标识,确定调用请求对应的调用模式。然后根据预设的调用模式和事务执行模式的对应关系,确定调用模式对应的事务执行模式,当事务执行模式为响应优先模式时,根据调用请求,执行事务。当该事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
从上述方法中可以看出,本方法可根据接口的调用请求对应的不同调用模式,区分需要响应优先处理的调用请求和需要吞吐量优先处理的调用请求,并对不同的调用请求进行不同处理,在合理利用分布式系统的系统资源的同时还可以提高系统中的各子系统处理业务的效率。
另外,在本说明书一个或多个实施例中,调用请求的调用模式还包括系统间调用。
在分布式系统中,由于子系统对外提供服务的对象不同,所以子系统收到的调用请求的发起者也有差异,通过发送调用请求调用子系统接口的发起者可以是用户、定时任务,也有可能是其它系统。因此子系统接收到的调用请求对应的发起者可以包括三种:用户、定时任务以及其它系统。调用请求对应的调用模式除了用户调用和定时调用外,还包括系统间调用。其中,其它系统包括该分布式系统的其它子系统以及第三方系统。不论是其它子系统发送的调用请求还是第三方系统发送的调用,追溯到系统最顶层,其调用请求的发起者依然只有两种,即用户或定时任务。
所以,在本说明书步骤S102之前,在确定接口接收到的调用请求对应的调用模式为系统间调用后,可以根据该调用请求中携带的上下文内容,继续确定该调用请求的调用模式。
在本说明书一个或多个实施例中,由于分布式系统处理的任务较多,且一些任务较为复杂,存在需要子系统与其它系统协同执行任务的情况,所以子系统通过接口接收到的调用请求可能来自于其它系统。子系统接收的来自于其它系统的调用请求需遵守子系统的接口规范,并携带其它系统的上下文。
在确定接口接收到的调用请求对应的调用模式为系统间调用后,子系统则根据其它系统发送的调用请求中携带的上下文内容,确定其调用请求的顶层发起者。若确定顶层发起者为用户,则确定该调用请求的调用模式为用户调用,若确定顶层发起者为该其它系统的定时任务,则确定该调用请求的调用模式为定时调用。在进一步确定了该调用请求的调用模式后,子系统可根据执行该调用请求的线程的上下文中记录的调用模式,以及预设的调用模式和事务执行模式的对应关系,确定该调用模式对应的事务执行模式。
其中,顶层发起者为子系统与其它系统协作处理任务时,在该任务的任务流程中,第一个子系统处理的调用请求的发起者。以该调用请求的顶层发起者是用户为例,如图3所示,图3为本说明书提供的一种子系统与其它系统协作处理任务的示意图,图中可见,子系统C通过接口接收到子系统B发送的调用请求A,是用户向子系统B发送的调用请求,则该用户为该调用要求A的顶层发起者。
图4为本说明书提供的一种子系统的示意图,图中展示了一个子系统中一个功能的接口接收调用请求以及对调用请求进行处理的过程,图中的各入口对应子系统的一个功能的接口。如图所示,入口1为其它系统发送的调用子系统接口的调用请求的入口,子系统在接收到其它系统发送的调用请求后,确定其调用模式为系统间调用,然后根据调用请求中携带的上下文,确定其顶层发起者,并根据其顶层发起者进一步确定其调用模式,若子系统进一步确定其调用模式为用户调用,则确定其事务执行模式为响应优先模式,然后直接根据该调用请求,执行该调用请求对应的事务。若子系统进一步确定其调用模式为定时调用,则确定其事务执行模式为吞吐量优先模式,然后先进行流量整形,再执行该调用请求对应的事务。入口2为用户发送的调用子系统接口的调用请求的入口,子系统在接收到用户发送的调用请求后,确定其调用模式为用户调用,并确定其事务执行模式为响应优先模式,然后直接根据该调用请求,执行该调用请求对应的事务。入口3为定时任务发送的调用子系统接口的调用请求的入口,子系统在接收到定时任务发送的调用请求后,确定其调用模式为定时调用,并确定其事务执行模式为吞吐量优先模式,然后先进行流量整形,再执行该调用请求对应的事务。
另外,在本说明书一个或多个实施例中,在步骤S104或步骤S106之后,若子系统处理的调用请求的发起者为用户,且在处理该调用请求对应的事务,并确定该调用请求对应的任务的执行结果后,判断该调用请求的任务对应的业务流程是否结束,若该调用请求的任务对应的业务流程结束,则将该调用请求对应的事务的执行结果返回给该事务对应的调用请求的发起者。若该调用请求的任务对应的业务流程未结束,则根据RPC协议,按照业务逻辑将该执行结果以及携带有该调用请求的上下文发送至业务逻辑中的下一子系统,完成该任务对应的业务流程。若子系统处理的调用请求的发起者为定时任务,则在批量处理各调用请求对应的事务并得到一个批量处理结果后,将该批量处理结果根据调用标识拆分,确定各调用请求对应的事务的执行结果,并判断各事务对应的业务流程是否结束。对于业务流程结束的事务的执行结果,将该执行结果返回给该事务对应的调用请求的发起者。对于业务流程未结束的事务的执行结果,则根据RPC协议,按照业务逻辑将各执行结果以及携带有该执行结果对应的调用请求的上下文发送至业务逻辑中的下一子系统,完成该任务对应的业务流程。
可以看出,本方法可在子系统与其它系统协作处理业务时,避免对相同数据进行重复操作的同时合理利用分布式系统的系统资源,减少子系统的操作负担,提高各系统间的交互效率,并提高各系统协作处理业务的效率。
以上为本说明书的一个或多个实施例提供的接口的流量整形方法,基于同样的思路,本说明书还提供了相应的接口的流量整形装置,如图5所示。
图5为本说明书提供的一种接口的流量整形装置示意图,该装置包括:调用模式确定模块、执行模式确定模块、事务执行模块以及流量整形模块,其中:
调用模式确定模块200,其配置为用于针对每个子系统,该子系统通过接口接收调用请求,确定所述调用请求对应的调用标识,根据所述调用标识,确定所述调用请求对应的调用模式,其中,所述调用模式包括用户调用以及定时调用;
执行模式确定模块201,其配置为用于根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,其中,所述事务执行模式包括响应优先模式和吞吐量优先模式;
事务执行模块202,其配置为用于当所述事务执行模式为响应优先模式时,根据所述调用请求,执行事务;
流量整形模块203,其配置为当所述事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
可选地,所述执行模式确定模块201用于,当所述调用请求对应的调用模式为用户调用时,确定所述调用模式对应的事务执行模式为响应优先模式,当所述调用请求对应的调用模式为定时调用时,确定所述调用模式对应的事务执行模式为吞吐量优先模式。
可选地,当确定所述调用模式为系统间调用时,根据所述调用请求中携带的上下文内容,继续确定所述调用请求的调用模式。
可选地,执行模式确定模块201用于,根据线程的上下文中记录的调用模式,以及预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式。
可选地,确定所述调用请求对应的事务的执行结果,将所述事务的执行结果返回给所述调用请求的发起者。
可选地,确定所述调用请求对应的事务的执行结果,根据远程调用协议,按照业务逻辑发送所述执行结果以及携带有所述调用请求的上下文至业务逻辑中的下一子系统。
可选地,流量整形模块203用于,当符合阈值等待策略的预设条件时,将缓存的各调用请求集合成第一批量处理请求,以及对所述第一批量处理请求对应的事务进行批量处理,当符合时间等待策略的预设条件时,将缓存的各调用请求集合成第二批量处理请求,以及对所述第二批量处理请求对应的事务进行批量处理。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的接口的流量整形方法。
本说明书还提供了图6所示的电子设备的结构图示意。如图6所示,在硬件层面,该电子驾驶设备包括处理器、内部总线、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1提供的接口的流量整形方法。
当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

Claims (10)

1.一种接口的流量整形方法,其特征在于,针对分布式系统中的每个子系统,该子系统对外提供的每个业务功能对应一个接口以及多个入口,子系统通过接口接收调用请求,所述调用请求携带有入口标识,所述方法具体包括:
针对每个子系统,该子系统通过接口接收调用请求,确定所述调用请求对应的调用标识,根据所述调用标识,确定所述调用请求对应的调用模式,其中,所述调用模式包括用户调用以及定时调用;
根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,其中,所述事务执行模式包括响应优先模式和吞吐量优先模式;
当所述事务执行模式为响应优先模式时,根据所述调用请求,执行事务;
当所述事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
2.如权利要求1所述的方法,其特征在于,根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,具体包括:
当所述调用请求对应的调用模式为用户调用时,确定所述调用模式对应的事务执行模式为响应优先模式;
当所述调用请求对应的调用模式为定时调用时,确定所述调用模式对应的事务执行模式为吞吐量优先模式。
3.如权利要求1所述的方法,其特征在于,所述调用模式还包括系统间调用;
根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式之前,所述方法还包括:
当确定所述调用模式为系统间调用时,根据所述调用请求中携带的上下文内容,继续确定所述调用请求的调用模式。
4.如权利要求1所述的方法,其特征在于,将所述调用请求的调用模式记录在线程的上下文中;
根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,具体包括:
根据线程的上下文中记录的调用模式,以及预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述调用请求对应的事务的执行结果;
将所述事务的执行结果返回给所述调用请求的发起者。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述调用请求对应的事务的执行结果;
根据远程调用协议,按照业务逻辑发送所述执行结果以及携带有所述调用请求的上下文至业务逻辑中的下一子系统。
7.如权利要求1所述的方法,其特征在于,所述预设的等待策略包括阈值等待策略以及时间等待策略;
根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理,具体包括:
当符合阈值等待策略的预设条件时,将缓存的各调用请求集合成第一批量处理请求,以及对所述第一批量处理请求对应的事务进行批量处理;
当符合时间等待策略的预设条件时,将缓存的各调用请求集合成第二批量处理请求,以及对所述第二批量处理请求对应的事务进行批量处理。
8.一种接口的流量整形装置,其特征在于,针对分布式系统中的每个子系统,该子系统对外提供的每个业务功能对应一个接口以及多个入口,子系统通过接口接收调用请求,所述调用请求携带有入口标识,所述装置具体包括:
调用模式确定模块,用于针对每个子系统,该子系统通过接口接收调用请求,确定所述调用请求对应的调用标识,根据所述调用标识,确定所述调用请求对应的调用模式,其中,所述调用模式包括用户调用以及定时调用;
执行模式确定模块,用于根据预设的调用模式和事务执行模式的对应关系,确定所述调用模式对应的事务执行模式,其中,所述事务执行模式包括响应优先模式和吞吐量优先模式;
事务执行模块,用于当所述事务执行模式为响应优先模式时,根据所述调用请求,执行事务;
流量整形模块,当所述事务执行模式为吞吐量优先模式时,根据预设的等待策略,缓存所述调用请求,直至已缓存的各调用请求满足预设条件时,将已缓存的各调用请求进行整合,并进行批量处理。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1~7任一项所述的方法。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述权利要求1~7任一项所述的方法。
CN202011387037.6A 2020-12-01 2020-12-01 一种接口的流量整形方法、装置、存储介质及电子设备 Pending CN112583733A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011387037.6A CN112583733A (zh) 2020-12-01 2020-12-01 一种接口的流量整形方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011387037.6A CN112583733A (zh) 2020-12-01 2020-12-01 一种接口的流量整形方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN112583733A true CN112583733A (zh) 2021-03-30

Family

ID=75128137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011387037.6A Pending CN112583733A (zh) 2020-12-01 2020-12-01 一种接口的流量整形方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112583733A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0614139A2 (en) * 1993-03-04 1994-09-07 International Business Machines Corporation External procedure call for distributed processing environment
US20110093872A1 (en) * 2009-10-16 2011-04-21 Canon Kabushiki Kaisha Information processing system, information processing method and computer-readable storage medium
CN106998343A (zh) * 2016-01-26 2017-08-01 阿里巴巴集团控股有限公司 一种远程过程调用处理方法、装置及系统
US20180052720A1 (en) * 2016-08-18 2018-02-22 Crowdstrike, Inc. Tracing System Operations Across Remote Procedure Linkages to Identify Request Originators
CN111597019A (zh) * 2020-04-22 2020-08-28 深圳中兴网信科技有限公司 调用请求处理方法、装置、终端和计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0614139A2 (en) * 1993-03-04 1994-09-07 International Business Machines Corporation External procedure call for distributed processing environment
US20110093872A1 (en) * 2009-10-16 2011-04-21 Canon Kabushiki Kaisha Information processing system, information processing method and computer-readable storage medium
CN106998343A (zh) * 2016-01-26 2017-08-01 阿里巴巴集团控股有限公司 一种远程过程调用处理方法、装置及系统
US20180052720A1 (en) * 2016-08-18 2018-02-22 Crowdstrike, Inc. Tracing System Operations Across Remote Procedure Linkages to Identify Request Originators
CN111597019A (zh) * 2020-04-22 2020-08-28 深圳中兴网信科技有限公司 调用请求处理方法、装置、终端和计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN111756550B (zh) 一种区块链共识方法及装置
CN106899666B (zh) 一种针对业务标识的数据处理方法及装置
CN110223682B (zh) 一种语音指令仲裁方法和装置
CN109725989B (zh) 一种任务执行的方法及装置
CN107578338B (zh) 一种业务发布方法、装置及设备
CN108845876B (zh) 一种业务分配的方法及装置
CN111639278A (zh) 一种网页加载方法及装置
WO2023160289A1 (zh) 小程序的存储调用
CN111882317A (zh) 一种业务处理系统、可读存储介质以及电子设备
CN113079224A (zh) 一种账号绑定方法、装置、存储介质及电子设备
CN108647102B (zh) 异构系统的服务请求处理方法、装置和电子设备
CN111294377B (zh) 一种依赖关系的网络请求发送方法、终端装置及存储介质
CN111459573B (zh) 一种智能合约执行环境的启动方法以及装置
CN110022351B (zh) 一种业务请求的处理方法和装置
CN111949297A (zh) 一种区块链智能合约升级方法、装置及电子设备
CN108769152B (zh) 服务刷新策略注册、服务刷新请求方法、装置以及设备
CN111913792A (zh) 一种业务处理方法和装置
CN111078435A (zh) 业务处理方法、装置及电子设备
CN112764676B (zh) 一种资源分配系统及方法
CN112583733A (zh) 一种接口的流量整形方法、装置、存储介质及电子设备
CN115904785A (zh) 一种异常定位方法、装置、设备及可读存储介质
CN115396375A (zh) 一种业务处理方法、装置以及设备
CN114625410A (zh) 一种请求消息处理方法、装置及设备
CN113761400A (zh) 一种访问请求转发方法、装置及设备
CN111639931A (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: 20210330