CN108121608A - 一种队列调度方法以及节点设备 - Google Patents
一种队列调度方法以及节点设备 Download PDFInfo
- Publication number
- CN108121608A CN108121608A CN201611073268.3A CN201611073268A CN108121608A CN 108121608 A CN108121608 A CN 108121608A CN 201611073268 A CN201611073268 A CN 201611073268A CN 108121608 A CN108121608 A CN 108121608A
- Authority
- CN
- China
- Prior art keywords
- queue
- request information
- business request
- node device
- service
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
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
技术领域
本申请涉及服务化***领域,尤其涉及一种队列调度方法以及节点设备。
背景技术
服务化架构因为其组建独立部署、升级、模块解耦和其去中心化结构,在分布式架构中得到越来越多的应用。以微服务(Microservice)架构为例,微服务架构是一种服务化架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间相互协调、相互配合,为用户提供最终的服务。其中,每个服务运行在对应的独立的进程中。在微服务***中,微服务***包含多个计算机节点,组成一个集群。每个计算机节点包含一个或多个处理器,计算机节点内运行服务容器进程,服务容器进程包含多个调度线程,每个调度线程与每个处理器核进行绑核,调度线程运行调度器。集群中部署多个服务类型,每个服务类型可以对应一个或多个服务实例,每个服务实例与调度线程进行绑定。调度线程中的调度器调度与该调度线程对应服务实例接收的请求。
即一次业务操作通常要经过多个服务实例进行处理,存在较多的远程调用,业务的时延是服务***的重要指标。如图1所示,为现有技术中微服务***的一种业务消息调度示意图,定制队列根据优先级(英文全称:Custom Queue:缩写:CQ)对业务请求消息进行分类,分别***对应的优先级队列中。其中,CQ的优先级队列,可以按用户的定义分配各个优先级队列中,业务消息调度数量的比例。CQ调度算法按照优先级配比进行轮询调度(英文全称:Round-Robin,缩写:RR)调度。具体的,以存储业务场景下的调度过程为例,假设每个优先级配额(quota)大于4,假设内核一(core_1)的消息队列中有4个输出/输出(英文全称:Input/Output,缩写:IO)请求消息(IO_1、IO_2、IO_3以及IO_4、),则采用现有技术的调度方法,对应的调度顺序如图2所示,即每个微服务实例在对I/O请求消息进行处理时,需要IO请求消息进行排队,再根据RR算法对每个IO请求消息进行轮询调度,接着再送到下一个微服务实施例进行同样的排队处理,从而造成一个完整的IO请求消息处理时的时延过长。即现有技术中业务请求消息执行过程中每次微服务实例对业务请求消息进行处理需要对业务请求从新排队,从而导致业务请求的时延过长。
发明内容
本申请实施例提供了一种队列调度方法以及节点设备、可以使得业务请求消息被尽快执行,从而减少业务请求的时延过长。
有鉴于此,本申请实施例第一方面提出了一种队列调度方法,该队列调度方法主要包含以下流程:节点设备接收业务请求消息,节点设备确定业务请求消息是否属于当前调度线程所对应的服务实例;若是,则节点设备将业务请求消息添加入第一队列,第一队列用于接收当前调度线程所对应的服务实例的业务请求消息;若否,则节点设备将业务请求消息添加入第二队列,第一队列与第二队列为不同的队列,第一队列的调度优先级高于第二队列的调度优先级;节点设备按照调度优先级调度第一队列以及第二队列中的业务请求消息。
由此可见,在本申请实施例中,与现有技术相比,在业务请求消息执行过程中,根据业务请求消息是否属于当前调度线程所对应的服务实施例,将属于当前调度线程所对应的服务实施例的业务请求消息添加至第一队列,不属于当前调度线程所对应的服务实施例的请求消息添加至第二队列,对业务请求进行处理需要对业务请求不需要重新排队,优先调度第一队列中的业务请求消息,可以使得业务请求消息被尽快执行,从而减少业务请求的时延过长。
在一种可能的实现中,第一队列为无锁队列,即属于当前调度线程所对应的服务实例的单线程操作队列,由于无锁,可以有效地减少锁冲突次数,提升***的多核扩展性。
在一种可能的实现中,业务请求消息携带有标识信息,标识信息与调度线程相,节点设备确定业务请求消息是否属于当前调度线程所对应的服务实例具体是指:节点设备获取业务请求消息的标识信息;节点设备确定业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系;节点设备根据对应关系确定业务请求消息是否属于当前调度线程所对应的服务实例。即提出了一种确定业务请求消息是否为当前调度线程所对应的服务实例的方案,增强了方案的可实施性。
在一种可能的实现中,标识信息为业务请求消息的目的服务标识ID。即提出了一种根据业务请求消息的目的ID确定该业务请求消息是否为当前调度线程所对应的服务实例的方法。
本申请实施例提供第二方面提供了一种节点设备,该节点设备具有实现上述方法设计中节点设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
在一种可能的实现中,该节点设备包括:
接收模块,用于接收业务请求消息;
确定模块,用于确定业务请求消息是否属于当前调度线程所对应的服务实例;
添加模块,用于若确定模块确定业务请求消息是属于当前调度线程所对应的服务实例,则将业务请求消息添加入第一队列,第一队列用于接收当前调度线程所对应的服务实例的业务请求消息;
用于若确定模块确定业务请求消息不属于当前调度线程所对应的服务实例,则将业务请求消息添加入第二队列,第一队列与第二队列为不同的队列,第一队列的调度优先级高于第二队列的调度优先级;
调度模块,用于按照调度优先级调度第一队列以及第二队列中的业务请求消息。
在一种可能的实现中,第一队列为无锁队列。
在一种可能的实现中,业务请求消息携带有标识信息,标识信息与调度线程相对应,确定模块包括:
获取单元,用于获取业务请求消息的标识信息;
确定单元,用于确定获取单元获取的业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系,根据对应关系确定业务请求消息是否属于当前调度线程所对应的服务实例。
在一种可能的实现中,标识信息为业务请求消息的目的服务标识ID。
本申请实施例第三方面提供了一种计算机存储介质,该计算机存储介质中存储有程序代码,该程序代码用于指示执行上述第一方面的方法。
相较于现有技术,从以上技术方案可以看出,节点设备接收业务请求消息,节点设备确定业务请求消息是否属于当前调度线程所对应的服务实例;若是,则节点设备将业务请求消息添加入第一队列,第一队列用于接收当前调度线程所对应的服务实例的业务请求消息;若否,则节点设备将业务请求消息添加入第二队列,第一队列与第二队列为不同的队列,第一队列的调度优先级高于第二队列的调度优先级;节点设备按照调度优先级调度第一队列以及第二队列中的业务请求消息,由此可见,在本申请实施例中,与现有技术相比,在业务请求消息执行过程中,根据业务请求消息是否属于当前调度线程所对应的服务实施例,将属于当前调度线程所对应的服务实施例的业务请求消息添加至第一队列,不属于当前调度线程所对应的服务实施例的请求消息添加至第二队列,对业务请求进行处理需要对业务请求不需要重新排队,优先调度第一队列中的业务请求消息,可以使得业务请求消息被尽快执行,从而减少业务请求的时延过长。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中微服务***的一种业务消息调度示意图;
图2为现有技术中一种队列调度方法一个调度顺序示意图;
图3为本申请实施例中一种微服务架构一个示意图;
图4为本申请实施例一种队列调度方法一个实施例流程示意图;
图5为本申请实施例一种队列调度方法另一实施例流程示意图;
图6为消息入队模块执行过程示意图;
图7为本申请实施例一种队列调度方法一个调度顺序示意图;
图8为本申请实施例一种节点设备一个实施例结构示意图;
图9为本申请实施例一种节点设备另一实施例结构示意图。
具体实施方式
本申请实施例提供了一种队列调度方法以及节点设备、可以使得业务请求消息被尽快执行,从而减少业务请求的时延过长。。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请适用于服务化架构中,尤其适用于微服务架构***中,需要说明的是,本申请实施例中的节点设备是指服务化***中的计算机节点,通常一个服务化***包含多个计算机节点,组成一个集群。每个计算机节点包含一个或多个处理器,计算机节点内运行服务容器进程,服务容器进程包含多个调度线程,每个调度线程与每个单核处理器的内核,或者多核处理器中进行的内核进行绑核,调度线程与内核之间相对应,调度线程运行调度器。集群中部署多个服务类型,每个服务类型可以对应一个或多个服务实例,每个服务实例与调度线程进行绑定。调度线程的调度器调度与该调度线程对应服务实例接收的业务请求消息,即调度线程与业务请求消息相对应。
如图3所示,为本申请实施例中一种微服务架构一个示意图,包含节点设备A(NODEA)以及节点设备B(NODE B),节点设备A以及节点设备B中分别包含内核1(Core_1)、内核2(Core_2),其中内核1以及内核2具体可以是通过一个或多个处理器来实现,具体此处不做限定。如图3所示微服务架构中,部署多个了服务类型(Service Type),例如服务类型A、B、C、D、E、F、G;每个服务类型对应有多个服务实例,例如服务类型A对应服务实例A_1、A_2。需要说明的是,图3所示的微服务***架构在这里只是举例说明,并不对本微服务***构成限定,具体此处不限定。
与背景技术中描述的现有技术不同的是,在本申请实施例中,通过在原有优先级队列的基础上,添加用于接收当前调度线程,即当前的调度线程所对应的服务实例的业务请求消息的第一队列,当节点设备接收到业务请求消息时,会确定接收到的业务请求消息是否属于当前调度线程所对应的服务实例,如果确定出接收到的业务请求消息属于当前调度线程所对应的服务实例,则将该业务请求消息添加至第一队列,如果接收到的业务请求消息不属于当前调度线程所对应的服务实例,则将该业务请求消息添加至第二队列,在对业务请求消息进行调度的时候,优先调度第一队列中的业务请求消息,再调度第二队列中的业务请求消息。为了便于理解,下面将对本申请实施例进行一个详细的描述,请参阅图4,图4为本申请实施例一种队列调度方法一个实施例流程示意图:
101、节点设备接收业务请求消息。
在本申请实施例中,节点设备接收业务请求消息,例如,以存储业务场景为例,业务请求消息是指IO请求消息。
102、节点设备获取业务请求消息的标识信息;
在本申请实施例中,节点设备获取该业务请求消息的标识信息,其中该标识信息为与调度线程相对应的标识信息。以IO请求消息为例,该标识信息是指目的服务ID,只要能根据该标识信息确定出该业务请求消息属于哪个调度线程所对应的服务实例即可,具体此处不做限定。
103、节点设备确定业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系。
在本申请实施例中,当节点设备获取业务请求消息的标识信息后,确定业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系。应理解,业务请求消息的标识信息与服务实例一一对应,服务实例对应一个或多个调度线程,通过业务请求消息的标识信息可以确定该业务请求消息属于哪个调度线程所对应的服务实例。
104、节点设备根据对应关系确定业务请求消息是否属于当前调度线程所对应的服务实例,若是,则执行步骤105;若否,则执行步骤106。
在本申请实施例中,当节点设备确定了业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系后,根据该对应关系判断接收到业务请求消息是否属于当前调度线程所对应的服务实例,即根据业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系,确定该业务请求消息是否属于当前的调度线程所对应的服务实例,若是,则执行步骤105;若否,则执行步骤106。
105、节点设备将业务请求消息添加至第一队列。
在本申请实施例中,若节点设备根据上述对应关系确定业务请求消息属于当前调度线程所对应的服务实例,则将业务请求消息添加至第一队列,该第一队列为用于接收当前调度线程所对应的服务实例的业务请求消息。
106、节点设备根据将业务请求消息添加第二队列。
在本申请实施例中,若节点设备根据该对应关系判断业务请求消息不属于当前调度线程所对应的服务实例,则根据对应关系确定业务请求消息对应的调度线程所对应的服务实例,并将业务请求消息添加至第二队列,其中,第一队列与第二队列为不同的队列,第一队列的调度优先级高于第二队列的调度优先级。
107、节点设备按照调度优先级调度第一队列以及第二队列中的业务请求消息。
在本申请实施例中,节点设备按照调度优先级调度第一队列以及第二队列中的业务请求消息,即优先调度第一队列中的业务请求消息,再调度第二队列中的业务请求消息。
需要说明的是,在本发明的一些实施例中,第一队列为无锁队列,即为当前调度线程的本地无锁队列,这样,在对第一队列的业务请求消息进行调度的时候,由于无锁,可以有效地避免***锁冲突,减少锁冲突的次数,提升***的多核扩展性。
相较于现有技术,从以上技术方案可以看出,节点设备接收业务请求消息,节点设备确定业务请求消息是否属于当前调度线程所对应的服务实例;若是,则节点设备将业务请求消息添加入第一队列,第一队列用于接收当前调度线程所对应的服务实例的业务请求消息;若否,则节点设备将业务请求消息添加入第二队列,第一队列与第二队列为不同的队列,第一队列的调度优先级高于第二队列的调度优先级;节点设备按照调度优先级调度第一队列以及第二队列中的业务请求消息,由此可见,在本申请实施例中,与现有技术相比,在业务请求消息执行过程中,根据业务请求消息是否属于当前调度线程所对应的服务实施例,将属于当前调度线程所对应的服务实施例的业务请求消息添加至第一队列,不属于当前调度线程所对应的服务实施例的请求消息添加至第二队列,对业务请求进行处理需要对业务请求不需要重新排队,优先调度第一队列中的业务请求消息,可以使得业务请求消息被尽快执行,从而减少业务请求的时延过长。
为了便于理解,下面以存储业务场景为例对本申请实施例进行一个简单介绍:
如图5所示,在具体实施时,可以通过消息入队模块、消息接收队列以及消息调度模块来实现本申请实施例中的方法。如图6所示,图6为消息入队模块执行过程示意图,接收IO请求消息,其中,图中圆柱体标示一个IO请求消息(REQUEST),应理解IO请求消息格式如下:
Dest:标示请求目的(destination)服务ID(例如b_1);
From:标示源服务ID信息(例如a_1);
Prio:请求优先级(priority);
Len:请求消息体长度(length)。
消息入队模块根据b_1判断该IO请求消息是否属于当前调度线程所对应的服务实例,若是,则将该IO请求消息添加至第一队列,即当前调度线程的本地无锁队列,若否,则将其发送至目标进程,即根据该b_1查找b_1对应的调度线程,并将选择该对应的调度线程对应的优先级队列入队。应理解,通过消息入队模块,属于当前同一调度线程的IO请求消息都在本地无锁队列中。即与现有技术不同的是,消息队列分为优先级队列以及本地无锁队列,其中,优先级队列即是前述方法实施例中所描述的第二队列,本地无锁队列用于接收当前同一调度线程所对应的服务实例的IO请求消息,最后消息调度模块优先调度第一队列中的IO请求消息,后调度第二队列中的IO请求消息。
为了便于理解,下面针对现有技术以及本申请实施例对业务请求处理时延做个简单的对比,这里假设,假设每个优先级队列配额(quota)大于4,假设内核一(core_1)的消息队列中有4个IO请求消息(IO_1、IO_2、IO_3以及IO_4、),假设每个服务实例处理一次IO请求消息的时间为1ms,在图中用小方块表示,则采用本申请实施例后,对应的调度顺序如图7所示:
则4个IO请求消息的处理业务时延分别是:
IO_1时延:1ms×8=8ms;
IO_2时延:1ms×12=12ms;
IO_3时延:1ms×16=16ms;
IO_4时延:1ms×20=20ms。
则对IO请求消息的处理平均时延为:(8+12+16+20)ms/4=14ms。再看图2中现有技术的所采用的调度方法的调度顺序,则4个IO请求消息的处理业务时延分别为;
IO_1时延:1ms×26=26ms;
IO_2时延:1ms×27=27ms;
IO_3时延:1ms×28=28ms;
IO_4时延:1ms×29=29ms。
对IO请求消息的处理平均时延为:26+27+28+29)ms/4=27.5ms,由此可见,采用本申请实施例后,与现有技术相比,对业务请求消息的平均处理时延大大的减少了,即可以有效地降低了业务处理时延。另外需要说明的是,在本申请实施例中,通过加入用于接收同一调度线程所对应的服务实例的本地无锁队列,还可以有效地避免***锁冲突,减少***锁冲突次数,提升***的多核扩展性。
上面对申请实施例中的队列调度方法进行了描述,基于上述队列调度方法,下面对本申请实施例中的节点设备进行描述,请参阅图8,为本申请实施例一种节点设备一个实施例结构示意图,该节点设备包括接收模块101、确定模块102、添加模块103以及调度模块104。
其中,接收模块101用于接收业务请求消息;确定模块102用于确定接收模块101接收的业务请求消息是否属于当前调度线程所对应的服务实例;添加模块103用于若确定模块102确定接收模块101接收的业务请求消息属于当前调度线程所对应的服务实例,则将业务请求消息添加入第一队列,即该第一队列用于接收所述当前调度线程所对应的服务实例的业务请求消息;若否,则将业务请求消息添加入第二队列,其中,第一队列与所述第二队列为不同的队列,第一队列的调度优先级高于所述第二队列的调度优先级;调度模块104用于按照调度优先级调度第一队列以及第二队列中的业务请求消息,即调度模块104优先调度第一队列中的业务请求消息,后调度第二队列中的业务请求消息。
在一种可能的实现中,第一队列为无锁队列。
在一种可能的实现中,业务请求消息携带有标识信息,标识信息与调度线程相对应,确定模块102包括:
获取单元1021,用于获取业务请求消息的标识信息;
确定单元1022,用于获取单元1021获取的确定业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系,根据对应关系判断业务请求消息是否属于当前调度线程所对应的服务实例。
在一种可能的实现中,标识信息为业务请求消息的目的服务ID。
由此可见,本发明实施例提出了一种节点设备,该节点设备接收业务请求消息,确定业务请求消息是否属于当前调度线程所对应的服务实例;若是,则节点设备将业务请求消息添加入第一队列,第一队列用于接收当前调度线程所对应的服务实例的业务请求消息;若否,则节点设备将业务请求消息添加入第二队列,第一队列与第二队列为不同的队列,第一队列的调度优先级高于第二队列的调度优先级;节点设备按照调度优先级调度第一队列以及第二队列中的业务请求消息。与现有技术相比,在业务请求消息执行过程中,根据业务请求消息是否属于当前调度线程所对应的服务实施例,将属于当前调度线程所对应的服务实施例的业务请求消息添加至第一队列,不属于当前调度线程所对应的服务实施例的请求消息添加至第二队列,对业务请求进行处理需要对业务请求不需要重新排队,优先调度第一队列中的业务请求消息,可以使得业务请求消息被尽快执行,从而减少业务请求的时延过长。
上面从模块化功能实体的角度对本申请实施例中的节点设备进行描述,下面从硬件处理的角度对本申请实施例中的节点设备进行描述,请参阅图9,本申请实施例提供的一种节点设备的另一实施例结构示意图,该节点设备200包括处理器201、存储器202、发射器203、接收器204。其中,处理器201、存储器202、发射器203以及接收器204之间通过总线205相互连接,其中,需要说明的是,该处理器201可以是指单核处理器,或者是多个单核处理器,具体此处不做限定。
具体的,其中,处理器201可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片,具体可以是专用集成电路(英文全称:application-specificintegrated circuit,缩写:ASIC),可编程逻辑器(英文:programmable logic device,缩写:PLD)或其组合。另外PLD可以是复杂可编程逻辑器件(英文全称:complex programmablelogic device,缩写:CPLD),现场可编程逻辑门阵列(英文全称:field-programmable gatearray,缩写:FPGA),通用阵列逻辑(英文全称:generic array logic,缩写:GAL)或其任意组合,在本申请中不做任何限定。
存储器202可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器还可以包括上述种类的存储器的组合。
总线205可以是外设部件互连标准(英文:peripheral component interconnect,缩写:PCI)总线或扩展工业标准结构(英文:extended industry standard architecture,缩写:EISA)总线等。所述总线还可以分为地址总线、数据总线、控制总线等。为便于表示,图9仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,发射器203用于发送上述对应方法实施例中节点设备所用到的指令或者数据。其中,接收器204用于接收上述对应方法实施例中对应节点设备所接收到的指令或者数据,如用于接收业务请求消息。
存储器202可以存储程序代码206,还可以存储上述方法实施例中节点设备所用到的数据207,例如数据207可以是指上述方法实施例中的调度线程所对应的服务实例与业务请求消息之间的对应关系等信息。处理器201可以调用该存储器中存储的程序代码206,执行上述方法实施例中对应的步骤,使得最终节点设备可以实现上述方法实施例中节点设备的行为或者功能。
需要说明的是,本申请实施例中由节点设备以及用户设备所执行的步骤或者功能,具体可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,模块和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (8)
1.一种队列调度方法,其特征在于,包括:
节点设备接收业务请求消息;
所述节点设备确定所述业务请求消息是否属于当前调度线程所对应的服务实例;
若是,则所述节点设备将所述业务请求消息添加入第一队列,所述第一队列用于接收所述当前调度线程所对应的服务实例的业务请求消息;若否,则所述节点设备将所述业务请求消息添加入第二队列,所述第一队列与所述第二队列为不同的队列,所述第一队列的调度优先级高于所述第二队列的调度优先级;
所述节点设备按照调度优先级调度所述第一队列以及第二队列中的业务请求消息。
2.根据权利要求1所述的方法,其特征在于,所述第一队列为无锁队列。
3.根据权利要求2所述的方法,其特征在于,所述业务请求消息携带有标识信息,标识信息与调度线程相对应,所述节点设备确定所述业务请求消息是否属于当前调度线程所对应的服务实例,包括:
所述节点设备获取所述业务请求消息的标识信息;
所述节点设备确定所述业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系;
所述节点设备根据所述对应关系确定所述业务请求消息是否属于所述当前调度线程所对应的服务实例。
4.根据权利要求2或3所述的方法,其特征在于,所述标识信息为所述业务请求消息的目的服务标识ID。
5.一种节点设备,其特征在于,包括:
接收模块,用于接收业务请求消息;
确定模块,用于确定所述业务请求消息是否属于当前调度线程所对应的服务实例;
添加模块,用于若所述确定模块确定所述业务请求消息是属于当前调度线程所对应的服务实例,则将所述业务请求消息添加入第一队列,所述第一队列用于接收所述当前调度线程所对应的服务实例的业务请求消息;
用于若所述确定模块确定所述业务请求消息不属于当前调度线程所对应的服务实例,则将所述业务请求消息添加入第二队列,所述第一队列与所述第二队列为不同的队列,所述第一队列的调度优先级高于所述第二队列的调度优先级;
调度模块,用于按照调度优先级调度所述第一队列以及第二队列中的业务请求消息。
6.根据权利要求5所述的节点设备,其特征在于,所述第一队列为无锁队列。
7.根据权利要求6所述的节点设备,其特征在于,所述业务请求消息携带有标识信息,标识信息与调度线程相对应,所述确定模块包括:
获取单元,用于获取所述业务请求消息的标识信息;
确定单元,用于确定所述获取单元获取的所述业务请求消息的标识信息与调度线程所对应的服务实例之间的对应关系,根据所述对应关系确定所述业务请求消息是否属于所述当前调度线程所对应的服务实例。
8.根据权利要求6或7所述的节点设备,其特征在于,所述标识信息为所述业务请求消息的目的服务标识ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073268.3A CN108121608A (zh) | 2016-11-29 | 2016-11-29 | 一种队列调度方法以及节点设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073268.3A CN108121608A (zh) | 2016-11-29 | 2016-11-29 | 一种队列调度方法以及节点设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108121608A true CN108121608A (zh) | 2018-06-05 |
Family
ID=62225705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611073268.3A Pending CN108121608A (zh) | 2016-11-29 | 2016-11-29 | 一种队列调度方法以及节点设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121608A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408207A (zh) * | 2018-09-20 | 2019-03-01 | 北京小米移动软件有限公司 | 微服务访问控制方法、装置及存储介质 |
CN109407922A (zh) * | 2018-09-30 | 2019-03-01 | 武汉斗鱼网络科技有限公司 | 一种图标显示的控制方法、装置、设备及介质 |
CN109445942A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种心跳消息的处理方法及装置 |
CN109491801A (zh) * | 2018-09-27 | 2019-03-19 | 平安科技(深圳)有限公司 | 微服务访问调度方法、装置、介质及电子设备 |
CN111399994A (zh) * | 2019-11-27 | 2020-07-10 | 杭州海康威视***技术有限公司 | 请求调度方法、装置、电子设备及存储介质 |
CN111831436A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN111831432A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN112905318A (zh) * | 2021-02-04 | 2021-06-04 | 方新 | 一种基于消息优先级队列分布式交换网元调用方法及*** |
CN113313600A (zh) * | 2020-02-26 | 2021-08-27 | 京东数字科技控股股份有限公司 | 消息的处理方法、装置及***、存储介质、电子装置 |
CN113515391A (zh) * | 2021-05-14 | 2021-10-19 | 北京字节跳动网络技术有限公司 | 消息处理的方法、装置、电子设备和计算机可读存储介质 |
WO2022033037A1 (zh) * | 2020-08-13 | 2022-02-17 | 华为技术有限公司 | 一种消息管理的方法、装置及去服务器化*** |
CN114281514A (zh) * | 2022-03-08 | 2022-04-05 | 南京赛宁信息技术有限公司 | 一种靶场环境中多级队列场景回收方法及*** |
CN114915663A (zh) * | 2022-03-21 | 2022-08-16 | 北京沃东天骏信息技术有限公司 | 请求响应方法、装置、***、电子设备和介质 |
CN117406936A (zh) * | 2023-12-14 | 2024-01-16 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
-
2016
- 2016-11-29 CN CN201611073268.3A patent/CN108121608A/zh active Pending
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408207B (zh) * | 2018-09-20 | 2021-10-22 | 北京小米移动软件有限公司 | 微服务访问控制方法、装置及存储介质 |
CN109408207A (zh) * | 2018-09-20 | 2019-03-01 | 北京小米移动软件有限公司 | 微服务访问控制方法、装置及存储介质 |
CN109491801A (zh) * | 2018-09-27 | 2019-03-19 | 平安科技(深圳)有限公司 | 微服务访问调度方法、装置、介质及电子设备 |
CN109491801B (zh) * | 2018-09-27 | 2024-06-25 | 平安科技(深圳)有限公司 | 微服务访问调度方法、装置、介质及电子设备 |
CN109407922A (zh) * | 2018-09-30 | 2019-03-01 | 武汉斗鱼网络科技有限公司 | 一种图标显示的控制方法、装置、设备及介质 |
CN109445942A (zh) * | 2018-10-22 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种心跳消息的处理方法及装置 |
CN111399994A (zh) * | 2019-11-27 | 2020-07-10 | 杭州海康威视***技术有限公司 | 请求调度方法、装置、电子设备及存储介质 |
CN111399994B (zh) * | 2019-11-27 | 2023-10-10 | 杭州海康威视***技术有限公司 | 请求调度方法、装置、电子设备及存储介质 |
CN113313600B (zh) * | 2020-02-26 | 2024-05-17 | 京东科技控股股份有限公司 | 消息的处理方法、装置及***、存储介质、电子装置 |
CN113313600A (zh) * | 2020-02-26 | 2021-08-27 | 京东数字科技控股股份有限公司 | 消息的处理方法、装置及***、存储介质、电子装置 |
CN111831436A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN111831432B (zh) * | 2020-07-01 | 2023-06-16 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
CN111831432A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | Io请求的调度方法、装置、存储介质及电子设备 |
WO2022033037A1 (zh) * | 2020-08-13 | 2022-02-17 | 华为技术有限公司 | 一种消息管理的方法、装置及去服务器化*** |
CN112905318A (zh) * | 2021-02-04 | 2021-06-04 | 方新 | 一种基于消息优先级队列分布式交换网元调用方法及*** |
CN113515391A (zh) * | 2021-05-14 | 2021-10-19 | 北京字节跳动网络技术有限公司 | 消息处理的方法、装置、电子设备和计算机可读存储介质 |
CN114281514A (zh) * | 2022-03-08 | 2022-04-05 | 南京赛宁信息技术有限公司 | 一种靶场环境中多级队列场景回收方法及*** |
CN114281514B (zh) * | 2022-03-08 | 2022-05-24 | 南京赛宁信息技术有限公司 | 一种靶场环境中多级队列场景回收方法及*** |
CN114915663A (zh) * | 2022-03-21 | 2022-08-16 | 北京沃东天骏信息技术有限公司 | 请求响应方法、装置、***、电子设备和介质 |
CN117406936A (zh) * | 2023-12-14 | 2024-01-16 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
CN117406936B (zh) * | 2023-12-14 | 2024-04-05 | 成都泛联智存科技有限公司 | Io请求调度方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108121608A (zh) | 一种队列调度方法以及节点设备 | |
CN106330576B (zh) | 容器化微服务自动伸缩及迁移调度的方法、***和设备 | |
CN105721535B (zh) | 用于对服务功能链中的服务功能进行并行处理的计算设备、方法以及机器可读存储介质 | |
CN104885407A (zh) | 一种网络功能虚拟化nfv故障管理装置、设备及方法 | |
US9262241B2 (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
CN110380992A (zh) | 报文处理方法、装置及网络流量采集设备 | |
US20230042747A1 (en) | Message Processing Method and Device, Storage Medium, and Electronic Device | |
CN110213380A (zh) | 一种消息推送方法、装置、计算机设备及存储介质 | |
CN110008173A (zh) | 一种数据存储的方法及装置 | |
CN114710571B (zh) | 数据包处理*** | |
CN108418752A (zh) | 一种聚合组的创建方法和装置 | |
CN108092784A (zh) | 一种创建群组的方法、终端及计算机可读介质 | |
CN105493444A (zh) | 一种网络功能虚拟化nfv故障管理装置、设备及方法 | |
TW501024B (en) | Method and apparatus for customizing and forwarding parameters in a network processor | |
CN106341440A (zh) | 一种数据更新方法和装置 | |
CN106685708A (zh) | 一种服务关系的确定方法、装置及*** | |
CN107086960A (zh) | 一种报文传输方法和装置 | |
WO2023071616A1 (zh) | 业务处理的方法、装置、电子设备及介质 | |
CN111190963A (zh) | 一种区块链应用后端*** | |
CN114897532A (zh) | 操作日志处理方法、***、装置、设备和存储介质 | |
CN108595270A (zh) | 一种内存资源的回收方法及装置 | |
CN105812203B (zh) | 一种请求消息处理方法及设备 | |
CN115080771A (zh) | 基于人工智能的数据处理方法及装置、介质、网关设备 | |
CN107920035A (zh) | 被设计用于确定***换式以太网的处理器 | |
CN106469168B (zh) | 数据集成***中多类型数据处理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180605 |