CN113765819A - 资源访问方法、装置、电子设备及存储介质 - Google Patents
资源访问方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113765819A CN113765819A CN202010903489.9A CN202010903489A CN113765819A CN 113765819 A CN113765819 A CN 113765819A CN 202010903489 A CN202010903489 A CN 202010903489A CN 113765819 A CN113765819 A CN 113765819A
- Authority
- CN
- China
- Prior art keywords
- token
- timestamp
- current
- time
- linked list
- 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
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000000605 extraction Methods 0.000 claims abstract description 60
- 230000015654 memory Effects 0.000 claims description 21
- 230000000694 effects Effects 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000007547 defect Effects 0.000 abstract 1
- 239000002699 waste material Substances 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000004622 sleep time Effects 0.000 description 2
- 241000412611 Consul Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供一种资源访问方法、装置、电子设备及存储介质,包括:根据获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳,若根据上一次令牌被提取的时间戳确定出令牌桶存在可用令牌,则提取可用令牌,根据可用令牌对服务资源进行访问,通过采用链表对任意令牌被提取的时间戳进行存储,可以根据上一次令牌被提取的时间戳确定从令牌桶中提取可用令牌,避免相关技术中因无法准确确定令牌桶中是否存在可用令牌而导致的获取令牌失败,浪费资源等弊端,从而可以实现提取令牌的准确性和可靠性,进而可以实现提高对服务资源进行访问的效率和可靠性的技术效果。
Description
技术领域
本申请实施例涉及互联网技术领域,尤其涉及一种资源访问方法、装置、电子设备及存储介质。
背景技术
网关是网络之间的信息交换平台,网关对外提供各种接口,并通过各种接口为用户提供服务,如服务资源访问等服务等,但是网关在为用户提供服务资源时,可能发生网络拥塞导致无法正常为用户提供服务资源的访问等问题。
在现有技术,主要采用设置令牌桶的方式对网络访问进行限流,以避免网络拥塞,如令牌桶可以以一定速率生成令牌,用户可以从令牌桶中获取并基于令牌接收接口提供的服务资源。
在实现本申请过程中,发明人发现现有技术中至少存在如下问题:通过上述现有技术中的方案,无法准确确定令牌桶中是否存在可用令牌,导致用户对服务资源的访问的可靠性偏低。
发明内容
本申请实施例提供一种资源访问方法、装置、电子设备及存储介质,用以解决用户对服务资源的访问的可靠性偏低的问题。
一方面,本申请实施例提供一种资源访问方法,包括:
根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,所述令牌桶中包括链表,所述链表中存储了任意令牌被提取的时间戳;
若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌;
根据所述可用令牌对所述服务资源进行访问。
在本申请实施例中,由于令牌桶中包括链表,而链表中存储了任意令牌被提取的时间戳,因此,可以根据上一次令牌被提取的时间戳确定并从令牌桶中提取可用令牌。
值得说明的是,通过从令牌桶的数据中提取链表中存储的上一令牌被提取的时间戳,并基于该时间戳确定并提取可用令牌,可以提高确定可用令牌的准确性和便捷性,从而提高后续对服务资源进行访问的效率的技术效果。
也就是说,本申请实施例通过采用链表对任意令牌被提取的时间戳进行存储,使得服务器可以从令牌桶的数据中方便快捷地获取上一次令牌被提取的时间戳,并根据上一次令牌被提取的时间戳确定从令牌桶中提取可用令牌,可以避免相关技术中服务器因无法准确确定令牌桶中是否存在可用令牌而导致的获取令牌失败,浪费服务器的资源等弊端,从而可以实现提取令牌的准确性和可靠性,进而可以实现提高服务器对服务资源进行访问的效率和可靠性的技术效果。
在一些实施例中,所述方法还包括:
确定所述链表的长度;
以及,所述若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌包括:若所述链表的长度小于预先设置的限流次数,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
在本申请实施例中,在确定并提取可用令牌之前,先对链表的长度与限流次数进行比较,如果链表的长度小于限流次数,则说明在本轮服务资源访问过程中,还可以持续访问,则可以执行确定并提取可用令牌,通过优先将链表的长度与限流次数的比较,可以提高提取可用令牌的可靠性和准确性的技术效果。
在一些实施例中,所述方法还包括:
确定所述链表的长度;
若所述链表的长度大于或等于预先设置的限流次数,则获取所述链表的表头存储的时间戳;
以及,所述若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌包括:若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
在本申请实施例中,如果链表的长度大于或等于限流次数,则说明本轮服务资源的访问可能已经受限,即服务资源的访问已经达到本轮上限,则为了进一步确定是否已经受限,可以获取表头存储的时间戳,如果当前时间与表头存储的时间戳之间的差值大于限流时间,则说明已经开启了下一轮的服务资源的访问,而后再确定并提取可用令牌,可以高提取可用令牌的可靠性和准确性的技术效果。
在一些实施例中,所述方法还包括:
将当前次令牌被提取的时间戳写入至所述链表,且作为所述链表的当前链尾。
在本申请实施例中,通过将当前次令牌被提取的时间戳写入至链表,可以提高后续确定并提取可用令牌的准确性和可靠性的技术效果。
在一些实施例中,所述方法还包括:
确定所述当前次令牌被提取的时间戳的过期时间;
以及,所述将当前次令牌被提取的时间戳写入至所述链表包括:将所述当前次令牌被提取的时间戳、所述当前次令牌被提取的时间戳的过期时间写入至所述链表。
在本申请实施例中,通过将当前次令牌被提取的时间戳、当前次令牌被提取的时间戳的过期时间写入至链表,可以对链表中的数据进行平滑的删除处理,释放链表的存储空间。
在一些实施例中,所述确定所述当前次令牌被提取的时间戳的过期时间包括:
确定所述当前次令牌被提取的时间戳是否为首次被写入所述链表的时间戳;
若所述当前次令牌被提取的时间戳是首次被写入所述链表的时间戳,则将第一时间确定为所述当前次令牌被提取的时间戳的过期时间。
在本申请实施例中,如果当前次令牌被提取的时间戳是首次被写入链表的时间戳,则说明本轮服务资源访问才开启,因此,可以将第一时间作为当前次令牌被提取的时间戳的过期时间,且第一时间可以为限流时间,从而实现确定出当前次令牌被提取的时间戳的过期时间的可靠性和准确性的技术效果。
在一些实施例中,若所述当前次令牌被提取的时间戳不是首次被写入所述链表的时间戳,则所述方法包括:
获取所述链表的表头至所述当前链尾的长度;
根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间。
在本申请实施例中,如果当前次令牌被提取的时间戳不是首次被写入链表的时间戳,则可以通过与上述示例不同的方式确定当前次令牌被提取的时间戳的过期时间,从而实现确定当前次令牌被提取的时间戳的过期时间的灵活性和多样性的技术效果。
在一些实施例中,所述根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间包括:
若所述表头至所述当前链尾的长度小于或等于预先设置的限流次数,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
在本申请实施例中,如果表头至当前链尾的长度小于或等于限流次数,则说明本轮服务资源访问已经开启且还未结束,则可以将第二时间确定为当前次令牌被提取的时间戳的过期时间,且第二时间可以为限流时间的一半,当然,也可以为大于、小于或等于限流时间的其他时间,以便提高对服务资源的访问效率。
在一些实施例中,所述根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间包括:
若所述表头至所述当前链尾的长度大于预先设置的限流次数,则获取所述表头存储的时间戳;
若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
在本申请实施例中,如果表头至当前链尾的长度大于限流次数,则可以计算当前时间和表头存储的时间戳之间的差值,且若该差值大于限流时间,则说明已经开启下轮的服务资源访问,则可以将第二时间确定为当前次令牌被提取的时间戳的过期时间,以便提高对服务资源的访问效率。
在一些实施例中,所述若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌包括:
若当前时间与所述上一次令牌被提取的时间戳之间的差值大于或等于预先设置的时间差,则确定并提取所述可用令牌,其中,所述时间差是根据所述令牌桶生成一个令牌的时间确定的。
在本申请实施例中,可以通过计算当前时间与上一次令牌被提取的时间戳之间的差值,当该差值大于或等于时间差时,则说明令牌桶中已经生成有可用令牌,则可以从令牌桶中提取可用令牌,从而提高确定并提取可用令牌的准确性和可靠性的技术效果。
另一方面,本申请实施例还提供了一种资源访问装置,所述装置包括:
获取模块,用于根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,所述令牌桶中包括链表,所述链表中存储了任意令牌被提取的时间戳;
提取模块,用于若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌;
访问模块,用于根据所述可用令牌对所述服务资源进行访问。
在一些实施例中,所述装置还包括:
第一确定模块,用于确定所述链表的长度;
以及,所述提取模块用于,若所述链表的长度小于预先设置的限流次数,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
在一些实施例中,所述装置还包括:
第一确定模块,用于确定所述链表的长度;
所述获取模块用于,若所述链表的长度大于或等于预先设置的限流次数,则获取所述链表的表头存储的时间戳;
以及,所述提取模块用于,若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
在一些实施例中,所述装置还包括:
写入模块,用于将当前次令牌被提取的时间戳写入至所述链表,且作为所述链表的当前链尾。
在一些实施例中,所述装置还包括:
第二确定模块,用于确定所述当前次令牌被提取的时间戳的过期时间;
所述写入模块用于,将所述当前次令牌被提取的时间戳、所述当前次令牌被提取的时间戳的过期时间写入至所述链表。
在一些实施例中,所述第二确定模块用于,确定所述当前次令牌被提取的时间戳是否为首次被写入所述链表的时间戳,若所述当前次令牌被提取的时间戳是首次被写入所述链表的时间戳,则将第一时间确定为所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,若所述当前次令牌被提取的时间戳不是首次被写入所述链表的时间戳,则所述第二确定模块用于,获取所述链表的表头至所述当前链尾的长度,根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,所述第二确定模块用于,若所述表头至所述当前链尾的长度小于或等于预先设置的限流次数,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,所述第二确定模块用于,若所述表头至所述当前链尾的长度大于预先设置的限流次数,则获取所述表头存储的时间戳,若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,所述提取模块用于,若当前时间与所述上一次令牌被提取的时间戳之间的差值大于或等于预先设置的时间差,则确定并提取所述可用令牌,其中,所述时间差是根据所述令牌桶生成一个令牌的时间确定的。
另一方面,本申请实施例还提供了一种电子设备,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如上任一实施例所述的方法。
另一方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上任一实施例所述的方法。
本申请实施例提供的一种资源访问方法、装置、电子设备及存储介质,包括:根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳,若根据上一次令牌被提取的时间戳确定出令牌桶存在可用令牌,则提取可用令牌,根据可用令牌对服务资源进行访问,通过采用链表对任意令牌被提取的时间戳进行存储,使得服务器可以从令牌桶的数据中方便快捷地获取上一次令牌被提取的时间戳,并根据上一次令牌被提取的时间戳确定从令牌桶中提取可用令牌,可以避免相关技术中服务器因无法准确确定令牌桶中是否存在可用令牌而导致的获取令牌失败,浪费服务器的资源等弊端,从而可以实现提取令牌的准确性和可靠性,进而可以实现提高服务器对服务资源进行访问的效率和可靠性的技术效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例的资源访问方法的应用场景的示意图;
图2为本申请一个实施例的资源访问方法的流程示意图;
图3为本申请另一实施例的资源访问方法流程示意图;
图4为本申请另一实施例中的资源访问方法的流程示意图;
图5为本申请另一实施例中的资源访问方法的流程示意图;
图6为本申请一个实施例的资源访问装置的示意图;
图7为本申请另一实施例的资源访问装置的示意图;
图8为本申请实施例的电子设备的示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
请参阅图1,图1为本申请实施例的资源访问方法的应用场景的示意图。
如图1所示,资源访问方法的应用场景中可以包括网关和分布式集群。
其中,网关(Gateway)也可以称为网间连接器,或者称为协议转换器。网关在传输层上以实现网络互连,是网络互连设备,例如,网关将如图1中所示的分布式集群中的多个服务器(图1中示范性地展示了3台服务器)连接至网络设备(图中未示出)。
分布式集群可以包括如图1中所示的多个服务器,当然,分布式集群也可以包括多个终端设备(图中未示出)。
其中,终端设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据;终端设备还可以是个人通信业务(PersonalCommunication Service,PCS)电话、无绳电话、会话发起协议(Session InitiationProtocol,SIP)话机、无线本地环路(Wireless Local Loop,WLL)站、个人数字助理(Personal Digital Assistant,PDA),平板型电脑、无线调制解调器(modem)、手持设备(handset)、膝上型电脑(laptop computer)、机器类型通信(Machine TypeCommunication,MTC)终端等设备;终端设备也可以称为系统、订户单元(SubscriberUnit)、订户站(Subscriber Station),移动站(Mobile Station)、移动台(Mobile)、远程站(Remote Station)、远程终端(Remote Terminal)、接入终端(Access Terminal)、用户终端(User Terminal)、用户代理(User Agent)、用户设备(User Device or User Equipment),等等,在此不作限定。
值得说明的是,本申请实施例的资源访问方法的应用场景可以适用于不同的网络制式,例如,窄带物联网系统(Narrow Band-Internet of Things,NB-IoT)、全球移动通信系统(Global System for Mobile Communications,GSM)、增强型数据速率GSM演进系统(Enhanced Data rate for GSM Evolution,EDGE)、宽带码分多址系统(Wideband CodeDivision Multiple Access,WCDMA)、码分多址系统(Code Division Multiple Access,CDMA2000)、时分同步码分多址系统(Time Division-Synchronization Code DivisionMultiple Access,TD-SCDMA),长期演进系统(Long Term Evolution,LTE),蓝牙系统,WiFi系统,以及5G移动通信系统的三大应用场景eMBB,URLLC和eMTC,等等。
应该理解的是,上述示例只是用于示范性地说明资源访问方法可能应用的应用场景,且应用场景中可能包括的元素(如服务器和网关),而不能理解为对资源访问方法的应用场景的限定,也不能理解为对资源访问方法的应用场景的元素的限定。
例如,应用场景中可以相应地减少元素,如可以减少部分服务器等。
又如,应用场景中可以相应地增加元素,如可以增加服务器,也可以增加网络设备等。
且当应用场景中增加的元素为网络设备时,网络设备可以为基站,且基站可以是GSM或CDMA中的基站(Base Transceiver Station,BTS)和/或基站控制器,也可以是WCDMA中的基站(NodeB,NB)和/或无线网络控制器(Radio Network Controller,RNC),还可以是LTE中的演进型基站(Evolutional Node B,eNB或eNodeB),或者中继站或接入点,或者5G网络中的基站(gNB),卫星,设备对设备(Device-to-Device,D2D)通信、车联网(Vehicle-to-X,V2X)通信、机器(Machine-to-Machine,M2M)通信以及未来可能的各种通信中承担基站功能的网络设备等,本申请在此并不限定。
在如图1所示的应用场景中,各服务器均可以连接至网关,网关可以对外提供各种接口,即网关可以为各服务器提供各种接口,并通过各种接口为各服务器提供不同的服务,如网关通过某接口(下文称为接口A)为各服务器提供服务资源的访问,也就是说,各服务器可以通过网关的接口A对服务资源进行访问。
一般而言,接口A被访问的频率受到一定的限定,如接口A在一秒种内可以提供五千次访问等。当接口A在一秒钟内的访问次数大于五千次时,则会出现网络拥塞导致服务器无法正常接入至接口A的问题,例如,当接口A在一秒钟内的访问次数大于五千次时,超过五千次的访问可能为无效访问,且服务器发起的访问数据等信息可能丢失。
又如,服务器可以为支持多线程的服务器,且服务器可以与各终端设备建立通信,并接收各终端设备发起的对服务资源的访问请求,并根据各线程向接口A访问服务资源。
在相关技术中,一般采用的方法为令牌桶限流方法,通过令牌桶算法生成令牌,并基于生成的令牌接收并访问接口A提供的服务资源。例如,服务器中的某线程在获得分布式锁之后获取到了令牌,则该线程可以基于获取到的令牌接收并访问接口A提供的服务资源。
然而,通过上述相关技术中的令牌桶限流方法,可能存在服务器无法准确确定令牌桶中是否存在可用令牌,导致各线程对服务资源访问的可靠性偏低。
本申请的发明人在经过创造性地劳动之后,得到了本申请的发明构思:通过令牌桶中的链表对每一次令牌被提取的时间戳进行记录,以便服务器基于时间戳确定令牌桶中是否存在令牌。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
根据本申请实施例的一个方面,本申请实施例提供了一种资源访问方法,该资源访问方法可以应用于如图1所示的应用场景。
请参阅图2,图2为本申请一个实施例的资源访问方法的流程示意图。
如图2所示,该方法包括:
S101:根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳。
其中,本申请实施例的资源访问方法的执行主体可以为资源访问装置,且资源访问装置可以为如图1中所示的服务器,当然,资源访问装置也可以为可以实现本申请实施例的资源访问方法的处理器或者芯片等,本申请实施例不做限定。
在本申请实施例中,以执行主体为服务器为例进行示范性地说明。
其中,分布式锁是控制分布式集群之间同步访问共享资源的一种方式。在分布式模型下,数据只有一份(或有限制),此时需要利用锁的技术控制某一时刻修改数据的进程数。
在本申请实施例中,分布式锁可以用于表征在多台服务器发送的各自对应的访问请求的线程同时访问一个或一组资源时,防止彼此干扰来保证一致性的一种方式。其中,线程是操作系统能够进行运算调度的最小单位。一条线程指的是进程中的一个单一顺序的控制流,一个进程中可以并行多个线程,每条线程并行执行不同的任务。
其中,令牌桶是一种流量控制技术。一般而言,令牌桶的工作过程如下:1、令牌(Token)以一定的速率放入桶中;2、每个令牌允许源发送一定数量的比特;3、发送一个包,流量调节器就要从桶中删除与包大小相等的令牌数;4、如果没有足够的令牌发送包,这个包就会等待直到有足够的令牌或者包被丢弃;5、桶有特定的容量,如果桶已经满了,新加入的令牌就会被丢弃。
也就是说,令牌桶可以自行以恒定的速率源源不断地产生令牌,如果令牌不被消耗,或者被消耗的速度小于产生的速度,令牌就会不断地增多,直到把令牌桶填满,后面再产生的令牌就会从令牌桶中溢出,最后令牌桶中保留的最大令牌数永远不会超过令牌桶的大小,获得令牌的数据包允许执行进行后续操作,当令牌消耗的速度大于令牌产生的速度时,未获得令牌的数据包会被丢弃或进入缓存队列。
其中,链表可以用于表征一种存储结构,用于存储数据,且具有一定的存储域,各存储域中分别用于存储数据,且存储域中的存储的数据可以被清除。
例如,在本申请实施例中,链表可以用于存储任意令牌被提取的时间戳,即链表中的存储域可以对任意令牌被提取的时间戳进行存储,且当存储域中均存储了令牌被提取的时间戳时,服务器可以将各存储域中存储的各时间戳进行清除。
在该步骤中,各服务器在对服务资源进行访问之前,需要获取分布式锁,以确保在某一时刻,仅有一个服务器可以对共享资源(即各服务器进行访问的服务资源)的相关信息进行修改。
在本申请实施例中,对服务器获取分布式锁的方式不做限定,例如,服务器可以基于Redis缓存实现,也可以基于Redlock实现,也可以基于ZooKeeper实现,也可以基于Consul实现,等等。
在该步骤中,服务器在获取到分布式锁之后,由于令牌桶中包括链表,且链表中存储了任意令牌被提取的时间戳,因此,服务器可以可以从令牌桶的数据中获取到上一次令牌被提取的时间戳。
S102:若根据上一次令牌被提取的时间戳确定出令牌桶存在可用令牌,则提取可用令牌。
其中,可用令牌可以用于表征令牌桶中存在可以被服务器提取的令牌。
该步骤可以具体包括:根据上一次令牌被提取的时间戳判断令牌桶中是否存在可用令牌,若是(即令牌桶中存在可用令牌),则从令牌桶中提取可用令牌。
其中,本申请实施例对如何确定令牌桶中是否存在可用令牌不做限定,例如,可以是通过上一次令牌被提取的时间戳进行时间上的计算,确定令牌桶中是否存在可用令牌;也可以是预先设置时间戳比对表,通过时间戳比对表和上一次令牌被提取的时间戳,确定令牌桶中是否存在可用令牌,等等。
基于上述分析可知,令牌桶可以基于一定的速率生成令牌,而服务器在获取到分布式锁之后,可以从令牌桶中获取令牌,以便基于令牌对服务资源进行访问,而当令牌桶生成令牌的速率小于服务器提取令牌的速率时,令牌桶中可能没有令牌供服务器获取。
在本申请实施例中,由于令牌桶中包括链表,而链表中存储了任意令牌被提取的时间戳,因此,服务器可以根据上一次令牌被提取的时间戳确定并从令牌桶中提取可用令牌。
值得说明的是,通过从令牌桶的数据中提取链表中存储的上一令牌被提取的时间戳,并基于该时间戳确定并提取可用令牌,可以提高确定可用令牌的准确性和便捷性,从而提高后续服务器对服务资源进行访问的效率的技术效果。
S103:根据可用令牌对服务资源进行访问。
在该步骤中,当服务器获取到可用令牌时,可以基于可用令牌对服务资源进行访问。
基于上述分析可知,本申请实施例提供了一种资源访问方法,该方法包括:根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳,若根据上一次令牌被提取的时间戳确定出令牌桶存在可用令牌,则提取可用令牌,根据可用令牌对服务资源进行访问,通过采用链表对任意令牌被提取的时间戳进行存储,使得服务器可以从令牌桶的数据中方便快捷地获取上一次令牌被提取的时间戳,并根据上一次令牌被提取的时间戳确定从令牌桶中提取可用令牌,可以避免相关技术中服务器因无法准确确定令牌桶中是否存在可用令牌而导致的获取令牌失败,浪费服务器的资源等弊端,从而可以实现提取令牌的准确性和可靠性,进而可以实现提高服务器对服务资源进行访问的效率和可靠性的技术效果。
为使读者更加清楚地理解服务器如何确定令牌桶中是否存在可用令牌,现结合图3对本申请实施例的资源访问进行更为详细地阐述。其中,图3为本申请另一实施例的资源访问方法流程示意图。
如图3所示,该方法包括:
S201:根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳。
其中,关于S201的描述可以参见S101,此处不再赘述。
S202:若当前时间与上一次令牌被提取的时间戳大于或等于预先设置的时间差,则确定并提取可用令牌。
其中,时间差可以由服务器基于需求、历史记录及试验等进行设置。
其中,该步骤可以包括:服务器计算当前时间与上一次令牌被提取的时间戳之间的差值,判断计算得到的差值是否大于或等于时间差,若是(即差值大于或等于时间差),则确定令牌桶中存在可用令牌。
在一些实施例中,计算得到的差值也可能小于时间差,则服务器确定计算得到的差值小于时间差时,可以确定令牌桶中没有可用令牌,则服务器可以进入休眠状态,且服务器处于休眠状态的时间(下文称为休眠时间)可以基于预先设置的限流次数来设定,例如接口A1秒钟内可以提供1000次的服务资源的访问,则服务器可以将休眠时间设定为5-10毫秒。
在本申请实施例中,服务器通过两个时间之间的比对方式(即当前时间与上一次令牌被提取的时间戳)对令牌桶中是否有可用令牌进行确定,可以实现确定出可用令牌的高效性和便捷性,从而为后续服务器对服务资源进行访问提供便利。
S203:根据可用令牌对所述服务资源进行访问。
其中,关于S203的描述可以参见S103,此处不再赘述。
请参阅图4,图4为本申请另一实施例中的资源访问方法的流程示意图。
如图4所示,该方法包括:
S301:根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳。
其中,关于S301的描述可以参见101,此处不再赘述。
S302:若根据上一次令牌被提取的时间戳确定出令牌桶存在可用令牌,则提取可用令牌。
其中,关于S302的描述可以参见S102,也可以参见S202,此处不再赘述。
S303:将当前次令牌被提取的时间戳写入至链表,且作为链表的当前链尾。
同理,当前次令牌被提取的时间戳是一个相对概念,可以用于表征服务器此次从令牌桶中提取令牌的时间戳。
当前链尾也是一个相对概念,可以用于表征链表中的最新被存储了令牌被提取的时间戳的存储域,在本申请实施例中,当前链尾可以理解为链表中将当前次令牌被提取的时间戳被存储的存储域。
也就是说,在本申请实施例中,服务器从令牌桶中提取令牌之时,可以对其提取令牌的时间进行确定,并将其确定出的提取令牌的时间戳写入至链表中的存储域,且该存储了当前次令牌被提取的时间戳的存储域可以为链表的当前链尾。
S304:根据可用令牌对服务资源进行访问。
其中,关于S304的描述可以参见S103,此处不再赘述。
值得说明地是,本申请实施例中对各S303和S304之间的执行顺序不做限定,也就是说,可以如上述示例中的阐述顺序优先执行S303,而后执行S304;也可以优先执行S304,而后执行S303;也可以同时执行S303和S304。
请参阅图5,图5为本申请另一实施例中的资源访问方法的流程示意图。
如图5所示,该方法包括:
S401:根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,令牌桶中包括链表,链表中存储了任意令牌被提取的时间戳。
其中,关于S401的描述可以参见101,此处不再赘述。
S402:若根据上一次令牌被提取的时间戳确定出令牌桶存在可用令牌,则提取可用令牌。
其中,关于S402的描述可以参见S102,也可以参见S202,此处不再赘述。
S403:确定当前次令牌被提取的时间戳的过期时间。
在一些实施例中,S403可以包括:
S4031:判断当前次令牌被提取的时间戳是否为首次被写入链表的时间戳,若是(即当前次令牌被提取的时间戳是首次被写入链表的时间戳),则执行S4032;若否,(即当前次令牌被提取的时间戳不是首次被写入链表的时间戳),则执行S4033。
S4032:将第一时间确定为当前次令牌被提取的时间戳的过期时间。
在一些实施例中,可以将限流时间确定为第一时间,即可以将限流时间确定为当前次令牌被提取的时间戳的过期时间。
值得说明的是,若当前次令牌被提取的时间戳为首次被写入链表的时间戳,则说明服务器基于当前次令牌的服务资源的访问为首次访问,则说明限流时间开始计时,因此,可以将第一时间设置为限流时间,且将第一时间确定为当前次令牌被提取的时间戳的过期时间。
S4033:获取链表的表头至当前链尾的长度。
其中,表头可以用于表征链表的第一个存储域。
链表的总长度可以用于表征最大限流次数,因此,本申请实施例中的表头至当前链尾的长度可以用于表征表头至链尾记录的限流次数。
S4034:根据表头至当前链尾的长度确定当前次令牌被提取的时间戳的过期时间。
在一些实施例中,S4034可以包括:
S40341:判断表头至当前链尾的长度是否小于或等于限流次数,若是(即表头至当前链尾的长度小于或等于限流次数),则执行S4342;若否(即表头至当前链尾的长度大于限流次数),则执行S40343。
S40342:将第二时间确定为当前次令牌被提取的时间戳的过期时间。
其中,第一时间为与第二时间相同或者不同的时间,第一时间和第二时间没有必然的关系。
在一些实施例中,可以将限流时间的一半确定为当前次令牌被提取的时间戳的过期时间。
S40343:获取表头存储的时间戳。
其中,表头存储的时间戳可以用于表征,表头存储的某令牌被提取的时间戳。
S40344:计算当前时间与表头存储的时间戳之间的差值。
S40345:判断S40344计算得到的差值是否大于限流时间,若是,则执行S40346;若否,则获取可用令牌失败,流程结束。
S40346:将第二时间确定为当前次令牌被提取的时间戳的过期时间。
S404:将当前次令牌被提取的时间戳、当前次令牌被提取的时间戳的过期时间写入至链表。
也就是说,在本申请实施例中,服务器在基于上述方法确定出当前次令牌提取的时间戳的过期时间之后,可以对当前次令牌被提取的时间戳进行标识,且标识可以理解为将过期时间与当前次令牌被提取的时间戳存储于同一存储域的过程,即服务器将当前次令牌被提取的时间戳、与当前次令牌被提取的时间戳对应的时间戳存储于链表的同一存储域中。
S405:根据可用令牌对服务资源进行访问。
其中,关于S405的描述可以参见S103,此处不再赘述。
根据本申请实施例的另一个方面,本申请实施例还提供了一种资源访问装置,用于执行上述任一实施例所述的资源访问方法,如执行如图2、图3、图4及图5中任一实施例所示的资源访问方法。
请参阅图6,图6为本申请一个实施例的资源访问装置的示意图。
如图6所示,该装置包括:
获取模块11,用于根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,所述令牌桶中包括链表,所述链表中存储了任意令牌被提取的时间戳;
提取模块12,用于若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌;
访问模块13,用于根据所述可用令牌对所述服务资源进行访问。
结合图7可知,在一些实施例中,所述装置还包括:
第一确定模块14,用于确定所述链表的长度;
以及,所述提取模块12用于,若所述链表的长度小于预先设置的限流次数,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
结合图7可知,在一些实施例中,所述装置还包括:
第一确定模块14,用于确定所述链表的长度;
所述获取模块11用于,若所述链表的长度大于或等于预先设置的限流次数,则获取所述链表的表头存储的时间戳;
以及,所述提取模块12用于,若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
结合图7可知,在一些实施例中,所述装置还包括:
写入模块15,用于将当前次令牌被提取的时间戳写入至所述链表,且作为所述链表的当前链尾。
结合图7可知,在一些实施例中,所述装置还包括:
第二确定模块16,用于确定所述当前次令牌被提取的时间戳的过期时间;
所述写入模块15用于,将所述当前次令牌被提取的时间戳、所述当前次令牌被提取的时间戳的过期时间写入至所述链表。
在一些实施例中,所述第二确定模块16用于,确定所述当前次令牌被提取的时间戳是否为首次被写入所述链表的时间戳,若所述当前次令牌被提取的时间戳是首次被写入所述链表的时间戳,则将第一时间确定为所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,若所述当前次令牌被提取的时间戳不是首次被写入所述链表的时间戳,则所述第二确定模块16用于,获取所述链表的表头至所述当前链尾的长度,根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,所述第二确定模块16用于,若所述表头至所述当前链尾的长度小于或等于预先设置的限流次数,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,所述第二确定模块16用于,若所述表头至所述当前链尾的长度大于预先设置的限流次数,则获取所述表头存储的时间戳,若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
在一些实施例中,所述提取模块12用于,若当前时间与所述上一次令牌被提取的时间戳之间的差值大于或等于预先设置的时间差,则确定出存在所述可用令牌,其中,所述时间差是根据所述令牌桶生成一个令牌的时间确定的。
另一方面,本申请实施例还提供了一种电子设备和计算机可读存储介质。
请参阅图8,图8为本申请实施例的电子设备的示意图。
如图8所示,是根据本申请实施例的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请实施例的实现。
如图8所示,该电子设备包括:一个或多个处理器101、存储器102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器101为例。
存储器102即为本申请实施例所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请实施例所提供的资源访问方法。本申请实施例的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请实施例所提供的资源访问方法。
存储器102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的程序指令/模块。处理器101通过运行存储在存储器102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的资源访问方法。
存储器102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、区块链服务网络(Block-chain-based Service Network,BSN)、移动通信网及其组合。
电子设备还可以包括:输入装置103和输出装置104。处理器101、存储器102、输入装置103和输出装置104可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置103可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置104可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算机程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算机程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、区块链服务网络(Block-chain-based Service Network,BSN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (14)
1.一种资源访问方法,其特征在于,所述方法包括:
根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,所述令牌桶中包括链表,所述链表中存储了任意令牌被提取的时间戳;
若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌;
根据所述可用令牌对所述服务资源进行访问。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述链表的长度;
以及,所述若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌包括:若所述链表的长度小于预先设置的限流次数,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述链表的长度;
若所述链表的长度大于或等于预先设置的限流次数,则获取所述链表的表头存储的时间戳;
以及,所述若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌包括:若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
将当前次令牌被提取的时间戳写入至所述链表,且作为所述链表的当前链尾。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
确定所述当前次令牌被提取的时间戳的过期时间;
以及,所述将当前次令牌被提取的时间戳写入至所述链表包括:将所述当前次令牌被提取的时间戳、所述当前次令牌被提取的时间戳的过期时间写入至所述链表。
6.根据权利要求5所述的方法,其特征在于,所述确定所述当前次令牌被提取的时间戳的过期时间包括:
确定所述当前次令牌被提取的时间戳是否为首次被写入所述链表的时间戳;
若所述当前次令牌被提取的时间戳是首次被写入所述链表的时间戳,则将第一时间确定为所述当前次令牌被提取的时间戳的过期时间。
7.根据权利要求6所述的方法,其特征在于,若所述当前次令牌被提取的时间戳不是首次被写入所述链表的时间戳,则所述方法包括:
获取所述链表的表头至所述当前链尾的长度;
根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间。
8.根据权利要求7所述的方法,其特征在于,所述根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间包括:
若所述表头至所述当前链尾的长度小于或等于预先设置的限流次数,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
9.根据权利要求7所述的方法,其特征在于,所述根据所述表头至所述当前链尾的长度确定所述当前次令牌被提取的时间戳的过期时间包括:
若所述表头至所述当前链尾的长度大于预先设置的限流次数,则获取所述表头存储的时间戳;
若当前时间与所述表头存储的时间戳之间的差值大于预先设置的限流时间,则将第二时间确定为所述当前次令牌被提取的时间戳的过期时间。
10.根据权利要求1至3中任一项所述的方法,其特征在于,所述若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌包括:
若当前时间与所述上一次令牌被提取的时间戳之间的差值大于或等于预先设置的时间差,则确定并提取所述可用令牌,其中,所述时间差是根据所述令牌桶生成一个令牌的时间确定的。
11.一种资源访问装置,其特征在于,所述装置包括:
获取模块,用于根据基于对服务资源进行访问的访问请求获取到的分布式锁,从令牌桶的数据中获取上一次令牌被提取的时间戳,所述令牌桶中包括链表,所述链表中存储了任意令牌被提取的时间戳;
提取模块,用于若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌;
访问模块,用于根据所述可用令牌对所述服务资源进行访问。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于确定所述链表的长度;
以及,所述提取模块用于,若所述链表的长度小于预先设置的限流次数,且若根据所述上一次令牌被提取的时间戳确定出所述令牌桶存在可用令牌,则提取所述可用令牌。
13.一种电子设备,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行如权利要求1至10中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至10任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903489.9A CN113765819A (zh) | 2020-09-01 | 2020-09-01 | 资源访问方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010903489.9A CN113765819A (zh) | 2020-09-01 | 2020-09-01 | 资源访问方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113765819A true CN113765819A (zh) | 2021-12-07 |
Family
ID=78785638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010903489.9A Pending CN113765819A (zh) | 2020-09-01 | 2020-09-01 | 资源访问方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113765819A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826774A (zh) * | 2022-06-02 | 2022-07-29 | 天翼数字生活科技有限公司 | 一种终端设备日志请求控制方法、服务端和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110266792A (zh) * | 2019-06-18 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 地址转换方法、装置、设备与计算机可读存储介质 |
CN111030812A (zh) * | 2019-12-16 | 2020-04-17 | Oppo广东移动通信有限公司 | 令牌验证方法、装置、存储介质及服务器 |
CN111314238A (zh) * | 2020-02-03 | 2020-06-19 | 网银在线(北京)科技有限公司 | 令牌的管理方法和装置、存储介质、电子装置 |
CN111447150A (zh) * | 2020-02-29 | 2020-07-24 | 中国平安财产保险股份有限公司 | 访问请求限流方法、服务器及存储介质 |
-
2020
- 2020-09-01 CN CN202010903489.9A patent/CN113765819A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110266792A (zh) * | 2019-06-18 | 2019-09-20 | 深圳前海微众银行股份有限公司 | 地址转换方法、装置、设备与计算机可读存储介质 |
CN111030812A (zh) * | 2019-12-16 | 2020-04-17 | Oppo广东移动通信有限公司 | 令牌验证方法、装置、存储介质及服务器 |
CN111314238A (zh) * | 2020-02-03 | 2020-06-19 | 网银在线(北京)科技有限公司 | 令牌的管理方法和装置、存储介质、电子装置 |
CN111447150A (zh) * | 2020-02-29 | 2020-07-24 | 中国平安财产保险股份有限公司 | 访问请求限流方法、服务器及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826774A (zh) * | 2022-06-02 | 2022-07-29 | 天翼数字生活科技有限公司 | 一种终端设备日志请求控制方法、服务端和系统 |
CN114826774B (zh) * | 2022-06-02 | 2024-01-30 | 天翼数字生活科技有限公司 | 一种终端设备日志请求控制方法、服务端和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020199792A1 (zh) | 通信方法、装置、计算机可读介质及电子设备 | |
US9606819B2 (en) | Wireless network, implementation method thereof, and terminal | |
CN110958281B (zh) | 基于物联网的数据传输方法及通信装置 | |
US20150347305A1 (en) | Method and apparatus for outputting log information | |
WO2019042180A1 (zh) | 资源配置方法及相关产品 | |
CN108011899B (zh) | 一种会话建立优化方法、装置和系统 | |
US10244425B2 (en) | Electronic device and method for controlling transmission control protocol thereof | |
US20220357990A1 (en) | Method for allocating data processing tasks, electronic device, and storage medium | |
KR102219015B1 (ko) | 네트워크 이용을 개선하기 위한 네트워크 지원 프로토콜 사용 | |
CN110933075B (zh) | 服务调用方法、装置、电子设备及存储介质 | |
CN111414208A (zh) | 应用程序的启动方法、装置及设备 | |
CN111200606A (zh) | 深度学习模型任务处理方法、系统、服务器及存储介质 | |
JP2018514863A (ja) | データ送信方法及び端末 | |
US20190034234A1 (en) | Method For Resource Allocation And Terminal Device | |
CN110825441A (zh) | 异步系统的实现方法、计算机设备和存储介质 | |
CN113765819A (zh) | 资源访问方法、装置、电子设备及存储介质 | |
CN112104679A (zh) | 处理超文本传输协议请求的方法、装置、设备和介质 | |
CN113271228B (zh) | 带宽资源调度方法、装置、设备及计算机可读存储介质 | |
CN111783643B (zh) | 人脸识别的方法、装置、电子设备及存储介质 | |
Jagtap et al. | Augmented execution in mobile cloud computing: a survey | |
CN113556200A (zh) | 时钟校准方法、基于时钟同步的网络安全防护方法和装置 | |
CN108021459B (zh) | 跨进程发送打点日志的方法及装置 | |
CN112732548A (zh) | 一种接口测试方法以及装置 | |
CN113271229B (zh) | 设备控制方法及装置、存储设备、安全设备、交换机、路由器及服务器 | |
CN113132480B (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 |