CN109618002A - 一种微服务网关优化方法、装置及存储介质 - Google Patents
一种微服务网关优化方法、装置及存储介质 Download PDFInfo
- Publication number
- CN109618002A CN109618002A CN201910025524.9A CN201910025524A CN109618002A CN 109618002 A CN109618002 A CN 109618002A CN 201910025524 A CN201910025524 A CN 201910025524A CN 109618002 A CN109618002 A CN 109618002A
- Authority
- CN
- China
- Prior art keywords
- server
- resource
- micro services
- service request
- distribution
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种微服务网关优化方法、装置及存储介质,属于微服务领域。该方法包括:为每个服务器部署资源嗅探器,定时收集各服务器资源占用信息;根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;判断各服务器是否超过预设的负载限度,扩充超过负载限度的服务器;通过类树形数据结构存储用户的服务请求与分配的服务器地址,根据对应关系,将用户的服务请求发送到服务器。通过该技术方案,保障服务资源的合理分配,可基于动态的服务器资源实现负载均衡。
Description
技术领域
本发明涉及微服务领域,尤其涉及一种微服务网关优化方法、装置及存储介质。
背景技术
微服务网关是一种将底层服务的复杂细节屏蔽,对外提供简单统一调用方式的软件装置。一般在客户端发送服务请求后,首先会进而网关,再由网关路由转发将请求分配到具体的服务端,这在实现AJAX跨域访问上有着广泛的应用。
在路由转发过程中会使用到具体的路由算法,如轮询、哈希、权重分配等多种方式,这些算法基于固定的规则,进行服务分配。由于服务端资源是动态变化的,在高并发情况下,容易将大量请求分配到资源不充足的服务器上,难以实现资源的最大化利用。
发明内容
有鉴于此,本发明实施例提供了一种微服务网关优化方法、装置及存储介质,以基于服务端资源的动态变化,解决服务器资源难以实现最大化利用的问题,保证负载均衡。
结合本发明实施例的第一方面,提供了一种微服务网关优化方法,包括:
为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
结合本发明实施例的第二方面,提供了一种微服务网关优化装置,包括:
收集模块,用于为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
分配模块,用于根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
扩充模块,用于预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
存储模块,用于通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
结合本发明实施例的第三方面,提供了一种装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例第一方面所述方法的步骤。
本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被一个或多个处理器执行时实现本发明实施例第一方面提供的所述方法的步骤。
本发明实施例通过在各服务器上部分资源嗅探器采集服务器资源,再进行资源分配,为负载过大的服务器扩充服务器,并通过类树形结构存储服务对应关系,最后将用户请求发送到对应的服务器。使得网关的服务配置可以根据嗅探器采集的动态资源占用信息进行合理分配,实现服务资源的最大化利用。同时,在服务器负担过大时,实时动态根据其他服务器的资源变化为负担过大的服务器扩充服务器,分担负载,并且结合服务与请求对应关系的类树形的存储,既能方便动态调整服务分配,而且逻辑结构清晰,保障请求的快速分发。
附图说明
图1是本发明实施例一提供的一种微服务网关优化方法的原理示意图;
图2是本发明实施例二提供的一种微服务网关优化方法的流程图;
图3是本发明实施例三提供的一种微服务网关优化方法的另一原理示意图;
图4是本发明实施例四提供的一种微服务网关优化方法的另一流程图;
图5是本发明实施例五提供的一种类树形结构示意图;
图6是本发明实施例六提供的一种微服务网关优化装置的结构示意图
图7是本发明实施例七提供的一种微服务网关优化装置的另一结构示意图;
图8是本发明实施例八提供的一种终端装置的结构示意图。
具体实施方式
本发明实施例提供了一种微服务网关优化方法、装置及存储介质,用于在微服务中实现服务资源的最大化利用,保证负载均衡。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
请参阅图1,本发明实施例提供的微服务网关优化方法的原理示意图,包括:
本实施应用于微服务网关中,用于接收客户端的服务请求,并转发到后端服务器,还包括权限校验、API监控、限流及日志收集等功能。
通过网络连接,在客户端发起用户请求后,用户请求110会传输到微服务网关120,微服务网关120对用户的服务请求进行一系列验证、协议处理、标记、过滤等操作后,登记或记录用户的请求。优选的,微服务网关120对各线路的用户请求110进行安全监控及限流,保证网关安全正常运行。
所述服务器130是由多台服务器组成或是服务器集群,服务器130可以为用户提供一种或多种服务,多台服务器拥有相同或不同的硬件资源,在服务器具有不同资源分布时,服务器可提供的服务资源也不相同。在本发明实施中,可用服务器130,在分配服务请求前,需要注册服务器的组建名称、IP地址、端口及可用数量等。在网关提供服务前,需要在微服务网关120的注册中心,记录可用服务的地址、端口及资源等信息,所述注册中心的服务注册信息会实时的发生变更。
在微服务网关120中,根据已注册的服务器信息以及接收的用户请求,通过算法进行服务分配,存储用户请求与服务器服务地址的对应信息,一般的,可通过k-v键值关联方式进行存储。
根据分配后用户服务与服务器地址间的对应关系,将微服务网关120中的用户请求发送的对应的服务器130上,以执行处理用户的服务请求。服务器130相应用户的服务请求后,将响应数据或反馈信息发送给对应的客户端。
实施例二
在图1的基础上,下面结合图2详述一种微服务网关优化方法的实现流程,包括:
S201、为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
所述服务器是一种提供计算服务的设备,包含有处理器、硬盘、内存等,可以是web服务器、流媒体服务器或数据库服务器等一种或多种类型的服务器,能够针对客户端的用户请求进行数据处理以响应请求。所述资源嗅探器是一种可部署到硬件设备上用于监听硬件资源使用状况的工具软件,在本发明实施例中所述资源嗅探器可实时采集服务器资源占用信息,传送到微服务网关,其中,所述服务器资源占用信息可包括内存占用、网络流量占用、磁盘IO使用、端口占用等百分百信息。
可选的,创建一个心跳广播,资源嗅探器通过所述心跳广播向每个微服务网关发送心跳消息;若存在微服务网关间隔预设时长未接收到心跳消息,则将未接收到心跳消息的微服务网关从可用列表中删除,并不再向所述微服务网关发送服务请求。
可选的,微服务网关定时发送资源汇报命令到资源嗅探器,资源嗅探器接收到命令后,采集当前服务器的资源占用信息,并将所述资源占用信息发送给微服务网关。
进一步的,根据所述资源占用信息,评估各服务器使用状态,并动态调整服务请求的落地服务地址。所述落地服务地址为已部署有服务请求的服务器地址,基于实时的服务器资源占用信息及其评估,对已部署服务的服务器调整服务分配,分配原则为:服务器资源越充足,分配的服务请求比重越高。
S202、根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
所述服务注册信息指的是在微服务网关的注册中心完成可用服务注册的服务器信息或服务组件信息,所述注册中心包含有服务注册表用于登记可用的服务实例或服务器。一般的,所述服务注册信息可包括服务组件名、IP地址、可用数量等。
所述为用户请求分配服务器是根据服务器的服务注册信息及资源占用信息,以及根据用户请求数量及类别,通过服务调度算法分配用户请求,如权重轮询算法等。需要注意的是,此时为用户分配服务器,用户请求并未分配到对应的服务器,可以是确定服务请求与服务器的对应关系以便存储。
S203、预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
在将用户请求发送至对应的服务器之前,优先判断服务器负载是否达到预设的负载限度,具体的,根据已发布的服务信息,获取并计算各服务器的负载状况,当服务器超过负载限度,则调整服务器分配策略,为超过负载限度的服务器扩充额外的服务器。
一般的,由于服务器的资源使用状况是动态变化的,常用的服务分配算法在服务资源充足时,有时可能为某台服务器分配任务过大。在本发明实施例中,当某台服务器超过负载限度,可以充分利用资源充足的服务器资源,将用户请求分配一部分至临时资源充足的服务器中。
S204、通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
所述类树形数据结构用于短时存储用户请求与服务器地址的对应关系,优选的,在所述类树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重分配。
所述对应关系可通过类树形数据结构中根节点与叶子节点的形式存储,根据所述对应关系,及权重分配,将用户请求分别发送到对应的服务器。
可选的,所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(1)进行固定权重分配:
其中,n表示根节点对应的叶子节点数量,w1表示第i个叶子节点的权重。
可选的,所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(2)进行动态权重分配:
其中,wm表示第m个叶子节点的权重,n表示根节点对应的叶子节点数量,i表示第i个叶子节点。
通过所述类树形结构的数据存储,不仅可以保存用户服务与服务器地址的对应关系以及任务分配权重,逻辑清晰且简单,而且方便为负载过大的服务器扩充另外的服务器,重新调整权重。
用户请求发送到对应服务器后,服务器端执行处理任务,响应客户端请求。此时,分配任务后的服务器可用资源占用信息会产生变化,通过资源嗅探器的上报,注册中心记录的服务器资源占用信息也会发生改变,实时方便后续服务分配策略参考调整。
服务器端的响应数据会直接通过网络传送到对应的客户端,完成对客户端请求的反馈。
在实施例的技术方案中,通过资源嗅探器实时采集服务器的资源占用信息,为后续资源分配提供参考,再根据服务器资源占用信息和注册信息,分配用户请求。在服务器达到负载限度时,扩充额外的服务器,防止服务器负载过大,影响服务端的响应速度。同时,基于服务资源的动态调控分配,可以实现负载均衡,保证资源的最大化利用。
实施例三
图3为本发明实施例三提供的微服务网关优化方法的另一原理示意图,在实施例二的基础上,对步骤S201中服务器资源占用信息收集原理进行描述,其原理如下:
所述网关310为微服务网关,是一种网间连接器,介于客户端与服务器的中间层。外部请求都会通过微服务网关与服务器交互。所述网关310功能的实现可通过程序编码实现路由和过滤。如,利用Zuul编写的微服务网关。
所述心跳广播320用于接收资源嗅探器的心跳消息,并将其转发给网关,网关如果在预设的时长之内(如30s)未接收到心跳消息,可将该网关视为宕机。心跳广播320可用于确定网关的可用性,对于每一个微服务网关通过广播的心跳消息,预先确认其能否接收到资源嗅探器的资源收集信息。当确认网关310中任一微服务网关不可用时,将该网关从可用列表中删除,并不再接收用户请求。
进一步的,确认网关310中的服务网关可用后,定时向各资源嗅探器发送资源汇报命令,各资源嗅探器接收到资源汇报命令后,根据实时采集的服务器当前资源占用情况,上传当前资源占用信息,资源嗅探器的汇报消息中即包含有各服务器最新资源占用信息。
在本发明实施例中,通过心跳广播验证服务网关的可用性,确保服务网关的正常运作,以便接收用户请求,为服务器分配处理任务。
实施例四
结合图3中网关与资源嗅探器的消息交互,下面将对微服务网关优化方法的另一流程图进行叙述,在本实施例中,对步骤S201进行详细流程说明。
请参见图4,图4示出了微服务网关优化方法另一流程,包括以下步骤:
S401、微服务网关定时发送资源汇报命令到资源嗅探器,资源嗅探器接收到命令后,采集当前服务器的资源占用信息,并将所述资源占用信息发送给微服务网关;
所述微服务的网关即服务网关,该服务网关通过程序编码实现特定的网关功能。所述服务网关可与资源嗅探器建立通信,进行数据交互。所述资源汇报命令可以是约定的数据传送信号,也可以是远程的函数调用方法等形式完成命令的传送。
所述资源占用信息一般为内存、网络流量、磁盘IO及端口等占用情况,需要注意的是,服务器的资源占用信息是实时采集的,接收到服务网关的汇报命令,即可上传各服务器的资源占用信息。
S402、根据所述资源占用信息,评估各服务器使用状态,并调整服务请求的落地服务地址。
所述服务器使用状态即根据各服务器资源占用情况,综合分析各服务器可负载能力。服务器的状态评估可根据预设的评估标准,评价服务器当前数据处理能力,进而方便服务请求合理分配,实现负载均衡。
所述落地服务地址即为已部署服务的服务器地址,由于服务器已分配有用户请求,后续接收的用户请求需要根据各服务器的资源占用信息或负载能力,实时调整服务分配,调整原则是:资源占用率越低的服务器,分配的用户请求越多。
通过对落地服务地址的调整,可基于实时的服务器器动态资源占用信息,实现负载均衡及合理,进一步保证资源的合理利用。
实施例五
图5为本发明实施例提供的一种类树形结构示意图,该图示出了服务请求与服务器地址数据存储形式,参考图2的步骤S204,详述如下:
以用户的一个服务请求为例,存储用户服务请求与服务器地址信息的对应关系,如用户服务请求50需要获取特定的用户名510及所有用户520,在获取用户名510中,由于可能进行查询或获取多个用户名,可通过多台服务器协同完成,地址为192.168.1.1端口号8080的服务器5101可优先执行,依次执行地址为192.168.1.2端口号8080的服务器5102和地址为192.168.1.3端口号8080的服务器5103。
其中,服务器5101、5102及5103具有服务先后分配顺序,优选的,服务器资源占用率越低,叶子节点中的顺位越高。根节点510与叶子节点5101、5102及5103的连线间存在权重,权重分别为w1、w2、w3。
可选的,所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(1)进行固定权重分配:
其中,n表示根节点对应的叶子节点数量,w1表示第i个叶子节点的权重。
如图所示,用户请求中的510的3个权重,可分别为w1=50%w2=30%w3=20%,,而请求520只有一个服务实例,因此w1=100%。
可选的,所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(2)进行动态权重分配:
其中,wm表示第m个叶子节点的权重,n表示根节点对应的叶子节点数量,i表示第i个叶子节点。
基于两种不同的权重分配可以适用不同的服务场景,如提供特定服务的服务器为保证不被过多占用,可通过固定资源分配,针对通用服务的服务器可采用动态权重分配,实现负载均衡,具体使用场景在此不做限定,可根据实际情况选择权重分配策略。
本发明实施例所提供的类树形数据结构不仅可以方便服务请求分配后的存储,而且有利于基于资源动态的服务调整,便于根据实时服务器资源,调整资源的分配。。
实施例六
图6是本发明实施例提供的一种微服务网关优化装置的结构示意图,该装置包括:
收集模块610,用于为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
可选的,所述收集模块610包括:
验证模块,用于创建一个心跳广播,资源嗅探器通过所述心跳广播向每个微服务网关发送心跳消息;
若存在服务网关间隔预设时长未接收到心跳消息,则将未接收到心跳消息的服务网关从可用列表中删除,并不再向所述服务网关发送服务请求。
分配模块620,用于根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
扩充模块630,用于预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
存储模块640,用于通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
可选的,所述类树形数据结构具体为:在类树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重分配。
进一步的,所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(1)进行固定权重分配:
其中,n表示根节点对应的叶子节点数量,w1表示第i个叶子节点的权重。
进一步的,所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(2)进行动态权重分配:
其中,wm表示第m个叶子节点的权重,n表示根节点对应的叶子节点数量,i表示第i个叶子节点。
在上述装置中,通过收集模块采集实时的服务器资源占用信息,进行服务器分配,再结合扩充模型确保负载合理,实现装置的负载均衡。而且存储模块可以方便请求分配后服务地址的调整,保障服务资源的有效利用。
实施例七
图7是本发明实施例提供的一种微服务网关优化装置的另一结构示意图,在图6的基础上,图7示出了收集模块610的结构,包括:
采集单元6101,用于微服务网关定时发送资源汇报命令到资源嗅探器,资源嗅探器接收到命令后,采集当前服务器的资源占用信息,并将所述资源占用信息发送给微服务网关;
所述微服务网关可与资源嗅探器建立通信,可进行数据交互。所述资源汇报命令可以是约定的数据传送信号,也可以是远程的函数调用方法等形式完成命令的传送,在此不做限定。
所述资源占用信息一般可包括内存、网络流量、磁盘IO及端口的占用情况等,需要注意的是,服务器的资源占用信息是实时采集的,接收到服务网关的汇报命令,即可上传各服务器的资源占用信息。
调整单元6102,用于根据所述资源占用信息,评估各服务器使用状态,并调整服务请求的落地服务地址。
所述服务器使用状态即根据各服务器资源占用情况,综合分析各服务器可负载能力。服务器的状态评估可根据预设的评估标准,评价服务器当前数据处理能力,进而方便服务请求合理分配,实现负载均衡。
所述落地服务地址即为已部署服务的服务器地址,由于服务器已分配有用户请求,后续接收的用户请求需要根据各服务器的资源占用信息或负载能力,实时调整服务分配,调整原则是:资源占用率越低的服务器,分配的用户请求越多。
在所述收集模块610中,基于采集单元收集6101收集实时的各服务器资源占用信息,可以为分配模块620和扩充模块630提供实现基础,调整单元6102可以为分配模块620的服务分配以及对分配后服务的动态调整提供依据。基于动态资源特征保障服务端的负载均衡与资源合理利用。
以上所述单元及模块,是基于软件功能上的划分,各单元及模块并不必然具有先后或从属关系。
实施例八
图8是本发明一实施例提供的微服务网关优化的终端装置的结构示意图。所述终端装置,为具备触摸屏的计算机设备,包括但不限于智能手机、智能手表、笔记本、平板电脑、POS机甚至包括车载电脑。如图8所示,该实施例的终端装置8包括:存储器810、处理器820以及系统总线830,所述存储器810包括存储其上的可运行的程序8101,本领域技术人员可以理解,图8中示出的终端装置结构并不构成对终端装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图8对终端装置的各个构成部件进行具体的介绍:
存储器810可用于存储软件程序以及模块,处理器820通过运行存储在存储器810的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。存储器810可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器810可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
在存储器810上包含网络请求方法的可运行程序8101,所述可运行程序8101可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器810中,并由处理器820执行,以优化微服务网关,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序8101在所述服务器4中的执行过程。例如,所述计算机程序8101可以被分割为收集模块、分配模块、扩充模块及存储模块。
处理器820是服务器的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器810内的软件程序和/或模块,以及调用存储在存储器810内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器820可包括一个或多个处理单元;优选的,处理器820可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器820中。
系统总线830是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如PCI总线、ISA总线、VESA总线等。处理器820的指令通过总线传递至存储器810,存储器810反馈数据给处理器820,系统总线830负责处理器820与存储器810之间的数据、指令交互。当然系统总830还可以接入其他设备,例如网络接口、显示设备等。
所述终端装置应至少包括网卡、输出设备等,其他构成部件在此不再赘述。
在本发明实施例中,该终端装置所包括的处理器420执行的可运行程序具体为:
一种微服务网关优化方法,其特征在于,包括:
为服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
进一步的,所述为服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息还包括:
创建一个心跳广播,资源嗅探器通过所述心跳广播向每个微服务网关发送心跳消息;
若存在微服务网关间隔预设时长未接收到心跳消息,则将未接收到心跳消息的微服务网关从可用列表中删除,并不再向所述微服务网关发送服务请求。
进一步的,所述为服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息具体为:
微服务网关定时发送资源汇报命令到资源嗅探器,资源嗅探器接收到命令后,采集当前服务器的资源占用信息,并将所述资源占用信息发送给微服务网关。
进一步的,所述并将所述资源占用信息发送给微服务网关还包括:
根据所述资源占用信息,评估各服务器使用状态,并调整服务请求的落地服务地址。
进一步的,所述类树形数据结构具体为:
在类树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重分配。
进一步的,所述在树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重还包括:
所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(1)进行固定权重分配:
其中,n表示根节点对应的叶子节点数量,w1表示第i个叶子节点的权重。
进一步的,所述在树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重还包括:
所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(2)进行动态权重分配:
其中,wm表示第m个叶子节点的权重,n表示根节点对应的叶子节点数量,i表示第i个叶子节点。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种微服务网关优化方法,其特征在于,包括:
为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
2.根据权利要求1所述的方法,其特征在于,所述为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息还包括:
创建一个心跳广播,资源嗅探器通过所述心跳广播向每个微服务网关发送心跳消息;
若存在微服务网关间隔预设时长未接收到心跳消息,则将未接收到心跳消息的微服务网关从可用列表中删除,并不再向所述微服务网关发送服务请求。
3.根据权利要求1所述的方法,其特征在于,所述为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息具体为:
微服务网关定时发送资源汇报命令到资源嗅探器,资源嗅探器接收到命令后,采集当前服务器的资源占用信息,并将所述资源占用信息发送给微服务网关。
4.根据权利要求3所述的方法,其特征在于,所述并将所述资源占用信息发送给微服务网关还包括:
根据所述资源占用信息,评估各服务器使用状态,并动态调整服务请求的落地服务地址。
5.根据权利要求1所述的方法,其特征在于,所述类树形数据结构具体为:
在类树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重分配。
6.根据权利要求5所述的方法,其特征在于,所述在树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重还包括:
所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(1)进行固定权重分配:
其中,n表示根节点对应的叶子节点数量,w1表示第i个叶子节点的权重。
7.根据权利要求5所述的方法,其特征在于,所述在树形结构中,叶子节点间存在先后关系,根节点与叶子节点间的连线存在权重还包括:
所述根节点与叶子节点的连线权重表示服务请求的分发权重,根据公式(2)进行动态权重分配:
其中,wm表示第m个叶子节点的权重,n表示根节点对应的叶子节点数量,i表示第i个叶子节点。
8.一种微服务网关优化装置,其特征在于,包括:
收集模块,用于为每个服务器部署资源嗅探器后,定时通过资源嗅探器收集各服务器资源占用信息;
分配模块,用于根据服务注册信息和各服务器资源占用信息,为用户的服务请求分配服务器;
扩充模块,用于预先判断各服务器已分配的服务请求是否超过预设的负载限度,为超过负载限度的服务器扩充已注册的服务器;
存储模块,用于通过类树形数据结构存储用户的服务请求与分配的服务器地址对应关系,根据所述对应关系,将用户的服务请求发送到对应的服务器。
9.一种装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项微服务网关优化方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述微服务网关优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910025524.9A CN109618002B (zh) | 2019-01-11 | 2019-01-11 | 一种微服务网关优化方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910025524.9A CN109618002B (zh) | 2019-01-11 | 2019-01-11 | 一种微服务网关优化方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109618002A true CN109618002A (zh) | 2019-04-12 |
CN109618002B CN109618002B (zh) | 2022-07-05 |
Family
ID=66016736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910025524.9A Active CN109618002B (zh) | 2019-01-11 | 2019-01-11 | 一种微服务网关优化方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109618002B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049048A (zh) * | 2019-04-22 | 2019-07-23 | 易联众民生(厦门)科技有限公司 | 一种政务公共服务的数据访问方法、设备及可读介质 |
CN111083213A (zh) * | 2019-12-09 | 2020-04-28 | 苏宁云计算有限公司 | 一种通信方法及系统 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111556126A (zh) * | 2020-04-24 | 2020-08-18 | 杭州浮云网络科技有限公司 | 模型管理方法、系统、计算机设备和存储介质 |
CN111770176A (zh) * | 2020-06-29 | 2020-10-13 | 北京百度网讯科技有限公司 | 流量调度方法及装置 |
CN112104506A (zh) * | 2020-09-21 | 2020-12-18 | 北京指掌易科技有限公司 | 组网方法、装置、服务器及可读存储介质 |
CN112202829A (zh) * | 2019-07-08 | 2021-01-08 | 北京邮电大学 | 基于微服务的社交机器人调度系统和调度方法 |
CN112346899A (zh) * | 2020-11-06 | 2021-02-09 | 北京北信源软件股份有限公司 | 微服务性能优化方法及装置 |
CN112738184A (zh) * | 2020-12-24 | 2021-04-30 | 上海家睦网络科技有限公司 | 一种插件式动态注册分布式微服务网关系统 |
CN113301126A (zh) * | 2021-05-06 | 2021-08-24 | 中国南方电网有限责任公司 | 一种适用于异构组网网关的边缘计算方法 |
CN113742111A (zh) * | 2021-09-13 | 2021-12-03 | 广东电网有限责任公司 | 一种微服务rpc自适应调度方法及相关装置 |
CN113810443A (zh) * | 2020-06-16 | 2021-12-17 | 中兴通讯股份有限公司 | 资源管理方法、系统、代理服务器及存储介质 |
CN116319505A (zh) * | 2023-02-10 | 2023-06-23 | 安芯网盾(北京)科技有限公司 | 路由分发方法及装置 |
CN116579838A (zh) * | 2023-05-17 | 2023-08-11 | 深圳市三希软件科技有限公司 | 一种基于大数据的智慧监管方法及系统 |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070086582A1 (en) * | 2005-07-29 | 2007-04-19 | Verizon Business Financial Management Corp. | Application service invocation |
CN102594861A (zh) * | 2011-12-15 | 2012-07-18 | 杭州电子科技大学 | 一种多服务器负载均衡的云存储系统 |
CN103997526A (zh) * | 2014-05-21 | 2014-08-20 | 中国科学院计算技术研究所 | 一种可扩展负载均衡系统和方法 |
KR101512619B1 (ko) * | 2013-05-16 | 2015-04-16 | 한국과학기술정보연구원 | 플랫폼을 이용한 대용량 데이터 전송 장치 및 방법 |
US20160080479A1 (en) * | 2013-05-31 | 2016-03-17 | Huawei Technologies Co., Ltd. | Application deployment method and device |
CN106227605A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务扩容方法及装置 |
CN106331129A (zh) * | 2016-08-30 | 2017-01-11 | 广州西麦科技股份有限公司 | 一种负载均衡装置及其实现负载均衡的方法 |
CN107239329A (zh) * | 2016-03-29 | 2017-10-10 | 西门子公司 | 云环境下统一资源调度方法及系统 |
CN107612955A (zh) * | 2016-07-12 | 2018-01-19 | 深圳市远行科技股份有限公司 | 微服务提供方法、装置及系统 |
CN107645520A (zh) * | 2016-07-21 | 2018-01-30 | 阿里巴巴集团控股有限公司 | 一种负载均衡方法、装置以及系统 |
US20180146067A1 (en) * | 2016-11-18 | 2018-05-24 | Sap Se | Embedded database as a microservice for distributed container cloud platform |
CN108228347A (zh) * | 2017-12-21 | 2018-06-29 | 上海电机学院 | 一种任务感知的Docker自适应调度系统 |
CN108319501A (zh) * | 2017-12-26 | 2018-07-24 | 中山大学 | 一种基于微服务网关的弹性资源供给方法及系统 |
WO2018144060A1 (en) * | 2017-02-05 | 2018-08-09 | Intel Corporation | Microservice provision and management |
CN108390766A (zh) * | 2017-10-25 | 2018-08-10 | 国云科技股份有限公司 | 一种适用于微服务的服务注册与发现方法 |
CN108712464A (zh) * | 2018-04-13 | 2018-10-26 | 中国科学院信息工程研究所 | 一种面向集群微服务高可用的实现方法 |
US20180349121A1 (en) * | 2017-05-30 | 2018-12-06 | International Business Machines Corporation | Dynamic deployment of an application based on micro-services |
CN108984269A (zh) * | 2018-07-16 | 2018-12-11 | 中山大学 | 基于随机回归森林模型的容器资源供给方法及系统 |
CN109067862A (zh) * | 2018-07-23 | 2018-12-21 | 北京邮电大学 | API Gateway自动伸缩的方法与装置 |
CN109067869A (zh) * | 2018-08-01 | 2018-12-21 | 郑州云海信息技术有限公司 | 云计算系统中微服务节点的管理方法和装置 |
CN109144660A (zh) * | 2017-06-28 | 2019-01-04 | 英特尔公司 | 微服务架构 |
-
2019
- 2019-01-11 CN CN201910025524.9A patent/CN109618002B/zh active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070086582A1 (en) * | 2005-07-29 | 2007-04-19 | Verizon Business Financial Management Corp. | Application service invocation |
CN102594861A (zh) * | 2011-12-15 | 2012-07-18 | 杭州电子科技大学 | 一种多服务器负载均衡的云存储系统 |
KR101512619B1 (ko) * | 2013-05-16 | 2015-04-16 | 한국과학기술정보연구원 | 플랫폼을 이용한 대용량 데이터 전송 장치 및 방법 |
US20160080479A1 (en) * | 2013-05-31 | 2016-03-17 | Huawei Technologies Co., Ltd. | Application deployment method and device |
CN103997526A (zh) * | 2014-05-21 | 2014-08-20 | 中国科学院计算技术研究所 | 一种可扩展负载均衡系统和方法 |
CN107239329A (zh) * | 2016-03-29 | 2017-10-10 | 西门子公司 | 云环境下统一资源调度方法及系统 |
CN107612955A (zh) * | 2016-07-12 | 2018-01-19 | 深圳市远行科技股份有限公司 | 微服务提供方法、装置及系统 |
CN107645520A (zh) * | 2016-07-21 | 2018-01-30 | 阿里巴巴集团控股有限公司 | 一种负载均衡方法、装置以及系统 |
CN106227605A (zh) * | 2016-07-26 | 2016-12-14 | 北京北森云计算股份有限公司 | 一种多语言云编译的动态微服务扩容方法及装置 |
CN106331129A (zh) * | 2016-08-30 | 2017-01-11 | 广州西麦科技股份有限公司 | 一种负载均衡装置及其实现负载均衡的方法 |
US20180146067A1 (en) * | 2016-11-18 | 2018-05-24 | Sap Se | Embedded database as a microservice for distributed container cloud platform |
WO2018144060A1 (en) * | 2017-02-05 | 2018-08-09 | Intel Corporation | Microservice provision and management |
US20180349121A1 (en) * | 2017-05-30 | 2018-12-06 | International Business Machines Corporation | Dynamic deployment of an application based on micro-services |
CN109144660A (zh) * | 2017-06-28 | 2019-01-04 | 英特尔公司 | 微服务架构 |
CN108390766A (zh) * | 2017-10-25 | 2018-08-10 | 国云科技股份有限公司 | 一种适用于微服务的服务注册与发现方法 |
CN108228347A (zh) * | 2017-12-21 | 2018-06-29 | 上海电机学院 | 一种任务感知的Docker自适应调度系统 |
CN108319501A (zh) * | 2017-12-26 | 2018-07-24 | 中山大学 | 一种基于微服务网关的弹性资源供给方法及系统 |
CN108712464A (zh) * | 2018-04-13 | 2018-10-26 | 中国科学院信息工程研究所 | 一种面向集群微服务高可用的实现方法 |
CN108984269A (zh) * | 2018-07-16 | 2018-12-11 | 中山大学 | 基于随机回归森林模型的容器资源供给方法及系统 |
CN109067862A (zh) * | 2018-07-23 | 2018-12-21 | 北京邮电大学 | API Gateway自动伸缩的方法与装置 |
CN109067869A (zh) * | 2018-08-01 | 2018-12-21 | 郑州云海信息技术有限公司 | 云计算系统中微服务节点的管理方法和装置 |
Non-Patent Citations (1)
Title |
---|
郝庭毅等: "面向微服务架构的容器级弹性资源供给方法", 《计算机研究与发展》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110049048A (zh) * | 2019-04-22 | 2019-07-23 | 易联众民生(厦门)科技有限公司 | 一种政务公共服务的数据访问方法、设备及可读介质 |
CN112202829A (zh) * | 2019-07-08 | 2021-01-08 | 北京邮电大学 | 基于微服务的社交机器人调度系统和调度方法 |
CN111092816A (zh) * | 2019-11-26 | 2020-05-01 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111092816B (zh) * | 2019-11-26 | 2022-02-15 | 金蝶软件(中国)有限公司 | 网关动态路由方法、装置、计算机设备和存储介质 |
CN111083213A (zh) * | 2019-12-09 | 2020-04-28 | 苏宁云计算有限公司 | 一种通信方法及系统 |
CN111083213B (zh) * | 2019-12-09 | 2022-09-02 | 苏宁云计算有限公司 | 一种通信方法及系统 |
CN111556126A (zh) * | 2020-04-24 | 2020-08-18 | 杭州浮云网络科技有限公司 | 模型管理方法、系统、计算机设备和存储介质 |
CN113810443A (zh) * | 2020-06-16 | 2021-12-17 | 中兴通讯股份有限公司 | 资源管理方法、系统、代理服务器及存储介质 |
CN111770176A (zh) * | 2020-06-29 | 2020-10-13 | 北京百度网讯科技有限公司 | 流量调度方法及装置 |
CN112104506A (zh) * | 2020-09-21 | 2020-12-18 | 北京指掌易科技有限公司 | 组网方法、装置、服务器及可读存储介质 |
CN112104506B (zh) * | 2020-09-21 | 2023-07-18 | 北京指掌易科技有限公司 | 组网方法、装置、服务器及可读存储介质 |
CN112346899A (zh) * | 2020-11-06 | 2021-02-09 | 北京北信源软件股份有限公司 | 微服务性能优化方法及装置 |
CN112346899B (zh) * | 2020-11-06 | 2024-02-09 | 北京北信源软件股份有限公司 | 微服务性能优化方法及装置 |
CN112738184A (zh) * | 2020-12-24 | 2021-04-30 | 上海家睦网络科技有限公司 | 一种插件式动态注册分布式微服务网关系统 |
CN113301126A (zh) * | 2021-05-06 | 2021-08-24 | 中国南方电网有限责任公司 | 一种适用于异构组网网关的边缘计算方法 |
CN113301126B (zh) * | 2021-05-06 | 2024-03-12 | 中国南方电网有限责任公司 | 一种适用于异构组网网关的边缘计算方法 |
CN113742111A (zh) * | 2021-09-13 | 2021-12-03 | 广东电网有限责任公司 | 一种微服务rpc自适应调度方法及相关装置 |
CN113742111B (zh) * | 2021-09-13 | 2023-01-13 | 广东电网有限责任公司 | 一种微服务rpc自适应调度方法及相关装置 |
CN116319505A (zh) * | 2023-02-10 | 2023-06-23 | 安芯网盾(北京)科技有限公司 | 路由分发方法及装置 |
CN116579838A (zh) * | 2023-05-17 | 2023-08-11 | 深圳市三希软件科技有限公司 | 一种基于大数据的智慧监管方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109618002B (zh) | 2022-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109618002A (zh) | 一种微服务网关优化方法、装置及存储介质 | |
CN106657287B (zh) | 一种数据访问方法及系统 | |
CN106131213B (zh) | 一种服务管理方法和系统 | |
CN109547517B (zh) | 一种带宽资源调度方法和装置 | |
Aazam et al. | Cloud of things (CoT): Cloud-fog-IoT task offloading for sustainable Internet of Things | |
US10523748B2 (en) | Managing health status of network devices in a distributed global server load balancing system | |
CN104468648B (zh) | 数据处理系统及方法 | |
CN109831524B (zh) | 一种负载均衡处理方法及装置 | |
CN110138732A (zh) | 访问请求的响应方法、装置、设备及存储介质 | |
CN107341044A (zh) | 一种分布式数据中心统一监控架构及方法 | |
CN110366269A (zh) | 会话建立方法及设备 | |
JP2013168139A (ja) | 負荷均衡装置、負荷均衡方法及び階層化データセンターシステム | |
JP2004171572A (ja) | サーバ間の負荷分散方法、負荷分散システム、負荷分散サーバおよびプログラム | |
CN110417676A (zh) | 一种调度方法、装置和调度网络 | |
CN102035660A (zh) | 基于idc网络的业务处理方法、设备和系统 | |
CN101587639A (zh) | 一种基于网格的城市公交信息管理与调度决策支持系统 | |
CN109933431A (zh) | 一种智能的客户端负载均衡方法及系统 | |
CN103795575B (zh) | 一种面向多数据中心的系统监控方法 | |
CN101459526B (zh) | 基于服务发现的投影仪共享会议系统 | |
WO2024104284A1 (zh) | 一种基于nwdaf对计算资源的管理和决策的方法 | |
CN114615096B (zh) | 基于事件驱动架构的电信计费方法、系统及相关设备 | |
CN101753359B (zh) | 动态组件分布的方法和系统 | |
CN115002681A (zh) | 一种算力感知网络及其使用方法、存储介质 | |
CN109634735A (zh) | 一种调度Pod的方法及装置 | |
CN102932271A (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 |