CN111158878B - 资源转移请求线程控制方法、装置及存储介质 - Google Patents

资源转移请求线程控制方法、装置及存储介质 Download PDF

Info

Publication number
CN111158878B
CN111158878B CN201911401579.1A CN201911401579A CN111158878B CN 111158878 B CN111158878 B CN 111158878B CN 201911401579 A CN201911401579 A CN 201911401579A CN 111158878 B CN111158878 B CN 111158878B
Authority
CN
China
Prior art keywords
resource transfer
transfer request
request thread
thread
target resource
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
Application number
CN201911401579.1A
Other languages
English (en)
Other versions
CN111158878A (zh
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 CN201911401579.1A priority Critical patent/CN111158878B/zh
Publication of CN111158878A publication Critical patent/CN111158878A/zh
Application granted granted Critical
Publication of CN111158878B publication Critical patent/CN111158878B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/547Remote procedure calls [RPC]; Web services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请关于一种资源转移请求线程控制方法、装置及存储介质,涉及网络交易技术领域。所述方法包括:网络设备设置具有预设数量上限的令牌的令牌桶;接收远程服务器发送的第一目标资源转移请求线程,该第一目标资源转移请求线程是指已获取本地锁和分布式锁的资源转移请求线程;若令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数,则将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统。通过上述方法,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。

Description

资源转移请求线程控制方法、装置及存储介质
技术领域
本申请涉及网络交易技术领域,特别涉及一种资源转移请求线程控制方法、装置及存储介质。
背景技术
网关是网络之间的信息交换平台,网关对外提供各种接口,为多个用户提供服务。但是网关在为用户提供服务时,经常发生网络拥塞,造成业务出现异常,无法为用户提供优质服务。
为解决上述问题,在相关技术中,通过人工配置网关上游系统单机请求线程数来进行限流,然而在业务高峰时,由于人工配置的响应速度较慢,且对于网关上游系统单机请求线程数的限制无法对上游系统向网关发送的总请求量进行限制,当上游系统单机数量较多时,仍会导致网络拥塞,给下游系统造成压力。
发明内容
本申请关于一种资源转移请求线程控制方法、装置及存储介质,该技术方案如下:
一方面,提供了一种资源转移请求线程控制方法,所述方法由网络设备执行,所述方法包括:
设置令牌桶,所述令牌桶中具有预设数量上限的令牌;
接收远程服务器发送的第一目标资源转移请求线程,所述第一目标资源转移请求线程是指已获取本地锁和分布式锁的资源转移请求线程,所述本地锁用以从网关的服务器的资源转移请求线程中获取第二目标资源转移请求线程,所述分布式锁用以从所述第二目标资源转移请求线程中获取所述第一目标资源转移请求线程;
响应于所述令牌桶中的令牌数大于或等于所述第一目标资源转移请求线程所需的令牌数,将所述令牌桶中的令牌数减少对应所述第一目标资源转移请求线程所需的令牌数的数量,并将所述第一目标资源转移请求线程发送给下游系统。
可选的,所述方法还包括:
接收所述第一目标资源转移请求线程发送的目标令牌,所述目标令牌是指所述第一目标资源转移请求线程获取到所述下游系统的响应后归还的所述第一目标资源转移请求线程所需的令牌数的令牌。
可选的,所述方法还包括:
根据所述第一目标资源转移请求线程的令牌参数,控制所述第一目标资源转移请求线程释放所述本地锁和所述分布式锁。
可选的,所述方法还包括:
响应于所述令牌桶中的令牌数小于所述第一目标资源转移请求线程所需的令牌数,向上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统中,所述第一目标资源转移请求线程所属的系统。
另一方面,提供了一种资源转移请求线程控制方法,所述方法应用于网关中,所述方法包括:
设置所述网关中服务器的最大允许请求线程数,所述最大允许请求线程数是指所述网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量;
接收上游系统发送的请求线程,将所述请求线程按照网关中服务器的数量进行平均分组;
响应于每组所述请求线程的数量在所述网关中每台服务器的最大允许请求线程数范围内,通过本地锁从所述请求线程中的资源转移请求线程中获取第二目标资源转移请求线程;
将所述第二目标资源转移请求线程发送至所述远程服务器,以使得所述远程服务器通过所述分布式锁从所有所述第二目标资源转移请求线程中获取第一目标资源转移请求线程。
可选的,所述方法还包括:
响应于每组所述请求线程的数量大于所述网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
可选的,所述方法还包括:
向所述请求线程中的交易请求未被所述网关中的服务器通过本地锁获取为第二目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统。
另一方面,提供了一种资源转移请求线程控制方法,所述方法应用于远程服务器中,所述方法包括:
接收第二目标资源转移请求线程,所述第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程;
通过分布式锁从所述第二目标资源转移请求线程中获取第一目标资源转移请求线程;
将所述第一目标资源转移请求线程发送给网络设备,所述网络设备用于通过设置具有预设数量上限令牌的令牌桶对所述第一目标交易请求进行限流。
可选的,所述方法还包括:
向所述第二目标请求线程集合中未被所述远程服务器通过分布式锁获取为第一目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统。
另一方面,提供了一种资源转移请求线程控制装置,所述装置用于网络设备中,所述装置包括:
设置模块,用于设置令牌桶,所述令牌桶中具有预设数量上限的令牌;
第一接收模块,用于接收远程服务器发送的第一目标资源转移请求线程,所述第一目标资源转移请求线程是指已获取本地锁和分布式锁的资源转移请求线程,所述本地锁用以从网关的服务器的资源转移请求线程中获取第二目标资源转移请求线程,所述分布式锁用以从所述第二目标资源转移请求线程中获取所述第一目标资源转移请求线程;
发送模块,用于响应于所述令牌桶中的令牌数大于或等于所述第一目标资源转移请求线程所需的令牌数,将所述令牌桶中的令牌数减少对应所述第一目标资源转移请求线程所需的令牌数的数量,并将所述第一目标资源转移请求线程发送给下游系统。
可选的,所述装置还包括:
第二接收模块,用于接收所述第一目标资源转移请求线程发送的目标令牌,所述目标令牌是指所述第一目标资源转移请求线程获取到所述下游系统的响应后归还的所述第一目标资源转移请求线程所需的令牌数的令牌。
可选的,所述装置还包括:
释放模块,用于根据所述第一目标资源转移请求线程的令牌参数,控制所述第一目标资源转移请求线程释放所述本地锁和所述分布式锁。
可选的,所述装置还包括:
信息返回模块,用于响应于所述令牌桶中的令牌数小于所述第一目标资源转移请求线程所需的令牌数,向上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统中,所述第一目标资源转移请求线程所属的系统。
另一方面,提供了一种资源转移请求线程控制装置,所述装置应用于网关中,所述装置包括:
设置模块,用于设置所述网关中服务器的最大允许请求线程数,所述最大允许请求线程数是指所述网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量;
接收模块,用于接收上游系统发送的请求线程,将所述请求线程按照网关中服务器的数量进行平均分组;
获取模块,用于响应于每组所述请求线程的数量在所述网关中每台服务器的最大允许请求线程数范围内,通过本地锁从所述请求线程中的资源转移请求线程中获取第二目标资源转移请求线程;
发送模块,用于将所述第二目标资源转移请求线程发送至所述远程服务器,以使得所述远程服务器通过所述分布式锁从所有所述第二目标资源转移请求线程中获取第一目标资源转移请求线程。
可选的,所述装置还包括:
第一信息返回模块,用于响应于每组所述请求线程的数量大于所述网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
可选的,所述装置还包括:
第一信息返回模块,用于响应于每组所述请求线程的数量大于所述网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
可选的,所述装置还包括:
第二信息返回模块,用于向所述请求线程中的交易请求未被所述网关中的服务器通过本地锁获取为第二目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统。
另一方面,提供了一种资源转移请求线程控制装置,所述装置应用于远程服务器中,所述装置包括:
接收模块,用于接收第二目标资源转移请求线程,所述第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程;
获取模块,用于通过分布式锁从所述第二目标资源转移请求线程中获取第一目标资源转移请求线程;
发送模块,用于将所述第一目标资源转移请求线程发送给网络设备,所述网络设备用于通过设置具有预设数量上限令牌的令牌桶对所述第一目标交易请求进行限流。
可选的,所述装置还包括:
信息返回模块,用于向所述第二目标请求线程集合中未被所述远程服务器通过分布式锁获取为第一目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统。
另一方面,提供了一种计算机可读存储介质,可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述本申请实施例中提供的方法。
本申请提供的技术方案带来的有益效果至少包括:
网关通过设置网关中服务器的最大允许请求线程数,网络设备设置具有预设数量上限的令牌的令牌桶,网关接收到上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组,网关在每组请求线程的数量在所述网关中每台服务器的最大允许请求线程数范围内时,通过本地锁从请求线程中的资源转移请求线程中通过本地锁获取第二目标资源转移请求线程,网关将第二目标资源转移请求线程发送至远程服务器,远程服务器通过分布式锁从所述第二目标资源转移请求线程中获取第一目标资源转移请求线程,远程服务器将第一目标资源转移请求线程发送给网络设备,网络设备在当令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数时,将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统,远程服务器接收第一目标资源转移请求线程发送的目标令牌,该目标令牌是指第一目标资源转移请求线程获取到下游系统的响应后归还的第一目标资源转移请求线程所需的令牌数的令牌,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一示例性实施例提供的令牌桶的工作方式示意图;
图2示出了本申请另一个示例性的实施例提供的资源转移请求线程控制方法的流程图;
图3示出了本申请另一个示例性的实施例提供的资源转移请求线程控制方法的流程图;
图4示出了本申请另一个示例性的实施例提供的资源转移请求线程控制方法的流程图;
图5示出了本申请一个示例性的实施例提供的资源转移请求线程控制方法的流程图;
图6示出了本申请一个示例性实施例提供的资源转移请求线程控制装置的方框图;
图7示出了本申请一个示例性实施例提供的资源转移请求线程控制装置的方框图;
图8示出了本申请一个示例性实施例提供的资源转移请求线程控制装置的方框图;
图9是根据一示例性实施例示出的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单的介绍:
1)令牌桶
令牌桶是一种常用的流量控制技术。令牌桶本身没有丢弃和优先级策略。令牌桶的工作过程如下:1、令牌以一定的速率放入桶中。2、每个令牌允许源发送一定数量的比特。3、发送一个包,流量调节器就要从桶中删除与包大小相等的令牌数。4、如果没有足够的令牌发送包,这个包就会等待直到有足够的令牌(在整形器的情况下)或者包被丢弃,也有可能被标记更低的DSCP(在策略者的情况下)。5、桶有特定的容量,如果桶已经满了,新加入的令牌就会被丢弃。因此,在任何时候,源发送到网络上的最大突发数据量与桶的大小成比例。令牌桶允许突发,但是不能超过限制。
请参考图1,其示出了本申请一示例性实施例提供的令牌桶的工作方式示意图。如图1所示,大小固定的令牌桶可以自行以恒定的速率远远不断地产生令牌,如果令牌不被小号,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把桶填满。后面再产生的令牌就会从桶中溢出。最后桶中保留的最大令牌数永远不会超过桶的大小,获得令牌的数据包允许执行进行后续操作,当令牌消耗的速度大于令牌产生的速度时,未获得令牌的数据包会被丢弃或进入缓存队列。
在本申请实施例中,令牌桶中具有预设数量上限的令牌,也就是在使用过程中,令牌桶中令牌数的最大数额是一定的,在令牌被消耗的过程中,不会新加入令牌,但是存在归还令牌的过程,以此来实现流量控制。
2)令牌(Token)
Token是一个服务端生成的一串字符串,作为客户端进行请求的一个标识。
3)本地锁
在单线程的系统中,当存在多个线程可以同时改变某个变量(可变共享变量)时,就需要对变量或代码块做同步,使其在修改这种变量时能够线性执行消除并发修改变量,而同步的本质是通过锁来实现的。为了实现多个线程在一个时刻同一个代码块只能有一个线程可执行,那么需要在某个地方做个标记,这个标记必须每个线程都能看到,当标记不存在时可以设置该标记,其余后续线程发现已经有标记了则等待拥有标记的线程结束同步代码块取消标记后再去尝试设置标记。这个标记可以理解为锁。
本申请实施例中的本地锁,是相对于网关的每一台服务器而言,对所有进入该服务器的线程均可见的标记,只有拥有这个标记才能进入该服务器进行相应的业务操作。
4)分布式锁
分布式锁是控制分布式系统之间同步访问共享资源的一种方式。
在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。与单机模式下的锁不仅需要保证进程可见,还需要考虑进程与锁之间的网络问题。
分布式锁还是可以将标记存在内存,只是该内存不是某个进程分配的内存而是公共内存如 Redis、Memcache。至于利用数据库、文件等做锁与单机的实现是一样的,只要保证标记能互斥就行。
在本申请实施例中,分布式锁是用来在网关的多台服务器发送的多个资源转移请求线程同时访问一个或一组资源时,防止彼此干扰来保证一致性的一种方式。
5)线程
线程是操作系统能够进行运算调度的最小单位。一条线程指的是进程中的一个单一顺序的控制流,一个进程中可以并行多个线程,每条线程并行执行不同的任务。
6)网关(Gateway)
网关又称网间连接器、协议转换器,用以在网络层以上实现网络互联,可以理解为一个网络通向其他网络的网际协议地址(Internet Protocol Address,IP地址)。
其中,支付网关(Payment Gateway)是网关的一种。支付网关是企业金融网络系统和因特网(Internet)网络之间的信息交换平台,将企业金融系统的指令转换为Internet上传输的数据,或将接受的Internet的返回信息转换为企业金融机构内部数据的一组服务器设备。支付网关对外提供各种接口,为多个用户提供服务。
在网关的使用过程中,由于业务高峰造成的网络拥堵,大量的并发请求通过网关瞬间请求到对应的下游系统,会造成大量的请求积压和超时。本申请实施例提供一种资源转移请求线程控制方法,可以在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
请参考图2,其示出了本申请一个示例性的实施例提供的资源转移请求线程控制方法的流程图。该资源转移请求线程控制方法有网络设备执行,该网络设备可以是服务器,如图2所示,该资源转移请求线程控制方法可以包括以下步骤:
步骤210,设置令牌桶,该令牌桶中具有预设数量上限的令牌。
在该网络设备设置的令牌桶中,令牌桶中的令牌数量是有上限的,该上限可以进行调节,该上限可以是令牌桶的最大容量,也可以是开发人员设置的数量阈值,在令牌桶中的令牌消耗过程中,令牌桶不会从外界额外的获取令牌来维持令牌桶中令牌的数量。比如,某个令牌桶中设置的令牌数量上限为5个,初始令牌桶中令牌的个数为5个,在资源转移请求线程通过该令牌桶的过程中,存在或者消耗的令牌始终为这5个令牌中的令牌,不会存在新加入的令牌。
步骤220,接收远程服务器发送的第一目标资源转移请求线程,该第一目标资源转移请求线程是指已获取本地锁和分布式锁的资源转移请求线程,本地锁用以从网关的服务器的资源转移请求线程中获取第二目标资源转移请求线程,分布式锁用以从第二目标资源转移请求线程中获取第一目标资源转移请求线程。
第一目标交易请求是指在网关的服务器获得了本地锁和在远程服务器获得了分布式锁之后被远程服务器发送到网络设备的资源转移请求线程。
步骤230,响应于令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数,将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统。
令牌桶中的令牌可以对每次允许发送的数据源进行数量限制,若一个资源转移请求线程为1比特,且一个令牌允许发送的数据源的数量也为1比特,那么该资源转移请求线程从令牌桶中获取一个令牌,即可以被发送至下游系统,但若资源转移请求线程为2比特,但一个令牌允许发送的数据源的数量为1比特,那么该资源转移请求线程需要从令牌桶中获取两个令牌,才能被发送至下游系统,因此当令牌桶中的令牌数大于等于资源转移请求线程所需的令牌数时,才会将该资源转移请求线程发送给下游系统,同时令牌桶中的令牌数会减少该资源转移请求线程所需的令牌数。
综上所述,本申请实施例中提供的资源转移请求线程控制方法,由网络设备通过设置具有预设数量上限的令牌的令牌桶,接收远程服务器发送的已获取本地锁和分布式锁的第一目标资源转移请求线程,当令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数,则将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
与图2所示实施例的资源转移请求线程控制方法相对应,在网关中,请参考图3,其示出了本申请一个示例性的实施例提供的资源转移请求线程控制方法的流程图。该资源转移请求线程控制方法应用于网关中,如图3所示,该资源转移请求线程控制方法可以包括以下步骤:
步骤310,设置网关中服务器的最大允许请求线程数,该最大允许请求线程数是指网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量。
其中,该网关中包含有至少一台服务器,该最大允许请求线程数可以是该网关中每台服务器所允许通过的最大请求线程数,该请求线程数中可以包括资源转移请求线程和其他请求线程,网关除进行资源转移请求线程的处理外,还包括诸如文件管理,信息更新等其他线程,这些都会占用网关服务器的处理资源,通过设置每台服务器允许处理的最大请求线程数,来初步进行流量限制。
步骤320,接收上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组。
上游系统可以是指与用户终端进行连接的交易平台,比如收银台,当网关接收到上游系统发送的请求线程时,会根据网关中所具有的正常运作的服务器的数量对上游系统发送的请求线程进行平均分组,以使得网关中的服务器能够同时对请求线程进行处理,避免出现部分服务器闲置,部分服务器出请求线程积压的问题。
步骤330,响应于每组请求线程的数量在网关中每台服务器的最大允许请求线程数范围内,通过本地锁从请求线程中的资源转移请求线程中获取第二目标资源转移请求线程。
当每组请求线程的数量小于网关中每台服务器所能处理的最大允许请求线程数时,说明该请求数量并未超过支付网网关所能处理的最大数量,网关中的每台服务器可以通过本地锁从分配给该服务器的一组请求线程中的资源转移请求线程中获取目标请求线程,分部给该服务器的一组请求线程中的资源转移请求线程都可以获取本地锁,但当有资源转移请求线程获取到本地锁之后,其他资源转移请求线程将无法获取直至获取到本地锁的资源转移请求线程将本地锁释放出来。也就是说,只有获得了本地锁的资源转移请求线程才能被网关的服务器发送到下游系统,而未获得本地所的资源转移请求线程处于缓存状态。
当网关中有多台服务器时,将每台服务器中获得本地锁的资源转移请求线程集合称为第二目标资源转移请求线程,该第二目标资源转移请求线程中可以包含至少一个资源转移请求线程。
比如,当网关中存在10台服务器中,那么当每台服务器中均被分配有资源转移请求线程时,在同一时间,该网关中获得本地锁的资源转移请求线程至少为10个,这10个资源转移请求线程被成为第二目标资源转移请求线程。
步骤340,将第二目标资源转移请求线程发送至远程服务器,以使得远程服务器通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程。
综上所述,本申请实施例中提供的资源转移请求线程控制方法,由网关中的服务器执行,通过设置网关中服务器的最大允许请求线程数,接收上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组,当每组请求线程的数量在网关中每台服务器的最大允许请求线程数范围内时,通过本地锁从请求线程中的资源转移请求线程中获取第二目标资源转移请求线程,将第二目标资源转移请求线程发送至远程服务器,以使得远程服务器通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
与图2或图3所示实施例的交易请求控制方法相对应,在远程服务器中,请参考图4,其示出了本申请一个示例性的实施例提供的资源转移请求线程控制方法的流程图。该交易请求控制方法应用于远程服务器中,如图4所示,该资源转移请求线程控制方法可以包括以下步骤:
步骤410,接收第二目标资源转移请求线程,该第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程。
步骤420,通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程。
当该第二目标资源转移请求线程为获得本地锁的资源转移请求线程的集合时,比如,该第二目标资源转移请求线程中包含有10个获得本地锁的资源转移请求线程,那么远程服务器通过分布式锁可以从10个获得本地锁的资源转移请求线程中获取1个资源转移请求线程,即将获得了本地锁和分布式锁的资源转移请求线程称为第一目标资源转移请求线程,从而进一步进行流量限制。
其中,分布式锁的实现可以有Memcached分布式锁,Redis分布式锁,Zookeeper分布式锁,Chubby几种。以Redis分布式锁为例,实现过程可以包括以下三个核心要素:
1)加锁
可以使用setnx命令。key是锁的唯一标识,按业务来决定命名。比如想要给一种商品的秒杀活动加锁,可以给key命名为 “lock_sale_商品ID” 。而value可以设置成1。加锁的伪代码如下:
setnx(key,1);
当一个线程执行setnx返回1,说明key原本不存在,该线程成功得到了锁;当一个线程执行setnx返回0,说明key已经存在,该线程抢锁失败。
2)解锁
当得到锁的线程执行完任务,需要释放锁,以便其他线程可以进入,释放锁可以通过执行del指令实现,伪代码如下:
del(key);
释放锁之后,其他线程就可以继续执行setnx命令来获得锁。
3)锁超时
如果一个得到锁的线程在执行任务的过程中挂掉,来不及显式地释放锁,这块资源将会永远被锁住,别的线程将无法进入。所以,setnx的key必须设置一个超时参数,以保证即使没有被显式释放,这把锁也要在一定时间后自动释放。setnx不支持超时参数,所以需要额外的指令,伪代码如下:
expire(key,30);
步骤430,将第一目标资源转移请求线程发送给网络设备,该网络设备用于通过设置具有预设数量上限令牌的令牌桶对第一目标交易请求进行限流。
综上所述,本申请实施例中提供的资源转移请求线程控制方法,由远程服务器执行,通过接收第二目标资源转移请求线程,第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程,通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程,将第一目标资源转移请求线程发送给网络设备,该网络设备用于通过设置具有预设数量上限令牌的令牌桶对第一目标交易请求进行限流,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
基于图2、图3和图4所示实施例,请参考图5,其示出了本申请一个示例性的实施例提供的资源转移请求线程控制方法的流程图。该交易请求控制方法由网络设备、网关以及远程服务器交互执行,如图5所示,该资源转移请求线程控制方法可以包括以下步骤:
步骤501,网关设置网关中每台服务器的最大允许请求线程数,该最大允许请求线程数是指网关中每台服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量。
步骤502,网络设备设置令牌桶,该令牌桶中具有预设数量上限的令牌。
步骤503,网关接收上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组,相应的,上游系统发送请求线程。
步骤504,网关在每组请求线程的数量在网关中每台服务器的最大允许请求线程数范围内时,通过本地锁从请求线程中的资源转移请求线程中获取第二目标资源转移请求线程。
可选的,响应于每组请求线程的数量大于网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
可选的,网关向请求线程中的交易请求未被网关中的服务器通过本地锁获取为第二目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,该上游系统是指向网关的每台服务器发送资源转移请求线程的系统。
步骤505,网关将第二目标资源转移请求线程发送至远程服务器,相应的,远程服务器接收第二目标资源转移请求线程。
步骤506,远程服务器通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程。
可选的,远程服务器向第二目标请求线程集合中未被远程服务器通过分布式锁获取为第一目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,该上游系统是指向网关的服务器发送资源转移请求线程的系统。
步骤507,远程服务器将第一目标资源转移请求线程发送给网络设备,相应的,网络设备接收远程服务器发送的第一目标资源转移请求线程。
步骤508,网络设备在当令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数时,将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统。
可选的,根据第一目标资源转移请求线程的令牌参数,控制第一目标资源转移请求线程释放本地锁和分布式锁。
其中,该第一目标资源转移请求线程的令牌参数用以指示第一目标资源转移请求线程所需的令牌数。响应于令牌桶中的令牌数大于或等于第一目标交易请求线程所需的令牌数,将令牌桶中的令牌数减少对应第一目标交易请求线程所需的令牌数的数量之后,控制第一目标资源转移请求线程释放本地锁和分布式锁。可选的,响应于令牌桶中的令牌数小于第一目标资源转移请求线程所需的令牌数,向上游系统返回限制流量的信息,该上游系统是指向网关的服务器发送资源转移请求线程的系统中,该第一目标资源转移请求线程所属的系统。
步骤509,远程服务器接收第一目标资源转移请求线程发送的目标令牌,该目标令牌是指第一目标资源转移请求线程获取到下游系统的响应后归还的第一目标资源转移请求线程所需的令牌数的令牌。
比如,某个令牌桶中设置的令牌数量上限为5个,初始令牌桶中令牌的个数为5个,在第一个资源转移请求线程通过该令牌桶时,假设每个资源转移请求线程只消耗一个令牌,那么当第一个资源转移请求线程通过该令牌桶后,该令牌桶中剩余4个令牌,假设在后续资源转移请求线程通过该令牌桶的过程中不存在归还令牌的现象,那么当第五个资源转移请求线程通过该令牌桶后,令牌桶中令牌的数量为0,第五个资源转移请求线程之后的资源转移请求线程无法从该令牌桶中获取到令牌,直至之前获得令牌的5个资源转移请求线程在执行完相应的任务后,将令牌归还至令牌桶中,后续的资源转移请求线程才能获取令牌以执行后续操作,从而达到限流的目的。
上述网关可以是支付网关,下游系统可以是银行系统,上游系统可以是支付网关所对应的收银台。
以一个点餐高峰为例,用户通过点餐软件发送交易请求至收银台(上游系统),收银台处同时接收到多个交易请求,向支付网关(网关)并发多个包含交易请求的请求线程,支付网关将这多个请求线程按照支付网关服务器的数量进行平均分组,当每组的请求线程大于支付网关中每台服务器所能处理的最大线程时,向收银台反馈限流信息,当每组的请求线程在支付网关中每台服务器所能处理的最大线程范围内时,将请求线程中的支付请求线程分组发送给支付网关中的每台服务器,在支付网关的一台服务器中,该服务器中的支付请求线程通过执行预设的本地锁程序获得本地锁,只有获得本地锁的支付请求线程被支付网关的服务器发送至远程服务器,同时支付网关会向没有获得本地锁的支付请求线程所属的收银台反馈限流信息;支付网关中获取到本地锁的若干支付请求线程会被发送到远程服务器中,在远程服务器中,这些获取到本地锁的支付请求线程通过获取分布式锁,以使得远程服务器将其发送至网络设备,只有获得分布式锁的支付请求线程才会被远程服务器发送至网络设备,同时远程服务器会向没有获得分布式锁的支付请求线程所属的收银台反馈限流信息;发送到网络设备的支付请求线程需要从网络设备的令牌桶中获取令牌,当支付请求线程获取到令牌时,网络设备会将该支付请求线程发送给银行系统(下游系统),同时该支付请求线程会将之前获得的本地锁和分布式锁释放,以供其他支付请求线程进行锁的获取,同时,支付网关也会向没有获得足够令牌的支付请求线程所属的收银台反馈限流信息;当获得令牌的支付请求线程获取到银行系统的反馈后,将其获取到的令牌归还至令牌桶,以供其他支付请求进行令牌的获取。
综上所述,本申请实施例中提供的资源转移请求线程控制方法,网关通过设置网关中服务器的最大允许请求线程数,网络设备设置具有预设数量上限的令牌的令牌桶,网关接收到上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组,网关在每组请求线程的数量在网关中每台服务器的最大允许请求线程数范围内时,通过本地锁从请求线程中的资源转移请求线程中通过本地锁获取第二目标资源转移请求线程,网关将第二目标资源转移请求线程发送至远程服务器,远程服务器通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程,远程服务器将第一目标资源转移请求线程发送给网络设备,网络设备在当令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数时,将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统,远程服务器接收第一目标资源转移请求线程发送的目标令牌,该目标令牌是指第一目标资源转移请求线程获取到下游系统的响应后归还的第一目标资源转移请求线程所需的令牌数的令牌,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
请参考图6,其示出了本申请一个示例性实施例提供的资源转移请求线程控制装置的方框图,该装置可以通过软件的形式实现为网络设备的全部或者部分,以执行图2、图3、图4或图5对应实施例所示的方法的全部或部分步骤。如图6所示,该资源转移请求线程控制装置可以包括:
设置模块610,用于设置令牌桶,令牌桶中具有预设数量上限的令牌;
第一接收模块620,用于接收远程服务器发送的第一目标资源转移请求线程,第一目标资源转移请求线程是指已获取本地锁和分布式锁的资源转移请求线程,本地锁用以从网关的服务器的资源转移请求线程中获取第二目标资源转移请求线程,分布式锁用以从第二目标资源转移请求线程中获取第一目标资源转移请求线程;
发送模块630,用于响应于令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数,将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统。
可选的,该装置还包括:
第二接收模块,用于接收第一目标资源转移请求线程发送的目标令牌,目标令牌是指第一目标资源转移请求线程获取到下游系统的响应后归还的第一目标资源转移请求线程所需的令牌数的令牌。
可选的,该装置还包括:
释放模块,用于根据第一目标资源转移请求线程的令牌参数,控制第一目标资源转移请求线程释放本地锁和分布式锁,该令牌参数用以指示第一目标资源请求线程所需的令牌数。
可选的,该装置还包括:
信息返回模块,用于响应于令牌桶中的令牌数小于第一目标资源转移请求线程所需的令牌数,向上游系统返回限制流量的信息,上游系统是指向网关的服务器发送资源转移请求线程的系统中,第一目标资源转移请求线程所属的系统。
综上所述,本申请实施例中提供的资源转移请求线程控制装置,应用于网络设备中,由网络设备通过设置具有预设数量上限的令牌的令牌桶,接收远程服务器发送的已获取本地锁和分布式锁的第一目标资源转移请求线程,当令牌桶中的令牌数大于或等于第一目标资源转移请求线程所需的令牌数,则将令牌桶中的令牌数减少对应第一目标资源转移请求线程所需的令牌数的数量,并将第一目标资源转移请求线程发送给下游系统,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
请参考图7,其示出了本申请一个示例性实施例提供的资源转移请求线程控制装置的方框图,该装置可以通过软件的形式实现为网关中的服务器的全部或者部分,以执行图2、图3、图4或图5对应实施例所示的方法的全部或部分步骤。如图7所示,该资源转移请求线程控制装置可以包括:
设置模块710,用于设置网关中服务器的最大允许请求线程数,最大允许请求线程数是指网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量;
接收模块720,用于接收上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组;
获取模块730,用于响应于每组请求线程的数量在网关中每台服务器的最大允许请求线程数范围内,通过本地锁从请求线程中的资源转移请求线程中获取第二目标资源转移请求线程;
发送模块740,用于将第二目标资源转移请求线程发送至远程服务器,以使得远程服务器通过分布式锁从所有第二目标资源转移请求线程中获取第一目标资源转移请求线程。
可选的,该装置还包括:
第一信息返回模块,用于响应于每组请求线程的数量大于网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
可选的,该装置还包括:
第一信息返回模块,用于响应于每组请求线程的数量大于网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
可选的,该装置还包括:
第二信息返回模块,用于向请求线程中的交易请求未被网关中的服务器通过本地锁获取为第二目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,上游系统是指向网关的服务器发送资源转移请求线程的系统。
综上所述,本申请实施例中提供的资源转移请求线程控制装置,应用于网关的服务器中,通过设置网关中服务器的最大允许请求线程数,接收上游系统发送的请求线程,将请求线程按照网关中服务器的数量进行平均分组,当每组请求线程的数量在网关中每台服务器的最大允许请求线程数范围内时,通过本地锁从请求线程中的资源转移请求线程中获取第二目标资源转移请求线程,将第二目标资源转移请求线程发送至远程服务器,以使得远程服务器通过分布式锁从所有第二目标资源转移请求线程中获取第一目标资源转移请求线程,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
请参考图8,其示出了本申请一个示例性实施例提供的资源转移请求线程控制装置的方框图,该装置可以通过软件的形式实现为远程服务器的全部或者部分,以执行图2、图3、图4或图5对应实施例所示的方法的全部或部分步骤。如图8所示,该资源转移请求线程控制装置可以包括:
接收模块810,用于接收第二目标资源转移请求线程,第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程;
获取模块820,用于通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程;
发送模块830,用于将第一目标资源转移请求线程发送给网络设备,网络设备用于通过设置具有预设数量上限令牌的令牌桶对第一目标交易请求进行限流。
可选的,该装置还包括:
信息返回模块,用于向第二目标请求线程集合中未被远程服务器通过分布式锁获取为第一目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,上游系统是指向网关的服务器发送资源转移请求线程的系统。
综上所述,本申请实施例中提供的资源转移请求线程控制装置,应用于远程服务器中,通过接收第二目标资源转移请求线程,第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程,通过分布式锁从第二目标资源转移请求线程中获取第一目标资源转移请求线程,将第一目标资源转移请求线程发送给网络设备,该网络设备用于通过设置具有预设数量上限令牌的令牌桶对第一目标交易请求进行限流,使得在分布式高并发的网关请求场景中,通过多方面的流量限制,减少了下游系统请求负载的压力。
图9是根据一示例性实施例示出的计算机设备900的结构框图。该计算机设备可以实现为本申请上述方案中的上游系统、网络设备,网关中的服务器以及远程服务器。所述计算机设备900包括中央处理单元(Central Processing Unit,CPU)901、包括随机存取存储器(Random Access Memory ,RAM)902和只读存储器(Read-Only Memory,ROM)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述计算机设备900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(Input /Output 系统,I/O系统)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备909。
所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备907。其中所述显示器908和输入设备907都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备909通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备909及其相关联的计算机可读介质为计算机设备900提供非易失性存储。也就是说,所述大容量存储设备909可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-OnlyMemory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字多功能光盘(Digitalversatile disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备909可以统称为存储器。
根据本申请的各种实施例,所述计算机设备900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理单元901通过执行该一个或一个以上程序来实现图2或图3所示的方法的全部或者部分步骤。
本领域技术人员可以理解,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本申请实施例还提供了一种计算机可读存储介质,用于存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述语音端点检测方法。例如,该计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种资源转移请求线程控制方法,其特征在于,所述方法由网络设备执行,所述方法包括:
设置令牌桶,所述令牌桶中具有预设数量上限的令牌;
接收远程服务器发送的第一目标资源转移请求线程,所述第一目标资源转移请求线程是指已获取本地锁和分布式锁的资源转移请求线程,所述本地锁用以从网关的服务器的资源转移请求线程中获取第二目标资源转移请求线程,所述分布式锁用以从所述第二目标资源转移请求线程中获取所述第一目标资源转移请求线程;
响应于所述令牌桶中的令牌数大于或等于所述第一目标资源转移请求线程所需的令牌数,将所述令牌桶中的令牌数减少对应所述第一目标资源转移请求线程所需的令牌数的数量,并将所述第一目标资源转移请求线程发送给下游系统;
所述本地锁用以从网关的服务器的资源转移请求线程中获取第二目标资源转移请求线程,包括:
所述网关中服务器设置有最大允许请求线程数,所述最大允许请求线程数是指所述网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量;
接收上游系统发送的请求线程,将所述请求线程按照网关中服务器的数量进行平均分组;
响应于每组所述请求线程的数量在所述网关中每台服务器的最大允许请求线程数范围内,通过本地锁从所述请求线程中的资源转移请求线程中获取第二目标资源转移请求线程。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一目标资源转移请求线程发送的目标令牌,所述目标令牌是指所述第一目标资源转移请求线程获取到所述下游系统的响应后归还的所述第一目标资源转移请求线程所需的令牌数的令牌。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第一目标资源转移请求线程的令牌参数,控制所述第一目标资源转移请求线程释放所述本地锁和所述分布式锁,所述令牌参数用以指示所述第一目标资源转移请求线程所需的令牌数。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述令牌桶中的令牌数小于所述第一目标资源转移请求线程所需的令牌数,向上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统中,所述第一目标资源转移请求线程所属的系统。
5.一种资源转移请求线程控制方法,其特征在于,所述方法应用于网关中,所述方法包括:
设置所述网关中服务器的最大允许请求线程数,所述最大允许请求线程数是指所述网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量;
接收上游系统发送的请求线程,将所述请求线程按照网关中服务器的数量进行平均分组;
响应于每组所述请求线程的数量在所述网关中每台服务器的最大允许请求线程数范围内,通过本地锁从所述请求线程中的资源转移请求线程中获取第二目标资源转移请求线程;
将所述第二目标资源转移请求线程发送至远程服务器,以使得所述远程服务器通过分布式锁从所有所述第二目标资源转移请求线程中获取第一目标资源转移请求线程;
所述方法还包括:
网络设备设置令牌桶,所述令牌桶中具有预设数量上限的令牌,响应于所述令牌桶中的令牌数大于或等于所述第一目标资源转移请求线程所需的令牌数,将所述令牌桶中的令牌数减少对应所述第一目标资源转移请求线程所需的令牌数的数量,并将所述第一目标资源转移请求线程发送给下游系统。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
响应于每组所述请求线程的数量大于所述网关中每台服务器的最大允许请求线程数范围,向上游系统返回限制流量的信息。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
向所述请求线程中的交易请求未被所述网关中的服务器通过本地锁获取为第二目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统。
8.一种资源转移请求线程控制方法,其特征在于,所述方法应用于远程服务器中,所述方法包括:
接收第二目标资源转移请求线程,所述第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程;
通过分布式锁从所述第二目标资源转移请求线程中获取第一目标资源转移请求线程;
将所述第一目标资源转移请求线程发送给网络设备,所述网络设备用于通过设置具有预设数量上限令牌的令牌桶对第一目标交易请求进行限流;
所述第二目标资源转移请求线程是由网关中的服务器通过本地锁从上游系统发送的交易请求中获取的资源转移请求线程,包括:
所述网关中服务器设置有最大允许请求线程数,所述最大允许请求线程数是指所述网关中服务器所能处理的包括资源转移请求线程在内的所有请求线程的最大数量;
接收上游系统发送的请求线程,将所述请求线程按照网关中服务器的数量进行平均分组;
响应于每组所述请求线程的数量在所述网关中每台服务器的最大允许请求线程数范围内,通过本地锁从所述请求线程中的资源转移请求线程中获取第二目标资源转移请求线程;
所述网络设备用于通过设置具有预设数量上限令牌的令牌桶对第一目标交易请求进行限流,包括:
网络设备设置令牌桶,所述令牌桶中具有预设数量上限的令牌,响应于所述令牌桶中的令牌数大于或等于所述第一目标资源转移请求线程所需的令牌数,将所述令牌桶中的令牌数减少对应所述第一目标资源转移请求线程所需的令牌数的数量,并将所述第一目标资源转移请求线程发送给下游系统。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
向第二目标请求线程集合中未被所述远程服务器通过分布式锁获取为第一目标资源转移请求线程的资源转移请求线程所属的上游系统返回限制流量的信息,所述上游系统是指向所述网关的服务器发送资源转移请求线程的系统。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至9任一所述的资源转移请求线程控制方法。
CN201911401579.1A 2019-12-30 2019-12-30 资源转移请求线程控制方法、装置及存储介质 Active CN111158878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911401579.1A CN111158878B (zh) 2019-12-30 2019-12-30 资源转移请求线程控制方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911401579.1A CN111158878B (zh) 2019-12-30 2019-12-30 资源转移请求线程控制方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN111158878A CN111158878A (zh) 2020-05-15
CN111158878B true CN111158878B (zh) 2023-08-29

Family

ID=70559349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911401579.1A Active CN111158878B (zh) 2019-12-30 2019-12-30 资源转移请求线程控制方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN111158878B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112600761B (zh) * 2020-12-11 2024-04-09 腾讯科技(深圳)有限公司 一种资源分配的方法、装置及存储介质
CN113535415B (zh) * 2021-06-21 2023-08-04 福建天泉教育科技有限公司 一种资源获取方法及终端
CN113641477A (zh) * 2021-08-17 2021-11-12 南方电网深圳数字电网研究院有限公司 基于Zookeeper的线程调度方法及装置
CN114024908A (zh) * 2021-11-03 2022-02-08 蚂蚁胜信(上海)信息技术有限公司 实时自适应限流方法、限流服务系统和限流器
CN114785640B (zh) * 2022-06-23 2022-09-20 奇秦科技(北京)股份有限公司 一种物联网网关集群组件设计方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201314587D0 (en) * 2013-08-14 2013-09-25 Micro Focus Ip Dev Ltd Distributed transaction system
US9703602B1 (en) * 2015-03-31 2017-07-11 Amazon Technologies, Inc. Burst throttling for multi-tenant storage services
CN108319496A (zh) * 2017-01-18 2018-07-24 阿里巴巴集团控股有限公司 资源访问方法、业务服务器、分布式系统及存储介质
US10089145B1 (en) * 2015-12-28 2018-10-02 Amazon Technologies, Inc. Approximating sequential workloads on resource constrained systems
CN108874552A (zh) * 2018-06-28 2018-11-23 杭州云英网络科技有限公司 分布式锁执行方法、装置及系统、应用服务器和存储介质
CN109714268A (zh) * 2019-01-23 2019-05-03 平安科技(深圳)有限公司 一种虚拟私有云的流量控制方法及相关装置
CN110198275A (zh) * 2018-03-28 2019-09-03 腾讯科技(深圳)有限公司 一种流量控制方法、系统、服务器及存储介质
CN110198272A (zh) * 2018-10-12 2019-09-03 腾讯科技(深圳)有限公司 一种流量控制方法及装置、存储介质
CN110290191A (zh) * 2019-06-18 2019-09-27 北京三快在线科技有限公司 资源转移结果处理方法、装置、服务器、终端及存储介质
CN110517032A (zh) * 2019-08-29 2019-11-29 北京三快在线科技有限公司 资源转移方法、系统、装置、服务器及存储介质
CN110545246A (zh) * 2018-05-29 2019-12-06 北京京东尚科信息技术有限公司 一种基于令牌桶的限流方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020138643A1 (en) * 2000-10-19 2002-09-26 Shin Kang G. Method and system for controlling network traffic to a network computer

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201314587D0 (en) * 2013-08-14 2013-09-25 Micro Focus Ip Dev Ltd Distributed transaction system
US9703602B1 (en) * 2015-03-31 2017-07-11 Amazon Technologies, Inc. Burst throttling for multi-tenant storage services
US10089145B1 (en) * 2015-12-28 2018-10-02 Amazon Technologies, Inc. Approximating sequential workloads on resource constrained systems
CN108319496A (zh) * 2017-01-18 2018-07-24 阿里巴巴集团控股有限公司 资源访问方法、业务服务器、分布式系统及存储介质
CN110198275A (zh) * 2018-03-28 2019-09-03 腾讯科技(深圳)有限公司 一种流量控制方法、系统、服务器及存储介质
CN110545246A (zh) * 2018-05-29 2019-12-06 北京京东尚科信息技术有限公司 一种基于令牌桶的限流方法和装置
CN108874552A (zh) * 2018-06-28 2018-11-23 杭州云英网络科技有限公司 分布式锁执行方法、装置及系统、应用服务器和存储介质
CN110198272A (zh) * 2018-10-12 2019-09-03 腾讯科技(深圳)有限公司 一种流量控制方法及装置、存储介质
CN109714268A (zh) * 2019-01-23 2019-05-03 平安科技(深圳)有限公司 一种虚拟私有云的流量控制方法及相关装置
CN110290191A (zh) * 2019-06-18 2019-09-27 北京三快在线科技有限公司 资源转移结果处理方法、装置、服务器、终端及存储介质
CN110517032A (zh) * 2019-08-29 2019-11-29 北京三快在线科技有限公司 资源转移方法、系统、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN111158878A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN111158878B (zh) 资源转移请求线程控制方法、装置及存储介质
US11546644B2 (en) Bandwidth control method and apparatus, and device
US6807667B1 (en) Method and system of an application program interface for abstracting network traffic control components to application programs
US9967196B2 (en) Systems and/or methods for resource use limitation in a cloud environment
KR100383381B1 (ko) 제한된메모리컴퓨터시스템에서의클라이언트관리흐름제어를위한방법과장치
US8195798B2 (en) Application server scalability through runtime restrictions enforcement in a distributed application execution system
JP2592213B2 (ja) データ処理システム及び情報伝送方法
US8386607B2 (en) Method and system for utilizing a resource conductor to optimize resource management in a distributed computing environment
WO2019179026A1 (zh) 电子装置、集群访问域名自动生成方法及存储介质
US6820129B1 (en) System and method of managing network buffers
JP2009251708A (ja) I/oノード制御方式及び方法
US10778512B2 (en) System and method for network provisioning
CN114915593B (zh) 基于Redis的流量控制方法、装置、电子设备及存储介质
CN110297698B (zh) 一种多优先级动态限流方法、装置、服务器及存储介质
IL278825A (en) Methods and system for data transfer
US7299285B2 (en) Resource sharing with database synchronization
US8473579B2 (en) Data reception management apparatus, systems, and methods
JP4117889B2 (ja) ウェブアプリケーションを実行するための通信を制御するコンピュータおよびその方法
JP2008186358A (ja) データベースアクセスシステムおよびデータベースアクセス方法ならびにプログラム
JP6595419B2 (ja) Api提供装置及びapiリクエスト制御方法
CN114465958B (zh) 一种输入输出的控制方法、装置及介质
CN117519988B (zh) 一种基于raid的内存池动态调配方法、装置
CN116074553B (zh) 视频流传输方法、装置、电子设备及存储介质
CN117459586A (zh) 访问请求的处理方法和装置、存储介质及电子装置
CN113542146A (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