CN113067875B - 基于微服务网关动态流控的访问方法和装置以及设备 - Google Patents

基于微服务网关动态流控的访问方法和装置以及设备 Download PDF

Info

Publication number
CN113067875B
CN113067875B CN202110316049.8A CN202110316049A CN113067875B CN 113067875 B CN113067875 B CN 113067875B CN 202110316049 A CN202110316049 A CN 202110316049A CN 113067875 B CN113067875 B CN 113067875B
Authority
CN
China
Prior art keywords
service
token
gateway
application server
state
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
CN202110316049.8A
Other languages
English (en)
Other versions
CN113067875A (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.)
Xiamen Leelen Technology Co Ltd
Original Assignee
Xiamen Leelen 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 Xiamen Leelen Technology Co Ltd filed Critical Xiamen Leelen Technology Co Ltd
Priority to CN202110316049.8A priority Critical patent/CN113067875B/zh
Publication of CN113067875A publication Critical patent/CN113067875A/zh
Application granted granted Critical
Publication of CN113067875B publication Critical patent/CN113067875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于微服务网关动态流控的访问方法,所述方法包括:响应于服务运行时,检测所述服务所对应的应用服务器的状态;判断所述应用服务器的状态为健康时,所述服务实时根据内存空间的预估使用量生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶;响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务;监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败;判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。

Description

基于微服务网关动态流控的访问方法和装置以及设备
技术领域
本发明涉及通信技术领域,尤其涉及一种基于微服务网关动态流控的访问方法和装置以及设备。
背景技术
随着软件行业的蓬勃发展,目前大多数公司在进行软件应用开发时,通常会选用微服务的架构风格,内部的组件相互独立,通过API进行通信,而外部请求需要由网关统一接收再路由到内部。任意时间到来的请求往往是随机且不可控制的,而内部***的处理能力是有限的,需要在网关进行流量管控能够更好地保护整个***的稳定性。目前行业内的企业在设计网关流控时,通常是使用令牌桶算法,针对每一个业务组件静态配置对应的流控规则。而采用静态网关流控方法存在以下缺点:
1、每个服务的服务能力不同,对应每个服务的静态流控规则配置不同,所以规则的配置需要经过性能测试评估并结合过去长时间的经验积累综合得出预估值,这样需要付出大量的时间和人力成本;
2、软件部署服务器性能不一致,或者服务器由于处理器升级、内存扩容等原因导致服务器性能提升,都有可能造成原有的流控规则不再准适用,进而引发性能浪费或者安全问题。
发明内容
有鉴于此,本发明的目的在于提出一种基于微服务网关动态流控的访问方法和装置以及设备,能够减少由于配置流控规则而付出大量的人力成本和时间成本,并且避免软件部署在不同服务器而引发的性能或安全问题。
为实现上述目的,本发明提供一种基于微服务网关动态流控的访问方法,所述方法包括:
响应于服务运行时,检测所述服务所对应的应用服务器的状态;
判断所述应用服务器的状态为健康时,所述服务实时根据内存空间的预估使用量生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,其中,所述令牌包括对应所述服务的服务标识号和当前服务版本号;判断所述应用服务器的状态为不健康时,所述服务不生成令牌;
响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务,其中,所述访问请求至少含有所述服务的服务标识号;
监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败;
判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。
优选的,在所述响应于服务运行时,检测所述服务所对应的应用服务器的状态之前,还包括:
响应于所述服务启动时的初始状态下,获取所述应用服务器的最大可执行线程数maxThreads,且所述服务根据每1秒生成固定数量maxThreads的令牌存入对应的令牌桶。
优选的,所述监听所述服务的状态是离线或奔溃时,移除所述网关中所述服务对应的服务版本号以及所述令牌池中所述服务对应的令牌桶,且停止请求获取对应所述服务的令牌。
优选的,所述服务根据内存空间的预估使用量实时生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,还包括:
所述服务生成的令牌为新版本时,则通知所述令牌池分配新的令牌桶以存储所述服务对应的新版本令牌,并通知所述网关修改所述服务对应的服务的服务版本号的映射关系。
优选的,所述判断所述应用服务器的状态为不健康,包括:
根据所述应用服务器中等待CPU进程数R与CPU逻辑核数量C进行比对,若所述R≥C,则判断CPU负荷过重,返回所述应用服务器的状态为不健康。
优选的,所述判断所述应用服务器的状态为不健康,包括:
根据所述应用服务器I/O操作的服务时间SVCTM和I/O操作UTIL进行判断,当SVCTM≥15ms&&UTIL≥90%,则判断I/O负荷过重,返回所述应用服务器的状态为不健康。
优选的,所述判断所述应用服务器的状态为不健康,包括:
根据所述应用服务器中网络平均输入流量AvgRead、平均输出流量AvgWrite以及带宽资源M进行判断,当(AvgRead+AvgWrite)*8/1024≥M*90%,则判断网络资源不足,返回所述应用服务器的状态为不健康。
为实现上述目的,本发明还提供一种基于微服务网关动态流控的访问装置,所述装置包括:
检测单元,用于响应于服务运行时,检测所述服务所对应的应用服务器的状态;
生成单元,用于判断所述应用服务器的状态为健康时,所述服务根据内存空间的预估使用量实时生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,其中,所述令牌包括对应所述服务的服务标识号和当前服务版本号;判断所述应用服务器的状态为不健康时,所述服务不生成令牌;
确定单元,用于响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务,其中,所述访问请求至少含有所述服务的服务标识号;
请求单元,用于监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败;
判断单元,用于判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。
优选的,所述装置还包括:
获取单元,用于响应于所述服务启动时的初始状态下,获取所述应用服务器的最大可执行线程数maxThreads,且所述服务根据每1秒生成固定数量maxThreads的令牌存入对应的令牌桶。
为实现上述目的,本发明还提供一种基于微服务网关动态流控的访问设备,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序能够被所述处理器执行以实现如上述实施例所述的一种基于微服务网关动态流控的访问方法。
有益效果:
以上方案,通过服务自行根据自身应用服务器的状态实时反馈后生成数量不定的令牌,在接收到外部访问请求时由网关负责动态路由的功能,以及通过***监听各个服务的状态,只有监听到服务的状态是在线时,外部的访问请求才能在对应服务的令牌池中的令牌桶获取到令牌以继续访问对应的服务,能够通过反转令牌生成的控制权,高效的利用应用服务器的资源,并节约配置流控规则的人力成本,同时通过监听服务的方式有效避免了服务不在线时所造成的负面影响,大大提高了***的稳定性。
以上方案,当服务生成的令牌为新版本时,则通知令牌池分配新的令牌桶以存储服务对应的新版本令牌,并通知网关修改服务对应的服务的服务版本号的映射关系,能够在外部访问请求时,快速及时地访问到对应的服务。
以上方案,当***监听服务的状态是离线或奔溃时,移除网关中所述服务对应的服务版本号以及令牌池中服务对应的令牌桶,且停止请求获取对应服务的令牌,能够有效避免服务离线造成的影响,避免访问报错。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为静态网关流控的架构示意图。
图2为本发明一实施例提供的一种基于微服务网关动态流控的访问方法的流程示意图。
图3本发明另一实施例提供的一种基于微服务网关动态流控的访问方法的流程示意图。
图4为本发明一实施例提供的动态网关流控的架构示意图。
图5为本发明另一实施例提供的动态网关流控的架构示意图。
图6为本发明一实施例提供的一种基于微服务网关动态流控的访问装置的结构示意图。
图7为本发明另一实施例提供的一种基于微服务网关动态流控的访问装置的结构示意图。
发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。因此,以下对在附图中提供的本发明的实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施方式。基于本发明中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
以下结合实施例详细阐述本发明的内容。为了便于本领域人员理解,现将实施例结合附图对本发明的结构/方法作进一步详细描述。
现有中通常使用令牌桶算法,针对每一个业务组件静态配置对应的流控规则,而令牌桶算法是网络流量整形(Traffic Shaping)和速率限制(Rate Limiting)中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。
如图1所示为静态网关流控的架构示意图,在静态网关流控中,网关启动时会根据配置信息获取所有服务的流控规则(例如,图1中服务1每秒允许请求2次),根据规则生产令牌(每一次请求对应一个令牌),在外部请求经过网关时,会到网关内部的令牌桶中尝试获取令牌,如果得到令牌,根据令牌上的服务信息,继续请求相应的服务;如果未获取到令牌,则该请求被网关丢弃或直接返回错误信息。因而,为了控制每个服务的QPS(QPS表示每秒查询率,对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准),需要制定好想要的流控规则。而每个服务服务能力不同,对应每个服务的静态流控规则配置不同,所以规则的配置需要经过性能测试评估并结合过去长时间的经验积累综合得出预估值,从而需要付出大量的时间和人力成本。
因此,本发明提供一种基于微服务网关动态流控的访问方法,能够减少由于配置流控规则而付出大量的人力成本和时间成本,并且避免软件部署在不同服务器而引发的性能或安全问题。
实施例一:
请参照图2至图5,本发明第一实施例提供了一种基于微服务网关动态流控的访问方法,其可由基于微服务网关动态流控的访问设备来执行,特别地,由基于微服务网关动态流控的访问设备内的一个或多个处理器来执行,并至少包括如下步骤:
本发明实施例提供了一种基于微服务网关动态流控的访问方法,包括:
S21,响应于服务运行时,检测所述服务所对应的应用服务器的状态。
其中,在所述响应于服务运行时,检测所述服务所对应的应用服务器的状态之前,还包括:
响应于所述服务启动时的初始状态下,获取所述应用服务器的最大可执行线程数maxThreads,且所述服务根据每1秒生成固定数量maxThreads的令牌存入对应的令牌桶。
在本实施例中,服务需向令牌池注册,即令牌池根据注册的服务初始化对应的令牌桶并标记服务版本号,同时令牌桶内的数量为服务初始状态下生成的。以及向网关注册,网关存储服务对应的服务版本号的映射关系。特别地,当服务刚启动时,程序会获取应用服务器最大可执行线程数maxThreads,通常情况下每个请求执行时间要小于1秒钟,每秒请求量要远高于可执行线程数,因此,初始状态下固定每秒投入令牌池的数量为maxThreads。
S22,判断所述应用服务器的状态为健康时,所述服务实时根据内存空间的预估使用量生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,其中,所述令牌包括对应所述服务的服务标识号和当前服务版本号;判断所述应用服务器的状态为不健康时,所述服务不生成令牌。
在本实施例中,当服务运行时,首先会检查应用服务器的健康状态,以确定是否生成令牌。当判断自身服务器状态为健康的情况下,服务基于内存空间预估使用量生成令牌。其中,令牌的组成包括服务版本号以及服务标识号。每次服务投入令牌时会自增服务版本号并通知网关,网关收到通知后根据路由的访问请求到新版本的令牌桶中去申请令牌,旧版本的令牌桶则会被清理。
其中,服务是基于JAVA语言开发的,JAVA语言具备动态回收无用对象占据的内存资源的能力,每当内存中的年轻代(一块逻辑上的内存地址空间)进行无用内存回收时,回收的间隔时间为T秒,年轻代内存大小为M,间隔时间内平均每秒请求量为R,则每次请求申请的内存大小预计为M/T/R,则令牌数量=服务剩余可用内存大小/每次请求申请的内存大小。并且,将每秒产生的令牌投入令牌池中对应的令牌桶,如果应用服务器为不健康状态时则放弃令牌投入。
另外,还根据以下几种情况判断该应用服务器为不健康状态,包括:
(1)根据等待cpu进程数R与cpu逻辑核数量C对比,若R≥C,则判断cpu负荷过重,返回不健康状态。
(2)根据平均每次服务器I/O操作的服务时间SVCTM以及一秒中有百分之多少的时间用于I/O操作UTIL进行判断,若SVCTM≥15ms&&UTIL≥90%,则判断I/O负荷过重,返回不健康状态。
(3)根据网络平均输入流量AvgRead、平均输出流量AvgWrite、带宽资源M进行判断,若(AvgRead+AvgWrite)*8/1024≥M*90%,则判断网络资源不足,返回不健康状态。
S23,响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务,其中,所述访问请求至少含有所述服务的服务标识号。
在本实施例中,外部请求访问网关时,根据URL判定路由到哪个服务,根据服务版本号映射获取实时的版本号;其中,URL为统一资源定位***,它是WWW的统一资源定位标志,就是指网络地址,URL由协议、主机、端口以及路径组成。
S24,监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败。
另外,所述监听所述服务的状态是离线或奔溃时,移除所述网关中所述服务对应的服务版本号以及所述令牌池中所述服务对应的令牌桶,且停止请求获取对应所述服务的令牌。也就是如果***监听到某个服务下线或者服务崩溃,会即使清理网关中的服务版本号映射关系以及令牌池中的该服务对应的令牌桶。此后所有访问该服务的请求,在网关处将被拦截并返回错误代码,避免访问报错。
在本实施例中,每个服务都有对应的令牌桶,如:服务1→令牌桶1、服务2→令牌桶2、服务3→令牌桶3(参见图4所示),网关接收到外部请求时,需要根据请求中带有的服务标识号去令牌池中对应的令牌桶获取令牌。
S25,判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。
在本实施例中,网关根据服务版本号以及服务标识号去令牌池申请获取令牌,获取令牌失败,则直接返回响应信息或丢弃请求;获取令牌成功,则继续访问服务。进一步的,参见图5所示。所述服务生成的令牌为新版本时,则通知所述令牌池分配新的令牌桶以存储所述服务对应的新版本令牌,并通知所述网关修改所述服务对应的服务的服务版本号的映射关系。即,各个服务每秒钟都会根据自身应用服务器的性能,按照内存空间预估使用量生成令牌,在服务生成的令牌为新版本时,则通知令牌池以生成新的令牌桶,并且令牌池生成新的令牌桶后会自动清理旧版本号的令牌桶,同时通知网关修改服务版本号的映射关系。
实施例二:
参照图6所示为本发明一实施例提供的一种基于微服务网关动态流控的访问装置的结构示意图。
在本实施例中,该装置60包括:
检测单元61,用于响应于服务运行时,检测所述服务所对应的应用服务器的状态;
生成单元62,用于判断所述应用服务器的状态为健康时,所述服务根据内存空间的预估使用量实时生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,其中,所述令牌包括对应所述服务的服务标识号和当前服务版本号;判断所述应用服务器的状态为不健康时,所述服务不生成令牌;
确定单元63,用于响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务,其中,所述访问请求至少含有所述服务的服务标识号;
请求单元64,用于监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败;
判断单元65,用于判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。
参照图7所示为本发明另一实施例提供的一种基于微服务网关动态流控的访问装置的结构示意图。
区别于上一实施例,本实施例的该装置70还包括:
获取单元71,用于响应于所述服务启动时的初始状态下,获取所述应用服务器的最大可执行线程数maxThreads,且所述服务根据每1秒生成固定数量maxThreads的令牌存入对应的令牌桶。
该装置60/70的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。
本发明第三实施例还提供一种基于微服务网关动态流控的访问设备,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序能够被所述处理器执行以实现如上述实施例所述的基于微服务网关动态流控的访问方法。
所述基于微服务网关动态流控的访问设备可包括但不仅限于处理器、存储器。本领域技术人员可以理解,所述示意图仅仅是基于微服务网关动态流控的访问设备的示例,并不构成对基于微服务网关动态流控的访问设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于微服务网关动态流控的访问设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述基于微服务网关动态流控的访问设备的控制中心,利用各种接口和线路连接整个基于微服务网关动态流控的访问设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于微服务网关动态流控的访问设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述基于微服务网关动态流控的访问设备集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例中的实施方案可以进一步组合或者替换,且实施例仅仅是对本发明的优选实施例进行描述,并非对本发明的构思和范围进行限定,在不脱离本发明设计思想的前提下,本领域中专业技术人员对本发明的技术方案作出的各种变化和改进,均属于本发明的保护范围。

Claims (10)

1.一种基于微服务网关动态流控的访问方法,其特征在于,所述方法包括:
响应于服务运行时,检测所述服务所对应的应用服务器的状态;
判断所述应用服务器的状态为健康时,所述服务实时根据内存空间的预估使用量生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,其中,所述令牌包括对应所述服务的服务标识号和当前服务版本号;判断所述应用服务器的状态为不健康时,所述服务不生成令牌;
响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务,其中,所述访问请求至少含有所述服务的服务标识号;
监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败;
判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。
2.根据权利要求1所述的一种基于微服务网关动态流控的访问方法,其特征在于,在所述响应于服务运行时,检测所述服务所对应的应用服务器的状态之前,还包括:
响应于所述服务启动时的初始状态下,获取所述应用服务器的最大可执行线程数maxThreads,且所述服务根据每1秒生成固定数量maxThreads的令牌存入对应的令牌桶。
3.根据权利要求1所述的一种基于微服务网关动态流控的访问方法,其特征在于,所述监听所述服务的状态是离线或奔溃时,移除所述网关中所述服务对应的服务版本号以及所述令牌池中所述服务对应的令牌桶,且停止请求获取对应所述服务的令牌。
4.根据权利要求1所述的一种基于微服务网关动态流控的访问方法,其特征在于,所述服务根据内存空间的预估使用量实时生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,还包括:
所述服务生成的令牌为新版本时,则通知所述令牌池分配新的令牌桶以存储所述服务对应的新版本令牌,并通知所述网关修改所述服务对应的服务的服务版本号的映射关系。
5.根据权利要求1所述的一种基于微服务网关动态流控的访问方法,其特征在于,所述判断所述应用服务器的状态为不健康,包括:
根据所述应用服务器中等待CPU进程数R与CPU逻辑核数量C进行比对,若所述R≥C,则判断CPU负荷过重,返回所述应用服务器的状态为不健康。
6.根据权利要求1所述的一种基于微服务网关动态流控的访问方法,其特征在于,所述判断所述应用服务器的状态为不健康,包括:
根据所述应用服务器I/O操作的服务时间SVCTM和I/O操作UTIL进行判断,当SVCTM≥15ms&&UTIL≥90%,则判断I/O负荷过重,返回所述应用服务器的状态为不健康。
7.根据权利要求1所述的一种基于微服务网关动态流控的访问方法,其特征在于,所述判断所述应用服务器的状态为不健康,包括:
根据所述应用服务器中网络平均输入流量AvgRead、平均输出流量AvgWrite以及带宽资源M进行判断,当(AvgRead+AvgWrite)*8/1024≥M*90%,则判断网络资源不足,返回所述应用服务器的状态为不健康。
8.一种基于微服务网关动态流控的访问装置,其特征在于,所述装置包括:
检测单元,用于响应于服务运行时,检测所述服务所对应的应用服务器的状态;
生成单元,用于判断所述应用服务器的状态为健康时,所述服务根据内存空间的预估使用量实时生成数量不定的令牌,并将所述令牌存入令牌池中对应的令牌桶,其中,所述令牌包括对应所述服务的服务标识号和当前服务版本号;判断所述应用服务器的状态为不健康时,所述服务不生成令牌;
确定单元,用于响应于网关接收到外部访问请求时,基于所述网关中的URL确定所述访问请求路由至相对应的服务,其中,所述访问请求至少含有所述服务的服务标识号;
请求单元,用于监听所述服务的状态是在线时,根据所述服务标识号以及所述网关中当前存储的服务版本号至对应的令牌桶中请求获取令牌,否则,所述网关返回访问失败;
判断单元,用于判断是否获取令牌成功,若是,则所述访问请求通过所述令牌访问对应的所述服务;否则,所述网关返回访问失败。
9.根据权利要求8所述的一种基于微服务网关动态流控的访问装置,其特征在于,所述装置还包括:
获取单元,用于响应于所述服务启动时的初始状态下,获取所述应用服务器的最大可执行线程数maxThreads,且所述服务根据每1秒生成固定数量maxThreads的令牌存入对应的令牌桶。
10.一种基于微服务网关动态流控的访问设备,其特征在于,包括处理器、存储器以及存储在所述存储器内的计算机程序,所述计算机程序能够被所述处理器执行以实现如权利要求1至7任意一项所述的一种基于微服务网关动态流控的访问方法。
CN202110316049.8A 2021-03-24 2021-03-24 基于微服务网关动态流控的访问方法和装置以及设备 Active CN113067875B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110316049.8A CN113067875B (zh) 2021-03-24 2021-03-24 基于微服务网关动态流控的访问方法和装置以及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110316049.8A CN113067875B (zh) 2021-03-24 2021-03-24 基于微服务网关动态流控的访问方法和装置以及设备

Publications (2)

Publication Number Publication Date
CN113067875A CN113067875A (zh) 2021-07-02
CN113067875B true CN113067875B (zh) 2023-06-02

Family

ID=76562151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110316049.8A Active CN113067875B (zh) 2021-03-24 2021-03-24 基于微服务网关动态流控的访问方法和装置以及设备

Country Status (1)

Country Link
CN (1) CN113067875B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113282902B (zh) * 2021-07-26 2022-03-08 南京蓝鲸人网络科技有限公司 一种业务行为安全控制方法、***与设备
CN115242722B (zh) * 2022-06-14 2024-04-16 中盈优创资讯科技有限公司 一种基于api网关的高级流控实现方法
CN117675921A (zh) * 2022-09-01 2024-03-08 中兴通讯股份有限公司 访问请求处理方法、装置及***
CN116743833B (zh) * 2023-08-16 2023-11-03 雄安国创中心科技有限公司 增强终端与服务通讯能力和网络控制能力的方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614877A (zh) * 2018-04-27 2018-10-02 携程商旅信息服务(上海)有限公司 基于令牌桶的数据复制过程的监控方法及***
CN111049756A (zh) * 2019-12-24 2020-04-21 北京奇艺世纪科技有限公司 请求响应方法、装置、电子设备及计算机可读存储介质
CN111404836A (zh) * 2020-03-30 2020-07-10 北京小米移动软件有限公司 数据传输控制方法、装置、控制中心、服务器及介质
CN111817974A (zh) * 2020-06-09 2020-10-23 平安科技(深圳)有限公司 基于令牌桶的接口限流方法、装置、***及可读存储介质
CN112312165A (zh) * 2020-10-19 2021-02-02 中移(杭州)信息技术有限公司 视频下发方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8300531B2 (en) * 2008-05-30 2012-10-30 Alcatel Lucent Methods and apparatus for overload control of prioritized message flows in a state machine execution environment

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108614877A (zh) * 2018-04-27 2018-10-02 携程商旅信息服务(上海)有限公司 基于令牌桶的数据复制过程的监控方法及***
CN111049756A (zh) * 2019-12-24 2020-04-21 北京奇艺世纪科技有限公司 请求响应方法、装置、电子设备及计算机可读存储介质
CN111404836A (zh) * 2020-03-30 2020-07-10 北京小米移动软件有限公司 数据传输控制方法、装置、控制中心、服务器及介质
CN111817974A (zh) * 2020-06-09 2020-10-23 平安科技(深圳)有限公司 基于令牌桶的接口限流方法、装置、***及可读存储介质
CN112312165A (zh) * 2020-10-19 2021-02-02 中移(杭州)信息技术有限公司 视频下发方法、装置及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵晋南 等.动态令牌分配的TCSN多级令牌桶流量监管算法.《计算机工程》.2018,全文. *

Also Published As

Publication number Publication date
CN113067875A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
CN113067875B (zh) 基于微服务网关动态流控的访问方法和装置以及设备
CN109005085B (zh) 一种服务可用性监控***、方法、装置及设备
US9158577B2 (en) Immediately launching applications
CN110932933B (zh) 网络状况监测方法、计算设备及计算机存储介质
CN111258851B (zh) 一种集群的告警方法、装置、设置及存储介质
US10296411B1 (en) Endpoint call backoff in a computing service environment
CN110971480B (zh) 计算机网络状况监控方法、装置、计算机设备及存储介质
CN112261133A (zh) Cdn节点控制方法、装置、服务器及存储介质
CN111147310A (zh) 一种日志跟踪处理的方法、装置、服务器及介质
CN114884840B (zh) 应用健康状态检查方法及电子设备
CN112165517A (zh) 一种回源探测方法、装置、存储介质及电子设备
CN111628903B (zh) 交易***运行状态的监控方法及监控***
CN109510730A (zh) 分布式***及其监控方法、装置、电子设备及存储介质
CN112068935A (zh) kubernetes程序部署监控方法、装置以及设备
CN110752972A (zh) 一种网卡状态监控方法、装置、设备及介质
CN111884932B (zh) 一种链路确定方法、装置、设备和计算机可读存储介质
CN112463317A (zh) 机房任务调度方法、装置、电子设备及存储介质
CN110113187B (zh) 一种配置更新方法、装置、配置服务器及配置***
CN113946515A (zh) 代码覆盖率测试方法、装置、计算机设备及存储介质
CN110752939B (zh) 一种业务进程故障处理方法、通知方法和装置
CN112988405A (zh) 微服务自动降级方法、装置及计算设备
CN113225225B (zh) 根镜像检测方法、装置、***、电子设备及存储介质
CN116405377B (zh) 网络状态检测方法、协议转换组件、设备及存储介质
CN111371635A (zh) 网络节点的监测方法、装置及***
CN117041172B (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
CB02 Change of applicant information

Address after: Unit 403-12, 4th Floor, No. 56, Chengyi North Street, Phase III, Software Park, Torch High-tech Zone, Xiamen, Fujian 361000

Applicant after: XIAMEN LEELEN TECHNOLOGY Co.,Ltd.

Address before: 2-5 / F, 780 Tieshan Road, Guankou Town, Jimei District, Xiamen City, Fujian Province 361021

Applicant before: XIAMEN LEELEN TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant