CN112054923B - 业务请求检测方法、设备及介质 - Google Patents
业务请求检测方法、设备及介质 Download PDFInfo
- Publication number
- CN112054923B CN112054923B CN202010858849.8A CN202010858849A CN112054923B CN 112054923 B CN112054923 B CN 112054923B CN 202010858849 A CN202010858849 A CN 202010858849A CN 112054923 B CN112054923 B CN 112054923B
- Authority
- CN
- China
- Prior art keywords
- scheduling
- service request
- server
- target server
- indication information
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
- H04L12/4015—Bus networks involving priority mechanisms by scheduling the transmission of messages at the communication node
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及云技术领域,尤其涉及一种业务请求检测方法、设备及介质,该方法可应用于内容分发网络中,该方法包括:分别从各个第一业务请求中携带的调度参数中,获取各个第一业务请求的调度次序指示信息;每个第一业务请求的调度参数是客户端从调度服务器的调度响应中获得的,调度次序指示信息用于指示调度服务器调度业务请求对应的目标服务器的次序;根据已经获得的调度次序指示信息,获得第二业务请求的调度次序指示信息;将第二业务请求的调度次序指示信息发送给决策服务器,该方法通过目标服务器检测并上报未达到的业务请求的相关信息,减少业务请求检测过程中的存储占用及搜索开销等。
Description
技术领域
本申请涉及云技术领域,尤其涉及网络调度技术领域,提供一种业务请求检测方法、设备及介质。
背景技术
在内容分发网络(Content Delivery Network,CDN)中,决策服务器可以根据调度服务器调度各个目标服务器的情况,以及各目标服务器处理业务请求的情况,调整或确定对应的调度决策,调度决策例如禁止调度某个目标服务器等。
目前,决策服务器通常是根据各目标服务器的日志和各调度服务器的日志,进而确定各目标服务器对业务请求的处理情况,但该方式中决策服务器需存储大量的日志,并需花费大量时间对存储的日志进行搜索处理。可见,目前这种检测业务请求的方式存储占用高、且搜索开销大。
发明内容
本申请实施例提供一种业务请求检测方法、设备及介质,用于减少存储占用开销和搜索开销。
一方面,提供一种业务请求检测方法,应用于目标服务器中,所述方法包括:
分别从各个第一业务请求中携带的调度参数中,获取各个第一业务请求的调度次序指示信息;其中,各个第一业务请求是从各个客户端获得的,每个第一业务请求的调度参数是客户端从调度服务器的调度响应中获得的,调度次序指示信息用于指示调度服务器调度业务请求对应的目标服务器的次序;
根据已经获得的调度次序指示信息,获得第二业务请求的调度次序指示信息;其中,第二业务请求是指未达到的业务请求;
将第二业务请求的调度次序指示信息发送给决策服务器,以使所述决策服务器根据所述第二业务请求的调度次序指示信息,确定未达到目标服务器的第二业务请求。
一方面,提供一种业务请求检测方法,应用于调度服务器中,所述方法包括:
分别接收各个客户端的调度请求,确定为各个客户端调度的目标服务器;
获得各个目标服务器对应的调度参数;其中,每个调度参数包括调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序;
分别向各个客户端发送携带有对应目标服务器的调度参数的调度响应,以使各个客户端分别向对应的目标服务器发送携带有调度参数的业务请求,以使各个目标服务器根据携带有调度参数的第一业务请求,分别获得第二业务请求的调度次序指示信息,并分别将获得第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收的业务请求,第二业务请求是指未达到目标服务器的业务请求。
一方面,提供一种业务请求检测方法,应用于决策服务器中,所述方法包括:
接收各个目标服务器发送的第二业务请求的调度次序指示信息;其中,每个目标服务器的第二业务请求的调度次序指示信息是根据接收到的客户端的第一业务请求携带的调度参数获得的,每个第一业务请求携带的调度参数是客户端在接收到对应的调度服务器发送的调度响应后获得的,每个调度参数包括业务请求对应的调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序,第二业务请求是指未达到目标服务器的业务请求;
分别根据各个第二业务请求的调度次序指示信息,确定未达到各个目标服务器的业务请求。
一方面,提供一种业务请求检测方法,应用于客户端中,所述方法包括:
向调度服务器发送调度请求,接收调度服务器发送的调度响应;其中,所述调度响应携带为所述客户端调度的目标服务器的地址信息和所述目标服务器对应的调度参数,所述调度参数包括调度次序指示信息,所述调度次序指示信息用于表示调度服务器本次调度所述目标服务器的次序;
根据所述地址信息,向所述目标服务器发送携带所述调度参数业务请求,以使所述目标服务器根据第一业务请求中携带的所述调度参数,生成第二业务请求的调度次序指示信息,并将第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收到的业务请求,第二业务请求是指未达到目标服务器的业务请求。
本申请实施例提供一种业务请求检测装置,该装置包括:
获取模块,用于分别从各个第一业务请求中携带的调度参数中,获取各个第一业务请求的调度次序指示信息;其中,各个第一业务请求是从各个客户端获得的,每个第一业务请求的调度参数是客户端从调度服务器的调度响应中获得的,调度次序指示信息用于指示调度服务器调度业务请求对应的目标服务器的次序;
获得模块,用于根据已经获得的调度次序指示信息,获得第二业务请求的调度次序指示信息;其中,第二业务请求是指未达到的业务请求;
发送模块,用于将第二业务请求的调度次序指示信息发送给决策服务器,以使所述决策服务器根据所述第二业务请求的调度次序指示信息,确定未达到目标服务器的第二业务请求。
在一种可能的实施例中,所述获得模块具体用于:
缓存在当前时刻之前的预设时长内的各个第一业务请求;
根据预设时长各个第一业务请求中的调度次序指示信息,确定超过所述预设时长仍未达到的第二业务请求所对应的调度次序指示信息。
在一种可能的实施例中,所述目标服务器缓存有数组和第一队列,所述数组包括多个调度次序,以及每个调度次序对应的标志位,标志位用于表示调度次序对应的业务请求是否达到所述目标服务器,所述第一队列用于缓存所述数组在各单位时间写入已被置位的最大调度次序,写满所述第一队列所需的时长为所述预设时长;以及,所述获得模块具体用于:
根据各个第一业务请求中的调度次序指示信息,置位数组中第一业务请求所指示的调度次序的标志位;
根据单位时间内所述数组中已被置位的最大调度次序,对所述第一队列进行写入操作;
若确定所述第一队列已满,则将指针移动至第一队列的队头元素,并在指针移动过程中,检测各调度次序是否被置位,确定未被置位的调度次序。
在一种可能的实施例中,各个第一业务请求的调度参数还携带调度服务器的标识信息,所述目标服务器缓存有每个调度服务器的数组;所述获得模块具体用于:分别根据各个第一业务请求中对应的调度服务器的标识信息,确定各个第一业务请求对应的调度服务器;
根据各个第一业务请求所指示的调度次序,分别对各个第一业务请求对应数组中的调度次序进行置位。
本申请实施例提供一种业务请求检测装置,该装置包括:
接收模块,用于分别接收各个客户端的调度请求;
确定模块,用于确定为各个客户端调度的目标服务器;
获得模块,用于获得各个目标服务器对应的调度参数;其中,每个调度参数包括调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序;
发送模块,用于分别向各个客户端发送携带有对应目标服务器的调度参数的调度响应,以使各个客户端分别向对应的目标服务器发送携带有调度参数的业务请求,以使各个目标服务器根据携带有调度参数的第一业务请求,分别获得第二业务请求的调度次序指示信息,并分别将获得第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收的业务请求,第二业务请求是指未达到目标服务器的业务请求。
在一种可能的实施例中,所述获得模块具体通过如下方式获得任一目标服务器的调度参数:
若存储有所述任一目标服务器的调度参数,则更新已存储的调度参数中的调度次序指示信息;
若未存储所述任一目标服务器的调度参数,则生成针对所述任一目标服务器进行调度的调度标识,并根据所述调度标识和初始调度次序指示信息,生成所述任一目标服务器的调度参数。
在一种可能的实施例中,所述发送模块还用于:
将各个目标服务器携带有对应的调度参数的调度信息发送给决策服务器,以使所述决策服务器分别根据各个目标服务器的调度信息和对应目标服务器第二业务请求的调度次序指示信息,确定各个目标服务器的业务请求达到率。
本申请实施例提供一种业务请求检测装置,该装置包括:
接收模块,用于接收各个目标服务器发送的第二业务请求的调度次序指示信息;其中,每个目标服务器的第二业务请求的调度次序指示信息是根据接收到的客户端的第一业务请求携带的调度参数获得的,每个第一业务请求携带的调度参数是客户端在接收到对应的调度服务器发送的调度响应后获得的,每个调度参数包括业务请求对应的调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序,第二业务请求是指未达到目标服务器的业务请求;
确定模块,用于分别根据各个第二业务请求的调度次序指示信息,确定未达到各个目标服务器的业务请求。
在一种可能的实施例中,所述接收模块,还用于接收各个调度服务器发送的调度信息;其中,每个调度信息包括对应目标服务器的调度参数;
所述确定模块,还用于分别根据各个调度服务器发送的调度参数,以及各个目标服务器的第二业务请求,确定各个目标服务器的业务请求达到率;
所述确定模块,还用于分别根据各个业务请求达到率,确定各个目标服务器对应的调度决策。
在一种可能的实施例中,每个调度信息还包括调度参数对应的客户端的标识信息;所述确定模块还用于:
分别根据各个客户端的标识信息,检测各个客户端关联的第二业务请求;
分别根据各个客户端关联的第二业务请求,以及各个调度服务器发送的调度参数,确定各个客户端的业务请求达到率;
分别根据各个客户端的业务请求达到率,确定各个客户端对应的调度决策。
在一种可能的实施例中,所述决策服务器缓存有每个调度服务器对应的第二队列,每个第二队列缓存有在每个单位时间内从对应调度服务器获得的调度参数所指示的最大调度次序,写满所述第二队列的时长为预设时长;以及,所述装置还包括删除模块和写入模块,其中:
所述写入模块,用于分别根据单位时间内获得的各个调度服务器对应的最大调度次序,对调度服务器对应的第二队列进行写入操作;
所述删除模块,用于若确定第二队列已满,删除调度次序小于第二队列的队头元素对应的客户端的标识信息。
本申请实施例提供一种业务请求检测装置,该装置包括:
发送模块,用于向调度服务器发送调度请求;
接收模块,用于接收调度服务器发送的调度响应;其中,所述调度响应携带为所述客户端调度的目标服务器的地址信息和所述目标服务器对应的调度参数,所述调度参数包括调度次序指示信息,所述调度次序指示信息用于表示调度服务器本次调度所述目标服务器的次序;
所述发送模块,还用于根据所述地址信息,向所述目标服务器发送携带所述调度参数业务请求,以使所述目标服务器根据第一业务请求中携带的所述调度参数,生成第二业务请求的调度次序指示信息,并将第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收到的业务请求,第二业务请求是指未达到目标服务器的业务请求。
本申请实施例提供一种计算机设备,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如前文论述的任一项业务请求检测方法。
本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如前文论述的任一项业务请求检测方法。
由于本申请实施例采用上述技术方案,至少具有如下技术效果:
本申请实施例中,在调度服务器反馈客户端的调度响应中携带了为客户端分配的目标服务器的调度次序指示信息,客户端向目标服务器发送业务请求中也携带了该调度次序指示信息,从而使得目标服务器可以根据已接收到的业务请求,确定没有达到的业务请求的调度次序,并将其上报至决策服务器,决策服务器可以直接确定未达到目标服务器的业务请求,无需通过目标服务器的大量日志确定未达到目标服务器的业务请求,降低了决策服务器的存储开销,以及减少了决策服务器的搜索日志的搜索开销等,使得检测业务请求的过程更简单高效。且,由于决策服务器的处理时长更短,因此减少了检测业务请求的时延。
附图说明
图1A为本申请实施例适用的直通调度的***示意图;
图1B为本申请实施例提供的图1所示中各个设备的部署示意图;
图2A为本申请实施例适用的302调度的***示意图;
图2B为本申请实施例提供的图3所示中各个设备的部署示意图;
图3为本申请实施例提供的图1B中各个设备之间的交互过程图;
图4为本申请实施例提供的生成调度参数的过程示意图;
图5为本申请实施例提供的生成调度参数的一种结构示例图;
图6为本申请实施例提供的检测未达到业务请求的调度次序的过程示意图;
图7为本申请实施例提供的一种置位数组中标志位的示意图;
图8为本申请实施例提供的写入第一队列的示例图;
图9为本申请实施例提供的检测各度序数是否被置位的过程示意图;
图10为本申请实施例提供的图2B中各个设备之间的交互过程图;
图11为本申请实施例提供的一种业务请求检测装置的结构示意图一;
图12为本申请实施例提供的一种业务请求检测装置的结构示意图二;
图13为本申请实施例提供的一种业务请求检测装置的结构示意图三;
图14为本申请实施例提供的一种业务请求检测装置的结构示意图四;
图15为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了更好的理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
为了便于本领域技术人员更好地理解本申请的技术方案,下面对本申请涉及的名词进行介绍。
云技术(Cloud technology):是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,均可通过云计算来实现。
云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。本申请实施例可以应用于基于云存储实现的内容分发网络中的资源调度,例如目标服务器基于云存储技术存储有客户端所需的资源,客户端可以通过调度服务器请求对应的目标服务器为其提供内容服务。
内容分发网络(Content Delivery Network,CDN):是指一种透过互联网互相连接的电脑网络***,利用最靠近用户的服务器用户服务,以更快、更可靠地将音乐、图片、影片、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。
业务请求:是指客户端向目标服务器发送的用于请求提供业务服务的请求。本申请为了便于描述,将目标服务器已接收到的业务请求称为第一业务请求,第一业务请求又可以称为达到业务请求。理论客户端应该向目标服务器发送的业务请求,但因其他原因目标服务器未达到目标服务器,这一类业务请求可以称为第二业务请求,第二业务请求又可以称为未达到业务请求、或不可达业务请求。
调度参数:是指调度服务器调度目标服务器所对应的调度参数。调度参数包括调度次序指示信息。调度次序指示信息用于指示调度服务器调度目标服务器的次序,例如第一次调度、第二次调度等。调度次序指示信息可以是调度次序本身,或者用于间接指示调度次序的信息。当调度次序发生变化时,调度次序指示信息所指示的调度次序也不同。调度参数还包括调度服务器的标识信息(Dispatcher Identification,Dispatcher ID)或调度标识(seq ID)中的一种或两种。Dispatcher ID例如可以采用调度服务器的IP地址,seq ID为表示调度过程的唯一标识,具体可以根据时间戳和预设算法生成。当目标服务器有多个时,每个目标服务器对应各自的调度参数。当调度服务器包括多个时,每个调度服务器可以维护各个目标服务器对应的调度参数。
下面对本申请实施例的设计思想进行介绍。
调度服务器用于为客户端调度目标服务器,客户端访问目标服务器以使用目标服务器为其提供服务。在服务的过程中,决策服务器需根据目标服务器处理业务请求的情况,调整目标服务器对应的调度决策,使得目标服务器能够为客户端提供更好的服务。
为此,在相关技术中决策服务器会收集每个目标服务器的所有达到业务请求对应的访问日志,并收集调度服务器的调度记录。并根据每个调度记录,定位到其对应的目标服务器,进而确定目标服务器对应的业务请求的达到情况。而这种检测业务请求的方式,存在如下缺点:
由于决策服务器需记录每个目标服务器的访问日志,导致决策服务器的存储占用高。另外,决策服务器对于每个调度请求都要进行搜索,从而将调度服务器上报的调度记录匹配到对应的访问日志。且在搜索过程中各个访问日志可能会被多次重复搜索。再者,访问日志量及调度请求的数量是难以把控的,导致决策服务器需要花费大量时间进行处理,导致检测业务请求的时延至少在分钟级以上。而检测调度请求的实时性不足导致无法及时地对目标服务器进行正确的调度决策,进而可能影响用户的使用。
鉴于此,本申请实施例提供一种业务请求检测方法,该方法中,调度服务器会向客户端反馈为分配的目标服务器对应的调度参数,调度参数中携带了调度目标服务器的调度次序指示信息,当客户端向目标服务器发送业务请求时,该业务请求中携带了该调度参数,如此一来,目标服务器可以根据接收到的业务请求中的调度参数,实时地识别出未达到的业务请求,进而向决策服务器上报未到达的业务请求,决策服务器可以快速且直接地获得没有达到目标服务器的业务请求。进一步地,调度服务器还可以向决策服务器实时地同步各个目标服务器对应的调度参数,以便决策服务器实时地获取调度情况,以及确定各个目标服务器的业务请求达到率。除此之外,调度服务器还可以将调度参数对应的客户端的标识信息一并上报决策服务器,使得决策服务器可以确定各个客户端对应的业务请求达到情况,进而确定客户端对应的调度决策。
该方法中,其一,由于目标服务器根据已达到的业务请求中的调度次序指示信息,识别出未到达的业务请求的相关信息,只对未到达的业务请求的相关信息进行上报,无需向决策服务器上报所有的访问日志,而一般未到达的业务请求与总量业务请求的比例一般小于1%,且该方法还无需对非业务请求进行检测或上报,因此目标服务器向决策服务上报的数据量,相较于相关技术减少了99%以上。其二,由于决策服务器无需对调度请求或访问日志进行大量搜索,减少了搜索开销。其三,该方法中检测时延取决于目标服务器的检测时延,以及各个设备间的交互时间,而目标服务器检测未到达的业务请求时,只需顺序处理到达的业务请求中的调度次序指示信息,检测时延为秒级,且该检测时延是可配置的,各设备间的交互时间为秒级,故该方法实现了秒级的实时性。其四,决策服务器是将调度参数与对应的客户端的标识信息关联存储,因此只需检索的客户端对应的标识信息,进而能确定客户端的业务达到情况,使得决策服务器的检测方式由相关技术中的决策服务器集中式处理各个设备日志的方式转变为分布式处理,提高了检测业务请求的效率。
基于上述设计思想,下面对本申请实施例的业务请求检测方法的应用场景进行介绍。
本申请实施例涉及的业务请求检测方法可以适用各类调度场景,包括但不限于CDN中的服务器调度场景。但由于某些目标服务器宕机,或是客户端无法访问CDN的调度资源等情况,可能导致客户端无法正常访问,例如,CDN的调度资源类型例如包括服务端口,CDN的调度资源使用非标准服务端口,但客户端位于访问非标准端口受限的内网环境,对于该类客户端,则无法被调度至非标准服务端口。本申请实施例中的业务请求检测方法可以适用于检测业务请求的达到情况,以确定相应的调度决策的场景。
本申请实施例中的业务请求检测方法可以应用于CDN中直通调度或302调度等。请参照图1A,为直通调度对应的***架构图,或可以理解为本申请实施例中的业务请求检测方法适用的一种应用场景示意图,该应用场景包括客户端110、调度服务器120、目标服务器130和决策服务器140。为了更清楚地展示各个设备的部署示意图,下面结合图1B所示的设备部署示意图对各个设备的作用进行示例介绍。
客户端110设置在终端100中,图1B中是以客户端110包括第一客户端111和第二客户端112进行示例,终端100例如手机、个人计算机等。客户端110可以是网页版的客户端、预装在终端100中的客户端、或嵌入在第三方应用中的客户端等。客户端110包括泛指各种功能类型的客户端,比如视频播放客户端、社交客户端等。
调度服务器120、目标服务器130和决策服务器140均可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。图1B中是以调度服务器120包括第一调度服务器121和第二调度服务器122进行示例、以目标服务器130包括第一目标服务器131和第二目标服务器132进行示例、以及以决策服务器140包括一个进行示例,实际不限制各个设备的数量。
请继续参照图1A,下面对直通调度中的各个设备之间的交互过程进行简要说明。
1、客户端110向调度服务器120发送调度请求。
调度请求用于请求为客户端110分配目标服务器130,以期目标服务器130为客户端110提供相应服务。
2、调度服务器120向客户端110反馈调度响应。
调度服务器120在接收调度请求后,根据调度规则,为客户端110确定对应的目标服务器130,并将该目标服务器130的地址信息,以及该目标服务器130对应的调度参数携带在调度响应中反馈给客户端110。直通调度中目标服务器130的地址信息具体为目标服务器130的网际协议地址(Internet Protocol Address,IP)。其中,调度服务器120获得调度参数的内容将在下文中进行介绍。
3、客户端110向目标服务器130发送业务请求。
客户端110获得调度响应之后,通过目标服务器130的IP地址,与目标服务器130建立连接,并向目标服务器130发送携带有调度参数的业务请求。业务请求用于请求目标服务器130为客户端110提供相应的业务服务。
4、目标服务器130向决策服务器140反馈未达到业务请求的相关信息。
目标服务器130根据接收到的业务请求中的调度参数,确定没有达到的业务请求的调度次序指示信息,并上报至决策服务器140,决策服务器140根据目标服务器130上报的信息,确定未达到各个目标服务器的业务请求。其中,目标服务器130确定未达到各个目标服务器的业务请求将在下文中进行介绍。
5、调度服务器120将调度信息上报至决策服务器140。
调度服务器120在反馈调度响应后,可以将目标服务器的调度参数反馈至决策服务器140,除此之外,调度服务器120还可以将客户端的标识信息一并反馈给决策服务器140,决策服务器140可以根据接收到的调度信息,以及相关信息,进而确定目标服务器的业务请求的达到情况,以及客户端110的业务达到请求情况等,进而生生成相应的调度决策等。
6、决策服务器140将调度决策发送给调度服务器120。
决策服务器140将调度决策发送给调度服务器120,以便调度服务器120执行调度决策。
在介绍完直通调度后,下面对302调度涉及的相关内容进行介绍。
请参照图2A,为302调度对应的***架构图,或可以理解为本申请实施例中的业务请求检测方法适用的一种应用场景示意图,该应用场景包括客户端110、调度服务器120、目标服务器130、接入服务器200和决策服务器140。为了更清楚地展示各个设备的部署示意图,下面结合图2B所示的设备部署示意图对各个设备的作用进行示例介绍。
客户端110、调度服务器120、目标服务器130、决策服务器140的内容可以参照前文图1B论述的内容,此处不在赘述。图2B中是以客户端110包括第一客户端111和第二客户端112进行示例、图2B中是以调度服务器120包括第一调度服务器121和第二调度服务器122进行示例,以目标服务器130包括第一目标服务器131和第二目标服务器132进行示例,以决策服务器140包括一个进行示例、以接入服务器200包括第一接入服务器211和第二接入服务器212进行示例。接入服务器200的实现方式可以参照前文论述的服务器的实现方式,此处不再赘述。
请继续参照图2A,下面对302调度场景下的各个设备的交互过程进行简要说明。
1、客户端110向接入服务器200发送调度请求。
2、接入服务器200将调度请求发送给调度服务器120。
3、调度服务器120将调度响应发送给接入服务器200。
调度服务器120确定为客户端110分配的目标服务器,并将目标服务器的调度参数以及目标服务器的地址信息携带在调度响应反馈至接入服务器200,这里的地址信息为目标服务器的域名***(Domain Name System,DNS)地址。
4、接入服务器200将调度响应发送给客户端110。
5、客户端110向目标服务器130发送业务请求。
该业务请求携带目标服务器130的调度参数。
6、目标服务器130向决策服务器140反馈未达到业务请求的相关信息。
上报未达到业务请求的相关信息、以及相关信息的内容可以参照前文论述的内容,此处不再赘述。
7、调度服务器120将调度信息上报至决策服务器140。
调度信息可参照前文论述的内容,此处不再赘述。
8、决策服务器140将调度决策发送给调度服务器120。
决策服务器140将调度决策发送给调度服务器120,以便调度服务器120执行调度决策。
上述图1A至图2B是对本申请实施例涉及的应用场景进行示例,实际不限制本申请中业务请求检测方法的应用场景。
下面基于图1B论述的各个设备,对本申请实施例涉及的各设备之间的交互进行示例。请参照图3,为图1B中各个设备之间的交互示意图。
S301,第一客户端111向第一调度服务器121发送第一调度请求。
第一客户端111向第一调度服务器121发送第一调度请求,以请求目标服务器130为其提供服务器。第一调度请求可以包括该第一客户端111的标识信息,标识信息例如第一客户端111的IP地址,如此,第一调度服务器121能够根据第一调度请求确定该调度请求对应的客户端110。
S302,第一调度服务器121向第一客户端111反馈第一调度响应。
在第一调度服务器接收调度请求后,可以根据调度请求,根据调度规则确定为第一客户端111分配的第一目标服务器131。第一调度服务器121缓存有各个目标服务器130对应的调度次序,在第一调度服务器121升级或宕机等情况下重启,可能会丢失各个目标服务器130的调度次序,可重新累计调度各个目标服务器130对应的调度次序。第一调度服务器121从缓存中获得该第一目标服务器131的调度次序(Seq),调度次序可以为从0开始的递增数,标识该调度服务器对该目标服务器的调度次数。根据调度次序生成调度参数,并将该第一目标服务器131的地址信息,以及其对应的调度参数携带在调度响应中,发送给第一客户端111。
其中,调度参数至少包括用于指示第一调度服务器121调度第一目标服务器131的调度次序的调度次序指示信息,调度次序指示信息可以是调度次序本身,或用于间接指示调度次序的信息。该调度次序可以是针对第一目标服务器131依次递增的,或按照预设函数进行递增。调度参数还可以包括第一调度服务器121的标识信息或调度过程对应的调度标识。该调度标识在连续调度过程中不会变化,一旦第一调度服务器121宕机等情况,可以重新生成针对各个目标服务器130的调度标识,从而实现对各个调度服务器的调度次序进行重新计数。
下面对第一调度服务器121获得第一目标服务器131的调度参数的过程进行示例介绍。请参照图4,为生成第一目标服务器131的调度参数的过程示例图,该过程具体包括:
S401,第一调度服务器121缓存每个目标服务器对应的调度次序。
每个调度服务器120具有调度各个目标服务器130的权限,因此,第一调度服务器121会分别缓存各个目标服务器的调度次序。另外,还可以缓存针对各个目标服务器130的调度标识,该调度标识(Seq ID)标识一个调度服务器对一个目标服务器的调度过程,在首次生成后固定。例如,第一调度服务器121为每个目标服务器130缓存有如下二元组:
目标服务器的标识信息=><调度标识,调度次序> (1)
其中,目标服务器的标识信息(Target ID)是指该二元组对应的目标服务器130的标识信息。
S402,第一调度服务器121确定本次调度的第一目标服务器131。
在第一调度服务器121确定为第一客户端111分配第一目标服务器131后,可以通过第一目标服务器131的Target ID索引到第一目标服务器131的二元组,从而获得该第一目标服务器131对应的调度次序。S403,第一调度服务器121确定是否存储有第一目标服务器131的调度次序。如果第一调度服务器121确定存储有第一目标服务器131的调度次序,则执行S404,即根据存储的调度次序,生成第一目标服务器131的调度参数。如果第一调度服务器121确定未存储第一目标服务器131的调度次序,则执行S405,生成调度标识,并根据调度标识以及初始调度次序生成调度参数。
如果第一调度服务器121中存储有第一目标服务器131的二元组,则从二元组中获得该第一目标服务器131对应的调度次序,并增加该调度次序,进而根据调度次序生成调度次序指示信息,并根据调度次序指示信息生成调度参数。
如果第一调度服务器121中未存储有第一目标服务器131的二元组,例如由于第一调度服务器121存在升级、宕机等场景导致重启,可能丢失上述式(1)所示的二元组,此时,第一调度服务器121可以将Seq的初始值设置为固定值,并重新该固定值开始递增。同时,第一调度服务器121利用可以利用时间戳生成Seq ID。而如果存在Seq ID,则目标服务器130可以获得重新计数后的调度次序,从而保证业务请求检测过程不会因第一调度服务器121的故障而出错。
作为一种实施例,由于存在多个调度服务器120之间不一定能实时同步数据,且多个调度服务器120可能同时调度同一目标服务器130,故一个调度服务器120上会存储多个目标服务130器对应的Seq递增序列。在这种情况下,为了区分不同调度服务器120的调度,在调度参数中还可以包括调度服务器120的标识信息(Dispatcher ID)。
在生成调度参数时,可以直接将调度次序信息、调度服务器120的标识信息(Dispatcher ID)、调度标识等进行任意组合,以获得调度参数。
进一步地,为了便于后续解析调度参数,调度参数中各个信息所占的比特位可以是相对固定的,调度服务器120在生成调度参数时,根据各个信息所占的比特位构造调度参数。
举例说明,第一调度服务器121对第一目标服务器131的调度过程中的调度标识占用a位,记第一调度服务器121的标识信息占用b位,第一调度服务器121按如下公式构造调度参数Arrivie Key:
Arrive Key=(Seq<<(a+b))|(Seq ID<<b)|Dispatcher ID (2)
其中,公式(2)中的“<<”表示按位左移多少位,“|”表示拼接。
例如,由上述公式(2)拼接出的调度参数可以表示为如图5所示,该调度参数依次包括Seq、Seq ID和Dispatcher ID。图5只是对对调度参数进行示例说明,不限制Seq、SeqID和Dispatcher ID三者的排列顺序。
如前文论述的内容,调度请求中还包括客户端110的标识信息,为了便于后续将调度参数能够与客户端110对应上,第一调度服务器121除了在存储上述式(1)中的二元组之外,还可以存储每个目标服务器130对应的客户端的标识信息列表,该客户端的标识信息列表用于表示调度到每个目标服务器130的所有客户端的标识信息组成的类别。客户端110的标识信息具体可用客户端110的IP地址表示。
S303,第一客户端111向第一目标服务器131发送第一业务请求。
第一客户端111接收调度响应后,可根据调度响应中的第一目标服务器131的地址信息,向第一目标服务器131发送携带有调度参数的第一业务请求。
由于第一目标服务器131可能会接收到除了业务请求外的其它请求,因此本申请实施例中第一目标服务器131在接收每个请求后,可以确定该请求是否包括调度参数,如果该请求包括调度参数,则确定该请求属于业务请求。如果请求不包括调度参数,则确定该请求不是业务请求,从而避免对不是业务请求的请求进行大量分析处理。
S304,第二客户端112向第一调度服务器121发送第二调度请求。
第二客户端112向第一调度服务器121发送第二调度请求,以请求目标服务器130为其提供服务器。该第二调度请求包括该第二客户端112的标识信息。
应当说明的是,各个客户端110发送调度请求、业务请求的顺序可以是任意的。
S305,第一调度服务器121向第二客户端112反馈调度响应。
第一调度服务器121接收第二客户端112的调度请求,并确定为其分配第一目标服务器131,并获得第一目标服务器131的调度参数,并将调度参数携带在调度响应中反馈至第二客户端112。第一调度服务器121获得第一目标服务器131的调度参数的方式可以参照前文论述的获得调度参数的方式,此处不再赘述。
在正常情况下,第二客户端112应当向第一目标服务器131发送业务请求,但可能由于第一目标服务器131宕机,或第一目标服务器131余第二客户端112之间的通信链路问题,或第二客户端112访问受限等问题,第二客户端112并未将业务请求成功地发送给第一目标服务器131。
S306,第一目标服务器131确定第二业务请求的调度次序指示信息。
第一目标服务器131在接收第一客户端111发送的第一业务请求后,可以根据已达到的各个第一业务请求中携带的调度参数,获得调度次序指示信息,也就能获得第一业务请求对应的调度次序,从而确定没有达到第一目标服务器131的第二业务请求所对应的调度次序。第二业务请求可以理解超过预设时长第一目标服务器131仍未接收到的业务请求。例如,第一目标服务器131可以根据已经获得的调度次序指示信息,并按照预设顺序对调度次序指示信息所指示的调度次序进行排序,确定排序中未获得的调度次序,并将未获得的调度次序对应的业务请求确定为第二业务请求。第二业务请求的调度次序指示信息可以理解为根据排序,在已获得的调度次序指示信息中缺少的。
在确定已达到的请求为业务请求,或直接接收第一业务请求后,第一目标服务器131可以从第一业务请求中解析出对应的第一调度参数。
例如:第一目标服务器131接收到的第一业务请求包括如下代码段:
>GET/example.txt?example_args&arrive_key=1205406105
第一目标服务器131可以从上述代码段中获得调度参数为1205406105,第一目标服务器131可以根据上述公式(2),对调度参数进行解析,从而获得前文公式(2)中涉及的调度次序、第一调度服务器121的标识信息,以及调度标识等,具体三个参数对应的字段值示例如下:
Seq=Arrive Key>>(a+b) (3)
Seq ID=(Arrive Key>>b)&(1<<a-1) (4)
Dispatcher ID=Arrive Key&(1<<b–1) (5)
其中,上述中“>>”表示向左移几位,“<<”表示向右移几位。
调度参数为1205406105,第一目标服务器131将该调度参数转换为二进制数具体为:0100 0111 1101 1001 0000 1001 1001 1001,例如a取值为8,b取值为8,按照上述公式(3)~(5)分别解析出第一业务请求对应的调度次序对应前16位“0100 0111 1101 1001”,转换为十进制则表示为18393,以此类推,分别解析出调度标识以及调度服务器120对应的标识信息。
以此类推,第一目标服务器131可以获得各个已达到的第一业务请求的调度次序后,由于调度次序是递增的,因此,第一目标服务器131确定在预设时长内没有达到的第二业务请求对应的调度次序,从而获得第二业务请求的调度次序指示信息。预设时长的取值可以是第一目标服务器131预定义的,该预设时长的取值可以根据第一目标服务器131与客户端110之间的所需的通信时长设置,例如将预设时长设置为大于通信时长。
具体的,第一目标服务器131维护预设时长t对应的滑动时间窗口,滑动时间窗口记录了在预设时长内接收到的业务请求,且第一目标服务器131可以记录各个第一业务请求的时间,以及各个第一业务请求对应的调度次序,确定邻近且小于第一业务请求所指示的第一调度次序之前的第二调度次序对应的业务请求在预设时长内未达到时,则确定该第二调度次序对应的业务请求不可达。
举例说明,第一业务请求的达到时间为10:00,第一业务请求中的调度次序指示信息指示的第一调度次序为26,预设时长为2min,第一目标服务器131确定在10:02依旧没有接收到调度次序为25的业务请求,则确定调度次序为25的业务请求未达到。
在另一种具体实施例中,第一目标服务器131针对每个调度服务器120缓存有数组,数组用于记录调度次序,以及每个调度次序对应的标志位,标志位用于表示指示调度次序的业务请求是否已到达第一目标服务器131。第一目标服务器131缓存有第一队列,该第一队列中包括有每个单位时间内在数组中已被置位的最大调度次序,第一队列写满所需的时长为前文论述的预设时长。其中,第一队列可以为先进先出队列。
第一目标服务器131确定第一队列写满时,则表示第一目标服务器131在预设时长内仍未收到在数组中在第一队列的队头元素之前的调度次序所对应的业务请求,从而第一目标服务器131获得未达到业务请求的调度次序。
在具体实施时,由于第一目标服务器131针对每个调度服务器120都缓存有第一队列以及数组,因此,第一目标服务器131在获得第一业务请求中的调度参数后,可以根据调度参数中的第一调度服务器121的标识信息,识别出第一业务请求的源于第一调度服务器121的调度,并由第一调度服务器121的调度标识索引到为对应该第一调度服务器121的数组和第一队列,在索引到第一调度服务器121对应的数组和第一队列之后,第一目标服务器131可以根据数组以及第一队列,确定未达到的第二业务请求的调度次序,下面结合图6所示的一种检测第二业务请求的方法流程图进行介绍:
S601,置位数组中的调度次序的标志位。
第一目标服务器131获得第一业务请求所指示的第一调度次序后,对数组中第一调度次序对应的标志位进行置位。调度次序的标志位被置位表示该调度次序对应的业务请求达到第一目标服务器131,调度次序的标志位未被置位表示该调度次序对应的业务请求未达到第一目标服务器131。
例如,请参照图7,为第一目标服务器131置位数组中的调度次序的标志位的过程示意图,图7中a表示置位前的数组,该数组包括47至55的调度次序,以及各个调度次序对应的业务请求是否已达到的标志位,标志位为“0”表示调度次序对应的标志位没有达到,标志位为“1”表示调度次序对应的标志位已达到。第一目标服务器131在获得某个第一业务请求后,确定该第一业务请求的第一调度次序为50,将a所示的数组中第一调度次序的标志位从“0”置位到“1”。
作为一种实施例,第一目标服务器131可以在数组中维护一个Pmax指针,该Pmax指针指向数组中已被置位的最大调度次序,即当前已达到的业务请求中所指示的最大调度次序。在对数组进行置位时,判断是否移动Pmax指针。
如果当前被置位的调度次序大于Pmax指针对应的最大调度次序,则将Pmax移动至当前被置位的调度次序。如果当前被置位的调度次序小于Pmax指针对应的最大调度次序,则不移动Pmax指针。
S602,对第一队列进行写入操作。
第一目标服务器131每隔单位时间写入Pmax指针所对应的调度次序,如此一来,第一队列中的元素并不是非递减的。例如Pmax指针所对应的调度次序在连续时间段内均未发生变化,第一队列中将会被重复写入相同的调度次序。
例如,数组继续参照图7所示的例子,第一目标服务器131对第一调度次序50进行置位时,确定50小于Pmax指针所对应的52,确定不移动数组中的Pmax指针,并将Pmax指针对应的52重复写入第一队列,具体示例如图8所示的第一队列。
S603,确定第一队列是否已满。
第一目标服务器131在写入第一队列时,确定第一队列是否已满,如果确定第一队列已满,则执行S604,即踢出第一队列中的队头元素,并将数组中Pmin指针从当前位置移动至队头元素,并在移动Pmin指针过程中,检测从当前位置到队头元素中的各个调度次序是否已被置位,将没有被置位的调度次序对应的业务请求确定为未达到。如果确定第一队列未满,则不进行处理,继续处理第一目标服务器131接收的下一个业务请求,继续重复上述S601~S604的步骤。
具体的,在每隔单位时间为第一队列写入元素前,若第一队列中已满,写满第一队列所需的时间为第一预设时间t。例如第一队列写满是3个元素,则当第一队列包括3个元素时,则确定第一队列已满,则踢出队头元素,确定队头元素在t秒前已经到达。将数组中的Pmin指针从左至右移动至队头元素所对应的位置,移动过程中检测数组的各调度次序是否被置位,若未置位则说明该调度次序对应的业务请求在调度后至少t秒仍未访问第一目标服务器131,记录下其对应的调度次序,确定该调度次序对应的业务请求未达到。
例如,继续参照图7和图8所示的例子,参照图9所示的数组的示例图,在写入将52重复写入第一队列之前,确定第一队列已满,则踢出第一队列中的队头元素,并将数组中的Pmin指针从当前的41移动至队头元素47所对应的位置,并检测41~47中各个调度次序对应的标志位,确定未被置位的43所对应的业务请求没有达到第一目标服务器131。
在本申请实施例中,其一,PMin指针小于或等于PMax指针,而Pmin指针至Pmax指针为最近t秒的时间窗口,因此数组只需保存Pmin指针至Pmax指针区间中各个调度次序,以及对应的标志位即可,该区间的大小对应最近t秒内,第一调度服务器121调度到第一目标服务器131所对应的业务请求,大小有限且可控,从而使得数组可以采用固定长度的环形数组,避免不必要的内存占用,限制占用的内存大小。同理,第一队列Q长度不会无限度增长,最多保存预设时长内对应的多个元素。第一目标服务器131最多为各个调度服务器120维护上述数组和第一队列,从而使得第一目标服务器131的内存开销减少,且可控。
其二,如果忽略上报时延,那么一个未到达的业务请求在调度后预设时长t内会被目标服务器130检测出来,目标服务器130会及时上报决策服务器140进行决策,t参数可配置,能够控制检测的时延,且提高了检测过程的实时性。
进一步地,当第一目标服务器131检测到第一调度服务器121的调度标识发生变化时,说明第一调度服务器的调度次序已重置,前后递增关系破坏,此时第一目标服务器131可以根据第一调度服务器121生成的新的调度标识重新初始化第一调度服务器121对应的调度次序,继续检测第一调度服务器121调度第一目标服务器131的业务请求的可达到情况。
下面对上述实施例中的目标服务器130检测业务请求可达情况的时间复杂度进行分析:
假定目标服务器接收到的业务请求数量为n,第一目标服务器131解析每个业务请求、索引至对应的数组、置位数组、以及移动Pmax的时间复杂度均为O(1),那么n个业务请求对应的时间复杂度为O(n)。假定一共有m个调度服务器,对于第一队列Q的更新、出队和入队的时间复杂度为O(1),那么n个调度服务器对应的时间复杂度总体为O(m),PMin指针的移动总体为O(n),由于m通常是远远小于n,故整个过程的时间复杂度为O(n)。
第一目标服务器131除了能够获得未达到的业务请求的调度次序指示信息之外,由于每个调度服务器120都对应一个第一队列和数组,因此第一目标服务器131在检测出未达到的业务请求的调度次序的同时,能够获得该调度次序对应的调度服务器120。
S307,第一目标服务器131将第二业务请求的调度次序指示信息发送给决策服务器140。
第一目标服务器131可以通过上述S306任一方式检测出第二业务请求的调度次序,并根据该第二业务请求的调度次序,生成对应的调度次序指示信息,并将其上报至决策服务器140,使得决策服务器140可以直接获得各个目标服务器130对应的未达到的业务请求。
进一步地,为了减少第一目标服务器131上报的数据量,第一目标服务器可以上报第二业务请求的调度次序,以及目前已接收到的第一业务请求的最大调度次序进行增量上报。增量上报是指第一目标服务器131只会上报与上一次上报的数据不同的数据,而不是每次都将所有数据一并上报。并在第一目标服务器131上报对应的数据后,可以删除已上报的数据,从而减少第一目标服务器131中的存储空间的占用。
例如第一目标服务器131向决策服务器140上报如下表1所示的数据:
表1
进一步地,第一目标服务器131还可以根据数组所对应的调度服务器,进而确定出第二业务请求对应的调度服务器120、以及对应的调度标识,因此,第一目标服务器131可以将该第二业务请求对应的调度服务器120的标识信息,以及该第一目标服务器131的标识信息一并发送给决策服务器140。
例如,请继续参照图3,第一目标服务器131检测到调度次序为43的业务请求并未达到,并确定该调度次序对应第一调度服务器121,因此可以将该调度次序、第一调度服务器121的标识信息以及第一目标服务器131的标识信息一并发送给决策服务器140。
S308,第一调度服务器121向发决策服务器发送调度信息。
第一调度服务器121可以根据调度参数,以及调度参数关联的客户端110的标识信息,生成调度信息,调度参数及关联的客户端110的标识信息可以参照前文论述的内容,此处不再赘述。为了减少上报数据量,第一调度服务器121也可以以增量上报的形式上报调度信息。
例如第一调度服务器121存储的调度信息如下表2所示:
表2
S309,第二客户端112向第二调度服务器122发送第三调度请求。
第二客户端112向第二调度服务器122发送第三调度请求,以请求目标服务器130为其提供服务。
S310,第二调度服务器122向第二客户端112反馈第三调度响应。
S311,第二客户端112向第二目标服务器132发送第一业务请求。
S312,第二目标服务器132确定第二业务请求的调度次序指示信息。
第二目标服务器132确定第二业务请求的调度次序指示信息的方式可以参照前文论述的第一目标服务器131确定方式,此处不再赘述。
S313,第二目标服务器132将第二业务请求的调度次序指示信息发送给决策服务器140。
S314,第二调度服务器120向决策服务器140发送调度信息。
S315,决策服务器140确定对应的调度决策。
决策服务器140还可以根据各个目标服务器130上报的第二业务请求的调度次序指示信息,确定出未达到各个目标服务器130的第二业务请求。另外,决策服务器140可以根据调度服务器120的调度信息,可统计到每个目标服务器130的调度总数,以及每个客户端110对应的调度总数,决策服务器140根据每个目标服务器130未第二业务请求的数量以及该目标服务器130对应的调度总数,从而可以检测出每个目标服务器130的业务请求达到率,从而决策服务器140可以检测出各个目标服务器的业务请求达到率。同理,决策服务器140可以获得各个客户端110对应的业务请求达到率,进而确定是否对目标服务器130或客户端110执行相应的调度决策。
具体的,在决策服务器140接收各个目标服务器130上报未达到的业务请求的调度次序指示信息,以及各个调度服务器的调度信息后,针对每个调度服务器120缓存如下数据:
<Dispatcher ID,Target ID>=><Seq ID,Last Seq,client IP list> (6)
其中,Seq ID和Last Seq可以直接赋值为从各个调度服务器同步的最新值,Client IP List是指客户端的标识信息列表,Client IP List可以追加从调度服务器同步的增量列表。
作为一种实施例,调度次序可以选用客户端的标识信息中的部分。例如为客户端的标识信息的尾项,如此一来,可以在常数时间复杂度内由调度次序索引到对应的客户端的标识信息。
由于目标服务器130检测第二业务请求的调度次序,需要依赖后续到达的第一业务请求对应的调度次序,故目标服务器130无法及时上报第二业务请求对应的调度次序信息,此时表现为目标服务器130上报的已达到的第一业务请求的最大调度次序长时间未更新。为解决该问题,本申请实施例中决策服务器140保存有针对不同调度服务器120第二队列,第二队列记录有从调度服务器120获得的最大调度次序。第二队列可以是先进先出队列。
具体的,当决策服务器140接收到第二业务请求的调度次序指示信息后,可以根据该目标服务器130的Target ID索引到第二队列,检测第二队列是否已满,如果已满,则表示已达到预设时长,确认在该小于该队头元素之前的调度次序已被检测过,因此可以踢出队头元素,并将调度次序小于该队头元素关联的客户端的标识信息删除。
进一步地,对于每个目标服务器130上报信息中的每一项,可以由未达到的业务请求对应的Target ID、Dispatcher ID索引到上述(6)中的对应记录,如果Seq ID与对应记录的Seq ID不同,则忽略该上报项。如果Seq ID与对应记录的Seq ID相同,则对目标服务器130的未到达的业务请求的计数,并根据该未达到请求的调度次序,从Client IP List索引到对应的Client IP,增加该Client IP的未到达的业务请求的计数。
作为一种实施例,为了减少决策服务器140的存储数据量,决策服务器140可以删除已检测过的业务请求的客户端的标识信息。但涉及到决策服务器140如何确定哪些业务请求已被检测过达到情况,下面进行示例说明:
针对调度服务器120记录已检测过业务请求达到请求的最大调度次序Last Seq,并将最大调度次序Last Seq记录为初始化的检测过的调度次序Detect Seq,记t秒前的达到的调度次序记录为T Last Seq,该T Last Seq的取值也就是前文中第二队列的队头元素,此处不再赘述,决策服务器140为每隔单位时间执行如下代码:
Detect Seq=Max(Detect Seq,Max seq)
IF Detect Seq<T Last Seq://如果当前记录的已检测的调度次序小于第二队列的队头元素;
For seq in(Detect Seq,T last seq):
将调度次序小于第二队列的队头元素,且未达到的调度次序对应的业务请求视为未达到的业务请求,并对未达到的业务请求对应的目标服务器以及客户端累计未达到的业务请求的数量;
Detect Seq=T Last Seq。
将调度次序小于T Last Seq的业务请求确定为已完成到达检测,决策服务器140可以将其对应的Client IP即从Client IP List中删去,如此一来,决策服务器140的Client IP List最多会保存预设时长内的客户端IP,减少了决策服务器140的存储数据量。
S316,决策服务器140向各个调度服务器120发送调度决策。
当某个目标服务器的业务请求达到率小于或等于第一阈值时,表示目标服务器130的业务请求达到率较低,因此可以确定对该目标服务器执行目标服务器调度禁用决策,目标服务器调度禁用决策具体是调度服务器120不再调度该目标服务器130。
或者,各目标服务器130总调度数相差不大时,决策服务器140可以直接根据各个目标服务器140的第二业务请求的总数,确定对第二业务请求的总数超过一定数量的目标服务器140执行目标服务器调度禁用决策。
同理,决策服务器140可以确定各个客户端的业务请求达到率,或者累计客户端的未达到业务请求的总数,当客户端的业务请求达到率小于或等于第二阈值,或客户端的未达到业务请求的总数超过一定数量时,确定对该目标服务器执行客户端调度禁用决策。在直通调度场景中,客户端调度禁用决策可以是调度服务器120不再响应该客户端110的调度请求。
作为一种实施例,图3中论述的S308、S314、S316和S317为可选的步骤。
图3论述的实施例中,在直通调度场景中,目标服务器130可以根据接收到的业务请求中的调度次序指示信息,确定出第二业务请求对应的调度次序指示信息,从而直接向决策服务器140上报未达到的业务请求的情况,避免了决策服务器140存储以及搜索大量日志,提升了检测业务请求的存储开销及搜索开销。
下面对结合图2B论述的各个设备,对各个设备之间的交互进行示例介绍:
请参照图10,为图2B中各设备之间的交互示意图。
S1001,第一客户端111通过接入服务器200向第一调度服务器121发送第一调度请求。
与直通调度场景不同的是,在302调度场景中,客户端110不是直接与调度服务器10进行交互,而是通过接入服务器200与调度服务器120进行交互。该第一调度请求具体可以是采用统一资源定位符(Uniform Resource Locator,URL)请求的格式及内容。同理,该第一调度请求用于请求接入服务器200为其提供服务。该第一调度请求中携带该第一客户端的标识信息。
接入服务器200接收第一调度请求后,并不会直接为第一客户端111提供服务,而是将该第一调度请求透传给第一调度服务器121。
S1002,第一调度服务器121将第一调度响应通过接入服务器200发送至第一客户端111。
第一调度服务器121在接收第一调度请求之后,可以按照调度规则,为第一客户端111分配为该第一客户端111分配的第一目标服务器131。在第一调度服务器121确定对应的目标服务器130之后,可以生成第一目标服务器131对应的调度参数,生成调度参数的方式以及调度参数的内容可以参照前文论述的内容,此处不再赘述。在生成第一目标服务器131对应的调度参数后,第一调度服务器121生成第一调度响应,该第一调度响应携带有调度参数,还可以包括第一目标服务器131的域名地址。该第一调度响应具体可以是携带调度参数的302响应,具体可以为重定向URL响应。第一调度服务器121并将第一调度响应发送给接入服务器200,由接入服务器200再发送给第一客户端111。
S1003,第一客户端111向第一目标服务器131发送第一业务请求。
第一客户端111接收第一调度响应后,根据第一调度响应重定向到第一目标服务器131,也就是说,第一客户端111无需解析第一调度响应,直接能够重定向至第一目标服务器131,即无需对客户端110进行改进,降低本申请实施例涉及的业务请求检测方法的应用成本。
例如,第一业务请求示例如下:
>GET/example.txt?example_args&arrive_key=1205406105
HTTP/1.1
>User-Agent:curl/7.29.0
>Accept:*/*
>Host:example.com。
上述示例中的第一业务请求包括调度参数、第一客户端111发送的URL请求等。
第一目标服务器131在接收上述业务请求后,可以根据业务请求,获得其对应的调度参数。
S1004,第二客户端112通过接入服务器200向第一调度服务器121发送第二调度请求。
第二调度请求的相关内容可以参照第一调度请求,此处不再赘述。
S1005,第一调度服务器121将第二调度响应通过接入服务器200发送至第二客户端112。
第二客户端112正常情况下应当向第一目标服务器131发送业务请求,但可能由于第二客户端112和第一目标服务器131之间的通信问题,第二客户端112并未成功地将业务请求发送给第一目标服务器131。
S1006,第一目标服务器131确定第二业务请求的调度次序指示信息。
第一目标服务器131确定第二业务请求的调度次序指示信息的内容可以参照前文论述的内容,此处不再赘述。
S1007,第一目标服务器131将第二业务请求的调度次序指示信息发送给决策服务器140。
在发送未达到的业务请求的调度次序指示信息的同时,还可以将该未达到的业务请求对应的调度服务器120,以及该第一目标服务器131的标识信息一并关联发送至决策服务器140。
S1008,第一调度服务器121将调度信息发送至决策服务器140。
调度信息、以及生成调度信息的方式可以参照前文论述的内容,此处不再赘述。
S1009,第三客户端113通过接入服务器200向第二调度服务器122发送第三调度请求。
第三调度请求的相关内容可以参照第一调度请求,此处不再赘述。
S1010,第二调度服务器122将第三调度响应通过接入服务器200发送至第三客户端113。
S1011,第三客户端113向第二目标服务器132发送第一业务请求。
S1012,第二目标服务器132确定第二业务请求的调度次序指示信息。
第二目标服务器132确定第二业务请求的调度次序指示信息的内容可以参照前文论述的内容,此处不再赘述。
S1013,第二目标服务器132将第二业务请求的调度次序指示信息发送给决策服务器140。
在发送第二业务请求的调度次序指示信息的同时,还可以将该第二业务请求对应的调度服务器120,以及该第二目标服务器132的标识信息一并关联发送至决策服务器140。
S1014,第二调度服务器122将调度信息发送至决策服务器140。
调度信息、以及生成调度信息的方式可以参照前文论述的内容,此处不再赘述。
S1015,决策服务器140确定对应的调度决策。
确定调度决策的内容可以参照前文论述的内容,此处不再赘述。调度决策包括对客户端110的禁用调度、对目标服务器130的禁用调度中的一种或两种组合。对客户端110的禁用调度可以是拒绝相应该客户端110,或者可以指示调度服务器120由接入服务器200为客户端110提供服务。
S1016,决策服务器140向各个调度服务器120发送调度决策。
作为一种实施例,图3中论述的S1008、S1014、S1016和S1017为可选的步骤。
基于同一发明构思,本申请实施例提供一种业务请求检测装置,该业务请求检测装置相当于设置在前文论述的目标服务器130中,请参照图11,该业务请求检测装置1100包括:
获取模块1101,用于分别从各个第一业务请求中携带的调度参数中,获取各个第一业务请求的调度次序指示信息;其中,各个第一业务请求是从各个客户端获得的,每个第一业务请求的调度参数是客户端从调度服务器的调度响应中获得的,调度次序指示信息用于指示调度服务器调度业务请求对应的目标服务器的次序;
获得模块1102,用于根据已经获得的调度次序指示信息,获得第二业务请求的调度次序指示信息;其中,第二业务请求是指未达到的业务请求;
发送模块1103,用于将第二业务请求的调度次序指示信息发送给决策服务器,以使决策服务器根据第二业务请求的调度次序指示信息,确定未达到目标服务器的第二业务请求。
在一种可能的实施例中,获得模块1102具体用于:
缓存在当前时刻之前的预设时长内的各个第一业务请求;
根据预设时长各个第一业务请求中的调度次序指示信息,确定超过预设时长仍未达到的第二业务请求所对应的调度次序指示信息。
在一种可能的实施例中,目标服务器缓存有数组和第一队列,数组包括多个调度次序,以及每个调度次序对应的标志位,标志位用于表示调度次序对应的业务请求是否达到目标服务器,第一队列用于缓存数组在各单位时间写入已被置位的最大调度次序,写满第一队列所需的时长为预设时长;以及,获得模块1102具体用于:
根据各个第一业务请求中的调度次序指示信息,置位数组中第一业务请求所指示的调度次序的标志位;
根据单位时间内数组中已被置位的最大调度次序,对第一队列进行写入操作;
若确定第一队列已满,则将指针移动至第一队列的队头元素,并在指针移动过程中,检测各调度次序是否被置位,确定未被置位的调度次序。
在一种可能的实施例中,各个第一业务请求的调度参数还携带调度服务器的标识信息,目标服务器缓存有每个调度服务器的数组;获得模块1102具体用于:
根据各个业务请求中的调度次序指示信息,置位数组中对应的业务请求所指示的调度次序的标志位,具体包括:
分别根据各个第一业务请求中对应的调度服务器的标识信息,确定各个第一业务请求对应的调度服务器;
根据各个第一业务请求所指示的调度次序,分别对各个第一业务请求对应数组中的调度次序进行置位。
基于同一发明构思,本申请实施例提供一种业务请求检测装置,该业务请求检测装置相当于设置在前文论述的调度服务器中,请参照图12,该业务请求检测装置1200包括:
接收模块1201,用于分别接收各个客户端的调度请求;
确定模块1202,用于确定为各个客户端调度的目标服务器;
获得模块1203,用于获得各个目标服务器对应的调度参数;其中,每个调度参数包括调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序;
发送模块1204,用于分别向各个客户端发送携带有对应目标服务器的调度参数的调度响应,以使各个客户端分别向对应的目标服务器发送携带有调度参数的业务请求,以使各个目标服务器根据携带有调度参数的第一业务请求,分别获得第二业务请求的调度次序指示信息,并分别将获得第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收的业务请求,第二业务请求是指未达到目标服务器的业务请求。
在一种可能的实施例中,获得模块1203具体通过如下方式获得任一目标服务器的调度参数:
若存储有任一目标服务器的调度参数,则更新已存储的调度参数中的调度次序指示信息;
若未存储任一目标服务器的调度参数,则生成针对任一目标服务器进行调度的调度标识,并根据调度标识和初始调度次序指示信息,生成任一目标服务器的调度参数。
在一种可能的实施例中,发送模块1204还用于:
将各个目标服务器携带有对应的调度参数的调度信息发送给决策服务器,以使决策服务器分别根据各个目标服务器的调度信息和对应目标服务器第二业务请求的调度次序指示信息,确定各个目标服务器的业务请求达到率。
基于同一发明构思,本申请实施例提供一种业务请求检测装置,该业务请求检测装置相当于设置在前文论述的决策服务器中,请参照图13,该业务请求检测装置1300包括:
接收模块1301,用于接收各个目标服务器发送的第二业务请求的调度次序指示信息;其中,每个目标服务器的第二业务请求的调度次序指示信息是根据接收到的客户端的第一业务请求携带的调度参数获得的,每个第一业务请求携带的调度参数是客户端在接收到对应的调度服务器发送的调度响应后获得的,每个调度参数包括业务请求对应的调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序,第二业务请求是指未达到目标服务器的业务请求;
确定模块1302,用于分别根据各个第二业务请求的调度次序指示信息,确定未达到各个目标服务器的业务请求。
在一种可能的实施例中,接收模块1301,还用于接收各个调度服务器发送的调度信息;其中,每个调度信息包括对应目标服务器的调度参数;
确定模块1302,还用于分别根据各个调度服务器发送的调度参数,以及各个目标服务器的第二业务请求,确定各个目标服务器的业务请求达到率;
确定模块1302,还用于分别根据各个业务请求达到率,确定各个目标服务器对应的调度决策。
在一种可能的实施例中,每个调度信息还包括调度参数对应的客户端的标识信息;确定模块1302还用于:
分别根据各个客户端的标识信息,检测各个客户端关联的第二业务请求;
分别根据各个客户端关联的第二业务请求,以及各个调度服务器发送的调度参数,确定各个客户端的业务请求达到率;
分别根据各个客户端的业务请求达到率,确定各个客户端对应的调度决策。
在一种可能的实施例中,决策服务器缓存有每个调度服务器对应的第二队列,每个第二队列缓存有在每个单位时间内从对应调度服务器获得的调度参数所指示的最大调度次序,写满第二队列的时长为预设时长;以及,装置1300还包括写入模块1303和删除模块1304,其中:
写入模块1303,用于根据单位时间内获得的对应的调度服务器对应的最大调度次序,对对应的第二队列进行写入操作;
删除模块1304,用于若确定第二队列已满,删除调度次序小于第二队列的队头元素对应的客户端的标识信息。
基于同一发明构思,本申请实施例提供一种业务请求检测装置,该业务请求检测装置相当于设置在前文论述的客户端中,请参照图14,该业务请求检测装置1400包括:
发送模块1401,用于向调度服务器发送调度请求;
接收模块1402,用于接收调度服务器发送的调度响应;其中,调度响应携带为客户端调度的目标服务器的地址信息和目标服务器对应的调度参数,调度参数包括调度次序指示信息,调度次序指示信息用于表示调度服务器本次调度目标服务器的次序;
发送模块1401,还用于根据地址信息,向目标服务器发送携带调度参数业务请求,以使目标服务器根据第一业务请求中携带的调度参数,生成第二业务请求的调度次序指示信息,并将第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收到的业务请求,第二业务请求是指未达到目标服务器的业务请求。
基于同一发明构思,本申请实施例提供一种业务请求检测***,该业务请求检测***包括前文图11~图13中的各个装置,该***相当于包括前文论述的调度服务器120、目标服务器130和决策服务器140。
基于同一发明构思,本申请实施例还提供了一种计算机设备。请参照图15,计算机设备1500以通用计算机设备的形式表现。计算机设备1500的组件可以包括但不限于:至少一个处理器1510、至少一个存储器1520、连接不同***组件(包括处理器1510和存储器1520)的总线1530。
总线1530表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、***总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器1520可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1521和/或高速缓存存储器1522,还可以进一步包括只读存储器(ROM)1523。存储器1520还可以包括具有一组(至少一个)程序模块1525的程序/实用工具1526,这样的程序模块1525包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。处理器1510用于执行存储器1520存储的程序指令等实现前文论述的任一业务请求检测方法,或者实现图11~图14中任一装置的功能。
计算机设备1500也可以与一个或多个外部设备1540(例如键盘、指向设备等)通信,还可与一个或者多个使得终端能与计算机设备1500交互的设备通信,和/或与使得该计算机设备1500能与一个或多个其它设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(I/O)接口1550进行。并且,计算机设备1500还可以通过网络适配器1560与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器1560通过总线1530与用于计算机设备1500的其它模块通信。应当理解,尽管图中未示出,可以结合计算机设备1500使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
基于同一发明构思,本申请实施例提供一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行前文论述的业务请求检测方法。
基于同一发明构思,本申请实施例提供一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述业务请求检测方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种业务请求检测方法,其特征在于,应用于目标服务器中,所述方法包括:
分别从各个第一业务请求中携带的调度参数中,获取各个第一业务请求的调度次序指示信息;其中,各个第一业务请求是从各个客户端获得的,每个第一业务请求的调度参数是客户端从调度服务器的调度响应中获得的,调度次序指示信息用于指示调度服务器调度业务请求对应的目标服务器的次序;
根据已经获得的调度次序指示信息,获得第二业务请求的调度次序指示信息;其中,第二业务请求是指未达到的业务请求;
将第二业务请求的调度次序指示信息发送给决策服务器,以使所述决策服务器根据所述第二业务请求的调度次序指示信息,确定未达到目标服务器的第二业务请求。
2.如权利要求1所述的方法,其特征在于,所述根据已经获得的调度次序指示信息,获得第二业务请求的调度次序指示信息,包括:
缓存在当前时刻之前的预设时长内的各个第一业务请求;
根据预设时长各个第一业务请求中的调度次序指示信息,确定超过所述预设时长仍未达到的第二业务请求所对应的调度次序指示信息。
3.如权利要求2所述的方法,其特征在于,所述目标服务器缓存有数组和第一队列,所述数组包括多个调度次序,以及每个调度次序对应的标志位,标志位用于表示调度次序对应的业务请求是否达到所述目标服务器,所述第一队列用于缓存所述数组在各单位时间写入已被置位的最大调度次序,写满所述第一队列所需的时长为所述预设时长;以及,
所述根据预设时长各个第一业务请求中的调度次序指示信息,确定超过所述预设时长仍未达到的第二业务请求所对应的调度次序指示信息,包括:
根据各个第一业务请求中的调度次序指示信息,置位数组中第一业务请求所指示的调度次序的标志位;
根据单位时间内所述数组中已被置位的最大调度次序,对所述第一队列进行写入操作;
若确定所述第一队列已满,则将指针移动至第一队列的队头元素,并在指针移动过程中,检测各调度次序是否被置位,确定未被置位的调度次序。
4.如权利要求3所述的方法,其特征在于,各个第一业务请求的调度参数还携带调度服务器的标识信息,所述目标服务器缓存有每个调度服务器的数组;
所述根据各个第一业务请求中的调度次序指示信息,置位数组中第一业务请求所指示的调度次序的标志位,包括:
分别根据各个第一业务请求中对应的调度服务器的标识信息,确定各个第一业务请求对应的调度服务器;
根据各个第一业务请求所指示的调度次序,分别对各个第一业务请求对应数组中的调度次序进行置位。
5.一种业务请求检测方法,其特征在于,应用于调度服务器中,所述方法包括:
分别接收各个客户端的调度请求,确定为各个客户端调度的目标服务器;
获得各个目标服务器对应的调度参数;其中,每个调度参数包括调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序;
分别向各个客户端发送携带有对应目标服务器的调度参数的调度响应,以使各个客户端分别向对应的目标服务器发送携带有调度参数的业务请求,以使各个目标服务器根据携带有调度参数的第一业务请求,分别获得第二业务请求的调度次序指示信息,并分别将获得第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收的业务请求,第二业务请求是指未达到目标服务器的业务请求。
6.如权利要求5所述的方法,其特征在于,所述获得各个目标服务器对应的调度参数,具体包括通过如下方式获得任一目标服务器的调度参数:
若存储有所述任一目标服务器的调度参数,则更新已存储的调度参数中的调度次序指示信息;
若未存储所述任一目标服务器的调度参数,则生成针对所述任一目标服务器进行调度的调度标识,并根据所述调度标识和初始调度次序指示信息,生成所述任一目标服务器的调度参数。
7.如权利要求5或6所述的方法,其特征在于,所述方法还包括:
将各个目标服务器携带有对应的调度参数的调度信息发送给决策服务器,以使所述决策服务器分别根据各个目标服务器的调度信息和对应目标服务器第二业务请求的调度次序指示信息,确定各个目标服务器的业务请求达到率。
8.一种业务请求检测方法,其特征在于,应用于决策服务器中,所述方法包括:
接收各个目标服务器发送的第二业务请求的调度次序指示信息;其中,每个目标服务器的第二业务请求的调度次序指示信息是根据接收到的客户端的第一业务请求携带的调度参数获得的,每个第一业务请求携带的调度参数是客户端在接收到对应的调度服务器发送的调度响应后获得的,每个调度参数包括业务请求对应的调度次序指示信息,调度次序指示信息用于表示调度服务器调度目标服务器的次序,第二业务请求是指未达到目标服务器的业务请求;
分别根据各个第二业务请求的调度次序指示信息,确定未达到各个目标服务器的业务请求。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
接收各个调度服务器发送的调度信息;其中,每个调度信息包括对应目标服务器的调度参数;
分别根据各个调度服务器发送的调度参数,以及各个目标服务器的第二业务请求,确定各个目标服务器的业务请求达到率;
分别根据各个业务请求达到率,确定各个目标服务器对应的调度决策。
10.如权利要求9所述的方法,其特征在于,每个调度信息还包括调度参数对应的客户端的标识信息;以及,所述方法还包括:
分别根据各个客户端的标识信息,检测各个客户端关联的第二业务请求;
分别根据各个客户端关联的第二业务请求,以及各个调度服务器发送的调度参数,确定各个客户端的业务请求达到率;
分别根据各个客户端的业务请求达到率,确定各个客户端对应的调度决策。
11.如权利要求10所述的方法,其特征在于,所述决策服务器缓存有每个调度服务器对应的第二队列,每个第二队列缓存有在每个单位时间内从对应调度服务器获得的调度参数所指示的最大调度次序,写满所述第二队列的时长为预设时长;以及,所述方法还包括:
分别根据单位时间内获得的各个调度服务器对应的最大调度次序,对调度服务器对应的第二队列进行写入操作;
若确定第二队列已满,删除调度次序小于第二队列的队头元素对应的客户端的标识信息。
12.一种业务请求检测方法,其特征在于,应用于客户端中,所述方法包括:
向调度服务器发送调度请求,接收调度服务器发送的调度响应;其中,所述调度响应携带为所述客户端调度的目标服务器的地址信息和所述目标服务器对应的调度参数,所述调度参数包括调度次序指示信息,所述调度次序指示信息用于表示调度服务器本次调度所述目标服务器的次序;
根据所述地址信息,向所述目标服务器发送携带所述调度参数业务请求,以使所述目标服务器根据第一业务请求中携带的所述调度参数,生成第二业务请求的调度次序指示信息,并将第二业务请求的调度次序指示信息发送给决策服务器;其中,第一业务请求是指目标服务器已接收到的业务请求,第二业务请求是指未达到目标服务器的业务请求。
13.一种计算机设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1~4、5~7、8~11或12中任一项所述的方法。
14.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1~4、5~7、8~11或12中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010858849.8A CN112054923B (zh) | 2020-08-24 | 2020-08-24 | 业务请求检测方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010858849.8A CN112054923B (zh) | 2020-08-24 | 2020-08-24 | 业务请求检测方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112054923A CN112054923A (zh) | 2020-12-08 |
CN112054923B true CN112054923B (zh) | 2023-08-18 |
Family
ID=73599355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010858849.8A Active CN112054923B (zh) | 2020-08-24 | 2020-08-24 | 业务请求检测方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112054923B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615912B (zh) * | 2020-12-11 | 2022-07-12 | 中国建设银行股份有限公司 | 一种节点调度处理方法、装置及存储介质 |
CN115107042B (zh) * | 2022-08-31 | 2022-11-11 | 上海擎朗智能科技有限公司 | 机器人调度标识重置方法、装置、设备及存储介质 |
CN117149836B (zh) * | 2023-10-27 | 2024-02-27 | 联通在线信息科技有限公司 | 一种缓存处理方法和装置 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613155A (en) * | 1995-06-07 | 1997-03-18 | International Business Machines Corporation | Bundling client write requests in a server |
CN101494579A (zh) * | 2008-01-22 | 2009-07-29 | 中兴通讯股份有限公司 | 总线调度装置及方法 |
CN102546267A (zh) * | 2012-03-26 | 2012-07-04 | 杭州华三通信技术有限公司 | 网络设备的自动配置方法和管理服务器 |
JP2013003598A (ja) * | 2011-06-10 | 2013-01-07 | Fujitsu Ltd | リクエスト処理プログラム、リクエスト処理方法および情報処理装置 |
CN104301140A (zh) * | 2014-10-08 | 2015-01-21 | 广州华多网络科技有限公司 | 业务请求响应方法、装置和*** |
CN105490841A (zh) * | 2015-11-26 | 2016-04-13 | 广州华多网络科技有限公司 | 一种终端日志抓取方法、装置及*** |
CN105550051A (zh) * | 2015-12-25 | 2016-05-04 | 北京奇虎科技有限公司 | 业务请求的异步处理方法及装置 |
CN106603723A (zh) * | 2017-01-20 | 2017-04-26 | 腾讯科技(深圳)有限公司 | 一种请求消息处理方法及装置 |
CN107317763A (zh) * | 2017-06-30 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种客户端与元数据服务器间的流控方法及装置 |
CN107426302A (zh) * | 2017-06-26 | 2017-12-01 | 腾讯科技(深圳)有限公司 | 访问调度方法、装置、***、终端、服务器及存储介质 |
CN107885594A (zh) * | 2016-09-30 | 2018-04-06 | 腾讯科技(深圳)有限公司 | 分布式资源调度方法、调度节点及接入节点 |
CN110365796A (zh) * | 2019-08-01 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 业务请求处理方法、装置 |
CN110362275A (zh) * | 2019-07-10 | 2019-10-22 | 深圳大普微电子科技有限公司 | 提升固态硬盘服务质量的方法及固态硬盘 |
CN110381162A (zh) * | 2019-07-29 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种业务处理的方法以及相关装置 |
KR20190128368A (ko) * | 2018-05-08 | 2019-11-18 | 주식회사 애포샤 | 비동기 서버의 요청 처리 방법 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2438513B1 (en) * | 2009-06-03 | 2015-03-18 | Hewlett Packard Development Company, L.P. | Scheduling realtime information storage system access requests |
US9706564B2 (en) * | 2013-03-14 | 2017-07-11 | Cavium, Inc. | Apparatus and method for media access control scheduling with a priority calculation hardware coprocessor |
WO2018126405A1 (en) * | 2017-01-05 | 2018-07-12 | Motorola Mobility Llc | Scheduling request indication |
US10761748B2 (en) * | 2018-08-06 | 2020-09-01 | Datera, Incorporated | Future write in distributed system maintaining data storage integrity |
-
2020
- 2020-08-24 CN CN202010858849.8A patent/CN112054923B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613155A (en) * | 1995-06-07 | 1997-03-18 | International Business Machines Corporation | Bundling client write requests in a server |
CN101494579A (zh) * | 2008-01-22 | 2009-07-29 | 中兴通讯股份有限公司 | 总线调度装置及方法 |
JP2013003598A (ja) * | 2011-06-10 | 2013-01-07 | Fujitsu Ltd | リクエスト処理プログラム、リクエスト処理方法および情報処理装置 |
CN102546267A (zh) * | 2012-03-26 | 2012-07-04 | 杭州华三通信技术有限公司 | 网络设备的自动配置方法和管理服务器 |
CN104301140A (zh) * | 2014-10-08 | 2015-01-21 | 广州华多网络科技有限公司 | 业务请求响应方法、装置和*** |
CN105490841A (zh) * | 2015-11-26 | 2016-04-13 | 广州华多网络科技有限公司 | 一种终端日志抓取方法、装置及*** |
CN105550051A (zh) * | 2015-12-25 | 2016-05-04 | 北京奇虎科技有限公司 | 业务请求的异步处理方法及装置 |
CN107885594A (zh) * | 2016-09-30 | 2018-04-06 | 腾讯科技(深圳)有限公司 | 分布式资源调度方法、调度节点及接入节点 |
CN106603723A (zh) * | 2017-01-20 | 2017-04-26 | 腾讯科技(深圳)有限公司 | 一种请求消息处理方法及装置 |
CN107426302A (zh) * | 2017-06-26 | 2017-12-01 | 腾讯科技(深圳)有限公司 | 访问调度方法、装置、***、终端、服务器及存储介质 |
CN107317763A (zh) * | 2017-06-30 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种客户端与元数据服务器间的流控方法及装置 |
KR20190128368A (ko) * | 2018-05-08 | 2019-11-18 | 주식회사 애포샤 | 비동기 서버의 요청 처리 방법 |
CN110362275A (zh) * | 2019-07-10 | 2019-10-22 | 深圳大普微电子科技有限公司 | 提升固态硬盘服务质量的方法及固态硬盘 |
CN110381162A (zh) * | 2019-07-29 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种业务处理的方法以及相关装置 |
CN110365796A (zh) * | 2019-08-01 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 业务请求处理方法、装置 |
Non-Patent Citations (1)
Title |
---|
TMS地域调度***设计与实现;庄一嵘;梁丹华;陈戈;周晓燕;;广东通信技术(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112054923A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112054923B (zh) | 业务请求检测方法、设备及介质 | |
US11558270B2 (en) | Monitoring a stale data queue for deletion events | |
EP3223165B1 (en) | File processing method, system and server-clustered system for cloud storage | |
US7272613B2 (en) | Method and system for managing distributed content and related metadata | |
US20150237113A1 (en) | Method and system for file transmission | |
EP1892921A2 (en) | Method and sytem for managing distributed content and related metadata | |
EP3624398A1 (en) | Storage capacity evaluation method and apparatus based on cdn application | |
US10419528B2 (en) | Dynamically instantiating and terminating data queues | |
CN105162878A (zh) | 基于分布式存储的文件分发***及方法 | |
US11743333B2 (en) | Tiered queuing system | |
US11429566B2 (en) | Approach for a controllable trade-off between cost and availability of indexed data in a cloud log aggregation solution such as splunk or sumo | |
US10599529B2 (en) | Instantiating data queues for management of remote data stores | |
US11076181B2 (en) | Systems and methods for resolving manifest file discontinuities | |
US20200401562A1 (en) | Parallel processing of filtered transaction logs | |
US20180248977A1 (en) | Selective distribution of messages in a publish-subscribe system | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
US11334623B2 (en) | Key value store using change values for data properties | |
CN112395296A (zh) | 一种大数据归档方法、装置、设备及存储介质 | |
CN115941454A (zh) | 一种日志传输存储方法和装置 | |
CN114691727A (zh) | 一种数据处理方法、装置、***、电子设备及存储介质 | |
CN115858503A (zh) | 一种基于迁移链表的异构数据库迁移管理方法及*** | |
CN116582559A (zh) | 一种数据存储与共享方法及相关装置 | |
CN112199392A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |