CN112187839B - 一种分配方法、服务器及存储介质 - Google Patents
一种分配方法、服务器及存储介质 Download PDFInfo
- Publication number
- CN112187839B CN112187839B CN201910595966.7A CN201910595966A CN112187839B CN 112187839 B CN112187839 B CN 112187839B CN 201910595966 A CN201910595966 A CN 201910595966A CN 112187839 B CN112187839 B CN 112187839B
- Authority
- CN
- China
- Prior art keywords
- time
- performance consumption
- application server
- consumption value
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
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/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
-
- 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/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种分配方法、服务器及存储介质,其中,该方法包括:当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合;当接收到客户端发送的数据请求时,根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合;从至少一个应用服务器中,选择实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;将数据请求转发至最优应用服务器,完成数据请求的分配。本发明实施例提供的分配方法,提升了负载均衡的效果。
Description
技术领域
本发明涉及业务处理领域中的分配技术,尤其涉及一种分配方法、服务器及存储介质。
背景技术
代理负载均衡是指客户端向应用服务器请求数据时,通过代理服务器访问应用服务器所提供的数据;具体地,应用服务器为了实现高可用性通常以集群的方式实现,代理服务器将客户端的数据请求合理分配至集群中的应用服务器以均摊请求压力,实现应用服务器的平稳运行。
目前,代理负载均衡策略主要包括轮询方式、权重方式、依据IP(InternetProtocol Address,互联网协议地址)分配方式、依据URL(Uniform Resource Locator,URL)分配方式、最少连接方式和响应时间方式;然而,轮询方式和权重方式作为静态的分配数据请求的方式无法适用于集群中应用服务器性能的动态变化;依据IP分配方式和依据URL分配方式的负载均衡策略,会出现多个不同客户端的数据请求映射到同一台应用服务器情况,从而会导致应用服务器的压力大甚至宕机的现象;在使用最少连接方式和响应时间方式实现负载均衡时,由于实际网络环境的不稳定性,会导致应用服务器的最少连接或响应时间最短的判断出现偏差,影响负载均衡效果;综上,现有代理负载均衡策略的负载均衡效果差。
发明内容
为解决上述技术问题,本发明实施例期望提供一种分配方法、服务器及存储介质,能够提升负载均衡的效果。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种分配方法,应用于代理服务器,所述方法封装在所述代理服务器的负载均衡决策模块中,所述方法包括:
当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据所述历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;
当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;
从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;
将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
在上述方案中,所述根据所述历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,包括:
从所述历史性能消耗数据集合中,获取所述至少一个应用服务器中每个应用服务器对应的历史性能消耗数据;
从所述历史性能消耗数据中,获取所述每个应用服务器中每个性能参数对应的历史参数性能消耗数据;
利用预设拟合算法,对所述历史参数性能消耗数据中的采集时间和历史参数性能消耗值进行拟合,得到所述每个性能参数对应的时间与参数性能消耗值的对应关系,从而得到所述每个应用服务器的时间与性能消耗值的对应关系;
将至少一个时间与性能消耗值的对应关系组合为所述至少一个应用服务器的所述时间与性能消耗值的对应关系集合。
在上述方案中,所述根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合,包括:
从所述时间与性能消耗值的对应关系集合中,获取所述至少一个应用服务器中每个应用服务器对应的时间与性能消耗值的对应关系;
从所述时间与性能消耗值的对应关系中,获取所述每个应用服务器中每个性能参数对应的时间与参数性能消耗值的对应关系;
根据所述当前时间,以及所述时间与参数性能消耗值的对应关系,确定所述每个性能参数的实时参数性能消耗值;
将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值,从而得到所述至少一个应用服务器对应的所述实时性能消耗值集合。
在上述方案中,所述将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值之前,所述方法还包括:
为所述每个性能参数的实时参数性能消耗值设置消耗值权重;
相应地,所述将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值,包括:
根据所述至少一个消耗值权重和所述至少一个实时参数性能消耗值,计算所述每个应用服务器的所述实时性能消耗值。
在上述方案中,所述获得至少一个应用服务器的时间与性能消耗值的对应关系集合之后,所述方法还包括:
当下一个第一预设周期到来时,从所述存储服务器中获取所述至少一个应用服务器的下一个历史性能消耗数据集合,所述下一个历史性能消耗数据集合表征与所述下一个预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;
根据所述下一个历史性能消耗数据集合,更新所述至少一个应用服务器的时间与性能消耗值的对应关系集合;
相应地,所述根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合,包括:
根据所述当前时间,以及更新后的时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合。
第二方面,本发明实施例还提供了一种分配方法,应用于存储服务器,所述方法包括:
接收至少一个监控服务器发送的至少一个当前性能消耗值,确定对应的至少一个接收时间,所述至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值;
将所述至少一个接收时间作为至少一个采集时间,并将所述至少一个采集时间中的每个采集时间和所述至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对所述至少一个应用服务器的至少一个当前性能消耗数据。
第三方面,本发明实施例又提供了一种分配方法,应用于监控服务器,所述监控服务器安装在应用服务器上,所述方法包括:
根据第二预设周期,获取所述应用服务器的当前性能消耗值;
将所述当前性能消耗值发送至存储服务器。
第四方面,本发明实施例提供了一种分配系统,所述分配系统包括代理服务器、存储服务器、监控服务器和应用服务器;
所述监控服务器,用于根据第二预设周期,获取所述应用服务器的当前性能消耗值;将所述当前性能消耗值发送至存储服务器;
所述存储服务器,用于接收至少一个监控服务器发送的至少一个当前性能消耗值,确定对应的至少一个接收时间,所述至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值;将所述至少一个接收时间作为至少一个采集时间,并将所述至少一个采集时间中的每个采集时间和所述至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对所述至少一个应用服务器的至少一个当前性能消耗数据;
所述代理服务器包括负载均衡决策模块,用于当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据所述历史性能消耗数据集合,获得所述至少一个应用服务器的时间与性能消耗值的对应关系集合,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的所述至少一个当前性能消耗数据依据应用服务器所构成的集合;当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
第五方面,本发明实施例提供了一种代理服务器,所述代理服务器包括负载均衡决策模块,所述负载均衡决策模块包括第一获取单元、确定单元、选择单元和转发单元:
所述第一获取单元,用于当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据所述历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;
所述确定单元,用于当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;
所述选择单元,用于从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;
所述转发单元,用于将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
第六方面,本发明实施例还提供了一种代理服务器,所述代理服务器包括:第一发送器、第一处理器、第一存储器和第一通信总线,所述第一发送器和所述第一存储器通过所述第一通信总线与所述第一处理器进行通信,所述第一存储器存储所述第一处理器可执行的程序,当所述程序被执行时,通过所述第一处理器执行如上述所述的分配方法。
第七方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序,应用于代理服务器,所述程序被第一处理器执行时实现如上述所述的分配方法。
第八方面,本发明实施例提供了一种存储服务器,所述存储服务器包括:
接收单元,用于接收至少一个监控服务器发送的至少一个当前性能消耗值,确定对应的至少一个接收时间,所述至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值;
存储单元,用于将所述至少一个接收时间作为至少一个采集时间,并将所述至少一个采集时间中的每个采集时间和所述至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对所述至少一个应用服务器的至少一个当前性能消耗数据。
第九方面,本发明实施例还提供了一种存储服务器,所述存储服务器包括:接收器,第二处理器、第二存储器和第二通信总线,所述接收器和所述第二存储器通过所述第二通信总线与所述第二处理器进行通信,所述第二存储器存储所述第二处理器可执行的程序,当所述程序被执行时,通过所述第二处理器执行如上述所述的分配方法。
第十方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有程序,应用于存储服务器,所述程序被第二处理器执行时实现如上述所述的分配方法。
第十一方面,本发明实施例提供了一种监控服务器,所述监控服务器安装在应用服务器上,所述监控服务器包括:
第二获取单元,用于根据第二预设周期,获取所述应用服务器的当前性能消耗值;
发送单元,用于将所述当前性能消耗值发送至存储服务器。
第十二方面,本发明实施例还提供了一种监控服务器,所述监控服务器包括:第二发送器、第三处理器、第三存储器和第三通信总线,所述第二发送器和所述第三存储器通过所述第三通信总线与所述第三处理器进行通信,所述第三存储器存储所述第三处理器可执行的程序,当所述程序被执行时,通过所述第三处理器执行如上述所述的分配方法。
第十三方面,本发明实施例又提供了一种计算机可读存储介质,其上存储有程序,应用于监控服务器,所述程序被第三处理器执行时实现如上述所述的分配方法。
本发明实施例提供了一种分配方法、服务器及存储介质,首先,当代理服务器根据当前第一预设周期从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,历史性能消耗数据集合表征当前预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;然后,当接收到客户端发送的数据请求时,根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合;再后,从至少一个应用服务器中,选择实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;最后,将数据请求转发至最优应用服务器,完成数据请求的分配。采用上述技术实现方案,由于代理服务器中的负载均衡决策模块中封装的分配方法,能够实现周期性地根据获取到的历史性能消耗数据集合确定至少一个应用服务器的时间与性能消耗值的对应关系集合,从而最优应用服务器为代理服务器根据时间与性能消耗值的对应关系集合预估出的实时性能消耗值集合中实时性能消耗值最小的应用服务器,因此,代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现了客户端的数据请求的合理分配,提高了负载均衡的效果。
附图说明
图1为本发明实施例提供的一种分配系统架构图;
图2为本发明实施例提供的一种应用于代理服务器的分配方法实现流程图;
图3为本发明实施例提供的一种应用于存储服务器的分配方法实现流程图;
图4为本发明实施例提供的一种应用于监控服务器的分配方法实现流程图;
图5为本发明实施例提供的一种应用于分配系统中的分配方法实现交互图;
图6为本发明实施例提供的一种示例性的分配系统示意图;
图7为本发明实施例提供的一种代理服务器的结构示意图一;
图8为本发明实施例提供的一种代理服务器的结构示意图二;
图9为本发明实施例提供的一种存储服务器的结构示意图一;
图10为本发明实施例提供的一种存储服务器的结构示意图二;
图11为本发明实施例提供的一种监控服务器的结构示意图一;
图12为本发明实施例提供的一种监控服务器的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
如图1所示为本发明实施例提供的一种分配系统架构图,本发明实施例提供的分配方法是基于该分配系统的架构实现的。本发明实施例中的分配系统1包括:客户端2、代理服务器集群3和应用服务器集群4。其中,代理服务器集群3至少包括代理服务器31和存储服务器32,应用服务器集群4包括至少一个应用服务器41和至少一个监控服务器42,并且至少一个监控服务器42安装在至少一个应用服务器41上;代理服务器集群3分别与客户端2和应用服务器集群4建立了通信连接,具体为代理服务器31分别与客户端2、存储服务器32和至少一个应用服务器41建立了通信连接,至少一个监控服务器42与存储服务器32建立了通信连接;从而当代理服务器31分别与客户端2、存储服务器32和至少一个应用服务器41进行数据交互,以及至少一个监控服务器42与存储服务器32进行数据交互时,来执行本发明实施例提供的分配方法,实现客户端2通过代理服务器31访问至少一个应用服务器41提供的数据的技术方案。
下面的实施例都是基于图1的系统架构实现的。
实施例一
本发明实施例提供了一种分配方法,应用于代理服务器,并且,该分配方法封装在代理服务器的负载均衡决策模块中;图2为本发明实施例提供的一种应用于代理服务器的分配方法实现流程图,如图2所示,该分配方法包括:
S101、当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合。
在本发明实施例中,监控服务器根据第二预设周期采集应用服务器的当前性能消耗值,并将当前性能消耗值发送至存储服务器,以使存储服务器将当前性能消耗值作为当前性能消耗数据存储于存储服务器中,从而至少一个应用服务器对应至少一个当前性能消耗数据;故,当当前第一预设周期到来时,代理服务器能够从存储服务器中获取到与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合,即代理服务器从存储服务器中获取到了至少一个应用服务器的历史性能消耗数据集合。又由于历史性能消耗数据集合表征了至少一个应用服务器中的每个应用服务器的性能参数的消耗值与采集时间所构成的集合,因此,此时,代理服务器能够通过对历史性能消耗数据集合进行训练,获得至少一个应用服务器的时间与性能消耗值的对应关系集合。
需要说明的是,至少一个应用服务器为响应客户端的数据请求的服务器,比如,web服务器。监控服务器安装在应用服务器上,用于周期性地采集应用服务器的性能参数的消耗值(当前性能消耗值),具体按照第二预设周期进行采集。存储服务器为存储至少一个应用服务器的性能参数的消耗值与时间所构成的集合的服务器,比如,Elasticsearch服务器或Elasticsearch服务器集群,由于Elasticsearch服务器具有高速搜索海量数据的能力,将Elasticsearch服务器作为存储服务器,提升了获取历史性能消耗数据集合的速率。代理服务器为具有转发数据请求作用的服务器,比如,Nginx服务器;这里,代理服务器的数量为至少一个,至少一个代理服务器属于代理服务器集群。
还需要说明的是,代理服务器按照第一预设周期分析预设时间段内的当前性能消耗数据,得到实时的时间与性能消耗值的对应关系集合。这里,第一预设周期表征代理服务器获取当前性能消耗数据的时间间隔,具体根据实际实施情况确定,比如,当对实时性要求较高的场景,设置第一预设周期为1s,本发明实施例对此不作具体限定;而当前第一预设周期表征当前时间对应的第一预设周期。预设时间段表征代理服务器获取当前性能消耗数据的数据量对应的时间,比如30秒,通过设置预设时间段,能够保证获得的时间与性能消耗值的对应关系的准确性;而与当前第一预设周期对应的预设时间段表征将当前时间作为终止时间而对应的预设时间段。
另外,时间与性能消耗值的对应关系集合表征至少一个应用服务器对应的至少一个时间与性能消耗值的对应关系所构成的集合;当给定一个时间时,就能够根据该时间与性能消耗值的对应关系集合确定出至少一个应用服务器的与该给定时间对应的性能消耗值,比如,当给定的一个时间为当前时间,则获得至少一个应用服务器的与该当前时间对应的实时性能消耗值。具体,时间与性能消耗值的对应关系可以是曲线形式,还可以是表格形式,又可以是表达式形式,等等,本发明实施例对此不作具体限定。
S102、当接收到客户端发送的数据请求时,根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合。
在本发明实施例中,至少一个应用服务器用于向客户端提供预访问的数据,当客户端向至少一个应用服务器进行预访问的数据的访问时,对应的数据请求先发送至代理服务器,此时,代理服务器也就接收到了客户端发送的数据请求。由于代理服务器中设置有时间与性能消耗值的对应关系集合,用于确定给定时间对应的至少一个应用服务器的性能消耗情况,从而代理服务器能够根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合。这里,当前时间表征代理服务器接收到数据请求时对应的时间,且在各个第一预设周期中,当前时间距离当前第一预设周期的时间间距最短。
需要说明的是,为了实现高可用性,通常至少一个应用服务器以集群的方式实现,在此,称为应用服务器集群;应用服务器集群中的任一个应用服务器都能够响应客户端发送的数据请求,而具体由哪一个应用服务器来响应客户端发送的数据请求,由代理服务器确定;因此,代理服务器需能够实时获得至少一个应用服务器的实时性能,才能实现数据请求的合理分配;这里,代理服务器通过应用服务器的实时性能消耗值来确定实时性能,而实时性能消耗值集合表征的为至少一个应用服务器对应的至少一个实时性能消耗值构成的集合,也就是说,当前性能消耗数据集合表征了至少一个应用服务器的实时性能。
S103、从至少一个应用服务器中,选择实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器。
在本发明实施例中,当代理服务器获得了实时性能消耗值集合之后,由于实时性能消耗值集合表征了至少一个应用服务器中每个应用服务器的当前时间对应的性能消耗值,反应了至少一个应用服务器的实时性能,因此,代理服务器能够根据实时性能消耗值集合,从至少一个应用服务器中选择出实时性能最优的应用服务器,也就确定了至少一个应用服务器中的最优应用服务器。
具体地,由于性能消耗值与数据请求的数量之间为正相关的线性关系,即响应的数据请求的数量越多的应用服务器,对应的性能消耗值越大,从而实时性能消耗值越小则表明对应的应用服务器的当前的性能越优,因此,代理服务器首先从实时性能消耗值集合中选择最小实时性能消耗值;然后,在至少一个应用服务器中,将最小实时性能消耗值对应的应用服务器作为最优应用服务器;也就是说,实时性能最优的应用服务器也就是实时性能消耗值集合中最小的实时性能消耗值在至少一个应用服务器中对应的应用服务器。
S104、将数据请求转发至最优应用服务器,完成数据请求的分配。
在本发明实施例中,当代理服务器获得了最优应用服务器之后,由于最优应用服务器表征了实时性能最优的应用服务器,因此,代理服务器将客户端的数据请求交由最优应用服务器进行处理,通过将数据请求转发至最优应用服务器,就实现了数据请求的合理分配。
需要说明的是,S101-S104描述的数据请求的分配方法,为代理服务器的负载均衡方法,具体封装在代理服务器的负载均衡策略模块;比如,当代理服务器为Nginx服务器时,Nginx服务器中的upstream模块则为负载均衡策略模块。
可以理解的是,实时性能最优的应用服务器表征了处理数据请求效率最高的应用服务器,代理服务器通过历史性能消耗数据集合获得时间与性能消耗值的对应关系集合,并将根据时间与性能消耗值的对应关系集合确定出实时性能最优的应用服务器作为最优应用服务器,来响应客户端的数据请求,提高了数据请求的处理速率和处理效果,保证了客户端访问应用服务器的网络健壮性,提升了客户端访问应用服务器的访问效果。
进一步地,在本发明实施例中,S101中代理服务器根据历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,具体包括S101a-S101d:
S101a、从历史性能消耗数据集合中,获取至少一个应用服务器中每个应用服务器对应的历史性能消耗数据。
在本发明实施例中,由于历史性能消耗数据集合表征了至少一个应用服务器中每个应用服务器对应的历史性能消耗数据所构成的集合,因此,代理服务器能够从历史性能消耗数据集合中获得至少一个应用服务器中每个应用服务器对应的历史性能消耗数据。这里,历史性能消耗数据表征了每个应用服务器中每个性能参数对应的历史参数性能消耗数据所构成的集合。
S101b、从历史性能消耗数据中,获取每个应用服务器中每个性能参数对应的历史参数性能消耗数据。
在本发明实施例中,代理服务器获得了历史性能消耗数据之后,由于历史性能消耗数据表征了每个应用服务器中每个性能参数对应的历史参数性能消耗数据所构成的集合,因此,代理服务器能够从历史性能消耗数据中获得每个应用服务器中每个性能参数对应的历史参数性能消耗数据。这里,历史参数性能消耗数据表征了预设时间段内的采集时间与历史参数性能消耗值所构成的集合。
S101c、利用预设拟合算法,对历史参数性能消耗数据中的采集时间和历史参数性能消耗值进行拟合,得到每个性能参数对应的时间与参数性能消耗值的对应关系,从而得到每个应用服务器的时间与性能消耗值的对应关系。
在本发明实施例中,代理服务器获得了历史参数性能消耗数据之后,由于历史参数性能消耗数据表征了每个应用服务器中每个性能参数对应的预设时间段内的采集时间与历史参数性能消耗值所构成的集合,因此,代理服务器能够根据预设的预设拟合算法,对历史参数性能消耗数据进行拟合,来获得每个性能参数对应的时间与参数性能消耗值的对应关系;这里,时间与参数性能消耗值的对应关系表征了当前第一预设周期每个应用服务器中每个性能参数实时的时间与参数性能消耗值的对应关系。同时,当代理服务器得到了每个应用服务器的每个性能参数对应的时间与参数性能消耗值的对应关系,通过将每个性能参数对应的时间与参数性能消耗值的对应关系进行组合,也就得到了每个应用服务器的时间与性能消耗值的对应关系;这里,对应于当前第一预设周期,时间与性能消耗值的对应关系具有实时性。
需要说明的是,预设拟合算法为现有技术中的曲线拟合算法,比如,最小二乘法,具体拟合的过程本发明实施例在此不再赘述。
S101d、将至少一个时间与性能消耗值的对应关系组合为至少一个应用服务器的待更新的时间与性能消耗值的对应关系集合。
在本发明实施例中,当代理服务器获得了每个应用服务器对应的时间与性能消耗值的对应关系之后,对于至少一个应用服务器则对应至少一个时间与性能消耗值的对应关系,此时,代理服务器将该至少一个时间与性能消耗值的对应关系进行组合,就得到了至少一个应用服务器对应的时间与性能消耗值的对应关系集合。
进一步地,在本发明实施例中,S102中代理服务器根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合,具体包括S102a-S102d:
S102a、从时间与性能消耗值的对应关系集合中,获取至少一个应用服务器中每个应用服务器对应的时间与性能消耗值的对应关系。
在本发明实施例中,由于时间与性能消耗值的对应关系集合表征了至少一个应用服务器中的每个应用服务器对应的时间与性能消耗值的对应关系所构成的集合,因此,代理服务器能够从时间与性能消耗值的对应关系集合中获得至少一个应用服务器中每个应用服务器的时间与性能消耗值的对应关系。这里,时间与性能消耗值的对应关系表征每个应用服务器中的每个性能参数对应的时间与参数性能消耗值的对应关系所构成的集合。
S102b、从时间与性能消耗值的对应关系中,获取每个应用服务器中每个性能参数对应的时间与参数性能消耗值的对应关系。
在本发明实施例中,代理服务器在获得了时间与性能消耗值的对应关系之后,由于时间与性能消耗值的对应关系表征了每个应用服务器中的每个性能参数对应的时间与参数性能消耗值的对应关系所构成的集合,因此,代理服务器能够从时间与性能消耗值的对应关系中,获得每个应用服务器中每个性能参数的时间与参数性能消耗值的对应关系。
S102c、根据当前时间,以及时间与参数性能消耗值的对应关系,确定每个性能参数的实时参数性能消耗值。
在本发明实施例中,当代理服务器获得了时间与参数性能消耗值的对应关系之后,将当前时间输入至时间与参数性能消耗值的对应关系,就能获得每个性能参数的当前时间对应的性能消耗值,也就获得了每个性能参数的实时参数性能消耗值。
S102d、将至少一个实时参数性能消耗值组合为每个应用服务器的实时性能消耗值,从而得到至少一个应用服务器对应的实时性能消耗值集合。
在本发明实施例中,当代理服务器获得了每个性能参数的实时参数性能消耗值之后,由于每个应用服务器包含了至少一个性能参数,因此对于每个应用服务器则对应至少一个实时参数性能消耗值,此时,代理服务器将该至少一个实时参数性能消耗值组合,就得到了每个应用服务器的实时性能消耗值;这里的组合可以是求和处理,也可以是求均值处理,等等,本发明实施例对此不作具体限定。
进一步地,当代理服务器获得了每个应用服务器的实时性能消耗值之后,对于至少一个应用服务器则对应存在至少一个实时性能消耗值,将至少一个实时性能消耗值作为实时性能消耗值集合。
可以理解的是,代理服务器获得的至少一个应用服务器的实时性能消耗值集合,是根据每个应用服务器对应的至少一个性能参数对应的消耗值确定的,因此,该实时性能消耗值集合具有综合性,进而代理服务器根据该实时性能消耗值确定性能最优的应用服务器时,确保了最优应用服务器的准确性。
进一步地,在本发明实施例中,S102d中代理服务器将至少一个实时参数性能消耗值组合为每个应用服务器的所述实时性能消耗值之前,该分配方法还包括S102e,具体为:
S102e、为每个性能参数的实时参数性能消耗值设置消耗值权重。
在本发明实施例中,代理服务器将至少一个实时参数性能消耗值组合为每个应用服务器的实时性能消耗值时,对每个实时参数性能消耗值设置有对应的组合权重,即为每个性能参数的实时参数性能消耗值设置消耗值权重。
相应地,S102d中代理服务器将至少一个实时参数性能消耗值组合为每个应用服务器的实时性能消耗值,包括:代理服务器根据至少一个消耗值权重和至少一个实时参数性能消耗值,计算每个应用服务器的实时性能消耗值。也就是说,代理服务器根据至少一个消耗值权重对至少一个实时参数性能消耗值进行加权组合。
可以理解的是,代理服务器根据不同的性能参数的消耗值所表征的性能信息不同,对不同的性能参数的消耗值设置不同的消耗值权重,并通过设置的消耗值权重进行实时参数性能消耗值的组合,进一步提升了获得的实时性能消耗值的准确性。
进一步地,在本发明实时例中,S101中代理服务器获得至少一个应用服务器的时间与性能消耗值的对应关系集合之后,该分配方法还包括S105-S106,具体为:
S105、当下一个第一预设周期到来时,从存储服务器中获取至少一个应用服务器的下一个历史性能消耗数据集合,下一个历史性能消耗数据集合表征与下一个预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合。
在本发明实施例中,代理服务器获得的时间与性能消耗值的对应关系集合具有实时性,具体是因为代理服务器按照第一预设周期根据应用服务器的性能消耗数据更新该时间与性能消耗值的对应关系集合;这里,当代理服务器在当前第一预设周期获得了时间与性能消耗值的对应关系集合之后,当下一个第一预设周期到来时,代理服务器从存储服务器中获取与下一个预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合,也就获得了至少一个应用服务器的下一个历史性能消耗数据集合。这里,与下一个第一预设周期对应的预设时间段表征将下一个第一预设周期对应的当前时间作为终止时间而对应的预设时间段。
S106、根据下一个历史性能消耗数据集合,更新至少一个应用服务器的时间与性能消耗值的对应关系集合。
在本发明实施例中,当代理服务器获得了下一个历史性能消耗数据集合之后,由于下一个历史性能消耗数据集合表征了下一个第一预设周期的至少一个应用服务器的性能消耗数据,因此,代理服务器能够根据该下一个历史性能消耗数据集合,更新至少一个应用服务器的时间与性能消耗值的对应关系集合。
具体地,首先,代理服务器从下一个历史性能消耗数据集合中,获取至少一个应用服务器中每个应用服务器对应的下一个历史性能消耗数据;并从下一个历史性能消耗数据中,获取每个应用服务器中每个性能参数对应的下一个历史参数性能消耗数据;然后,利用预设拟合算法,对下一个历史参数性能消耗数据中的采集时间和历史参数性能消耗值进行拟合,得到每个性能参数对应的待更新的时间与参数性能消耗值的对应关系,从而得到每个应用服务器的待更新的时间与性能消耗值的对应关系;再后,将至少一个待更新的时间与性能消耗值的对应关系组合为至少一个应用服务器的待更新的时间与性能消耗值的对应关系集合;最后,根据待更新的时间与性能消耗值的对应关系集合,更新至少一个应用服务器的时间与性能消耗值的对应关系集合。
相应地,S102中代理服务器根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合,包括:代理服务器根据当前时间,以及更新后的时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合。
也就是说,代理服务通过周期性地对时间与性能消耗值的对应关系集合进行更新,保证了用于获取实时性能消耗值集合的时间与性能消耗值的对应关系集合的实时性。
可以理解的是,由于代理服务器中的负载均衡决策模块中封装的分配方法,能够实现周期性地根据获取到的历史性能消耗数据集合确定至少一个应用服务器的时间与性能消耗值的对应关系集合,从而最优应用服务器为代理服务器根据时间与性能消耗值的对应关系集合预估出的实时性能消耗值集合中实时性能消耗值最小的应用服务器,因此,代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现了客户端的数据请求的合理分配,提高了负载均衡的效果。
实施例二
本发明实施例还提供了一种分配方法,应用于存储服务器;图3为本发明实施例提供的一种应用于存储服务器的分配方法实现流程图,如图3所示,该分配方法包括:
S201、接收至少一个监控服务器发送的至少一个当前性能消耗值,确定对应的至少一个接收时间,至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值。
在本发明实施例中,每个监控服务器根据第二预设周期(比如3秒)周期性地对每个应用服务器进行当前性能消耗值的采集并将该当前性能消耗值实时发送给监控服务器,从而存储服务器能够接收到至少一个监控服务器发送的至少一个当前性能消耗值,并将接收该至少一个当前性能消耗值的至少一个时间作为至少一个当前性能消耗值对应的至少一个接收时间。这里,至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值。
需要说明的是,存储服务器为存储监控服务器发送的与至少一个应用服务器相关数据的服务器,比如,Elasticsearch服务器或Elasticsearch服务器集群,由于Elasticsearch服务器具有高速搜索海量数据的能力,将Elasticsearch服务器作为存储服务器,提升了获取历史性能消耗数据集合的速率。
S202、将至少一个接收时间作为至少一个采集时间,并将至少一个采集时间中的每个采集时间和至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对至少一个应用服务器的至少一个当前性能消耗数据。
在本发明实施例中,当存储服务器获得了至少一个当前性能消耗值和至少一个接收时间之后,对至少一个当前性能消耗值进行存储,具体存储时将至少一个采集时间中的每个采集时间和至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到每个应用服务器的当前性能消耗数据,从而得到针对至少一个应用服务器的至少一个当前性能消耗数据。
可以理解的是,存储服务器存储有至少一个应用服务器的至少一个当前性能消耗数据,从而代理服务器能够获取到预设时间段内的至少一个当前性能消耗数据即历史性能消耗数据集合;进而,代理服务器能够实现周期性地根据获取到的历史性能消耗数据集合确定至少一个应用服务器的时间与性能消耗值的对应关系集合,从而最优应用服务器为代理服务器根据时间与性能消耗值的对应关系集合预估出的实时性能消耗值集合中实时性能消耗值最小的应用服务器,因此,代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现了客户端的数据请求的合理分配,提高了负载均衡的效果。
实施例三
本发明实施例又提供了一种分配方法,应用于监控服务器,该监控服务器安装在应用服务器上;图4为本发明实施例提供的一种应用于监控服务器的分配方法实现流程图,如图4所示,该分配方法包括:
S301、根据第二预设周期,获取应用服务器的当前性能消耗值。
在本发明实施例中,监控服务器中预先设置有第二预设周期,当监控服务器根据第二预设周期周期性地获取应用服务器当前的性能参数的消耗值,也就是获得了应用服务器的当前性能消耗值。也就是说,当前性能消耗值表征应用服务器当前的性能参数的消耗值。
需要说明的是,性能参数为能够表征应用服务器的性能的参数,比如,处理器、网络流量和内存等。而监控服务器表征对应用服务器的性能参数进行监控的服务器,比如,Metricbeat服务器。
S302、将当前性能消耗值发送至存储服务器。
在本发明实施例中,存储服务器获取到当前性能消耗值之后,实时将该当前性能消耗值发送至存储服务器。
可以理解的是,监控服务器通过采集应用服务器的性能参数的当前消耗值并发送至存储服务器,进而代理服务器能够通过存储服务器获得由至少一个应用服务器中每个应用服务器在预设时间段内的采集时间与当前性能消耗值所构成的集合,即历史性能消耗数据集合;进而,代理服务器能够根据从存储服务器中获取到历史性能消耗数据集合并确定出至少一个应用服务器的实时性能,使得代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现客户端的数据请求的合理分配,提高负载均衡的效果。
实施例四
本发明实施例提供了一种分配系统,该分配系统包括代理服务器、存储服务器、监控服务器和应用服务器;图5为本发明实施例提供的一种应用于分配系统中的分配方法实现交互图,如图5所示,该分配方法包括:
S401、监控服务器根据第二预设周期,获取应用服务器的当前性能消耗值。
需要说明的是,S401实现过程的描述与实施例三中S301实现过程的描述一致,本发明实施例在此不再赘述。
S402、监控服务器将当前性能消耗值发送至存储服务器。
需要说明的是,S402实现过程的描述与实施例三中S302实现过程的描述一致,本发明实施例在此不再赘述。
S403、存储服务器接收至少一个监控服务器发送的至少一个当前性能消耗值,确定至少一个接收时间,至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值。
需要说明的是,S403实现过程的描述与实施例二中S201实现过程的描述一致,本发明实施例在此不再赘述。
S404、存储服务器将至少一个接收时间作为至少一个采集时间,并将至少一个采集时间中的每个采集时间和至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对至少一个应用服务器的至少一个当前性能消耗数据。
需要说明的是,S404实现过程的描述与实施例二中S202实现过程的描述一致,本发明实施例在此不再赘述。
S405、代理服务器从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合,历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合。
S406、代理服务器根据历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合。
需要说明的是,S405-S406实现过程的描述与实施例一中S101实现过程的描述一致,本发明实施例在此不再赘述。
S407、当接收到客户端发送的数据请求时,代理服务器根据当前时间,以及时间与性能消耗值的对应关系集合,确定至少一个应用服务器对应的实时性能消耗值集合。
需要说明的是,S407实现过程的描述与实施例一中S102实现过程的描述一致,本发明实施例在此不再赘述。
S408、代理服务器从至少一个应用服务器中,选择实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器。
需要说明的是,S408实现过程的描述与实施例一中S103实现过程的描述一致,本发明实施例在此不再赘述。
S409、代理服务器将数据请求转发至最优应用服务器,完成数据请求的分配。
需要说明的是,S409实现过程的描述与实施例一中S104实现过程的描述一致,本发明实施例在此不再赘述。
S410、当下一个第一预设周期到来时,代理服务器从存储服务器中获取至少一个应用服务器的下一个历史性能消耗数据集合,下一个历史性能消耗数据集合表征与下一个预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合。
需要说明的是,S410实现过程的描述与实施例一中S105实现过程的描述一致,本发明实施例在此不再赘述。
S411、代理服务器根据下一个历史性能消耗数据集合,更新至少一个应用服务器的时间与性能消耗值的对应关系集合。
需要说明的是,S411实现过程的描述与实施例一中S106实现过程的描述一致,本发明实施例在此不再赘述。
示例性地,图6为本发明实施例提供的一种示例性的分配系统示意图,如图6所示,Nginx作为代理服务器与Elasticsearch(存储服务器)同属于代理服务器集群,每个应用服务器上均运行有一个Metricbeat(监控服务器);其中,Metricbeat采集应用服务器的当前性能消耗值并发送至Elasticsearch,Nginx从Elasticsearch中获取由当前性能消耗值组成的历史性能消耗数据集合,并根据该历史性能消耗信息集合向应用服务器分发数据请求。
相应地,对应于图6所示的分配系统,本发明实施例提供的一种示例性的分配方法,该示例性的分配方法包括:
S501、Metricbeat每3秒对应用服务器进行一次处理器消耗、内存消耗、输入输出消耗和网络流量消耗的采集。
需要说明的是,Metricbeat为本发明实施例中的监控服务器,具体地Metricbeat中配置监控模块System,用于采集应用服务器的当前性能消耗值;3秒为本发明实施例中的第二预设周期;应用服务器的处理器消耗、内存消耗、输入输出消耗和网络流量消耗为本发明实施例中的应用服务器的当前性能消耗值。
另外,当分配系统处于正常平稳的情况下,应用服务器的数据请求量与当前性能消耗值相关,具体地,数据请求量大,对应的处理器消耗、内存消耗、输入输出消耗和网络流量消耗均大;数据请求量小,对应的处理器消耗、内存消耗、输入输出消耗和网络流量消耗均小。此外,各性能参数之间的联动性导致的当前性能消耗值可忽略不计,尤其在至少一个应用服务器相同时,因各性能参数之间的联动性导致的当前性能消耗值可忽略。
S502、Metricbeat将每次采集到的处理器消耗、内存消耗、输入输出消耗和网络流量消耗发送至Elasticsearch。
需要说明的是,Elasticsearch为本发明实施例中的存储服务器,由于Elasticsearch搜索海量数据的速度快,提高负载均衡的速度;另外,当分配系统中包含Elasticsearch时,复用分配系统中已存在的Elasticsearch,来实现当前性能消耗值的存储。
S503、Elasticsearch接收至少一个Metricbeat发送的至少一个“处理器消耗、内存消耗、输入输出消耗和网络流量消耗”,并确定至少一个接收时间,至少一个“处理器消耗、内存消耗、输入输出消耗和网络流量消耗”为至少一个应用服务器在一个采集周期3秒的性能消耗值。
S504、存储服务器将至少一个接收时间作为至少一个采集时间,并将至少一个采集时间中的每个采集时间和至少一个“处理器消耗、内存消耗、输入输出消耗和网络流量消耗”中的每个“处理器消耗、内存消耗、输入输出消耗和网络流量消耗”进行组合,得到每个应用服务器的当前性能消耗数据,从而得到针对至少一个应用服务器的至少一个当前性能消耗数据。
S505、Nginx周期性地从Elasticsearch获取至少一个应用服务器中每个应用服务器最近30秒的当前性能消耗数据。
需要说明的是,Nginx为本发明实施例中的代理服务器,其中,Nginx设置有upstream模块,用于根据从Elasticsearch获取的消耗数据实现将数据请求分配至最优应用服务器的负载均衡策略;每个应用服务器最近30秒的当前性能消耗数据构成了本发明实施例中的历史性能消耗数据集合。
S506、Nginx利用最小二乘法对每个应用服务器最近30秒的当前性能消耗数据进行模拟,得到每个应用服务器对应的处理器消耗曲线、内存消耗曲线、输入输出消耗曲线和网络流量消耗曲线共4条模拟曲线。
需要说明的是,每个应用服务器对应的处理器消耗曲线、内存消耗曲线、输入输出消耗曲线和网络流量消耗曲线为本发明实施例中的时间与性能消耗值的对应关系。
具体地,Nginx对每个应用服务器的处理器消耗、内存消耗、输入输出消耗和网络流量消耗这四个参数,分别拟合出模拟曲线。比如,第j个应用服务器的处理器消耗的模拟曲线Yj1为式(1):
Yj1=a1X+b1 (1)
第j个应用服务器的内存消耗的模拟曲线Yj2为式(2):
Yj2=a2X+b2 (2)
第j个应用服务器的输入输出消耗的模拟曲线Yj3为式(3):
Yj3=a3X+b3 (3)
第j个应用服务器的网络流量消耗的模拟曲线Yj4为式(4):
Yj4=a4X+b4 (4)
其中,式(1)-(4)中的a1-a4和b1-b4为待定系数,具体通过最小二乘法(预设拟合算法)确定。这里,Yj1、Yj2、Yj3和Yj4则为一个应用服务器j的时间与性能消耗值的对应关系。
S507、客户端向Nginx发送数据请求。
S508、Nginx响应数据请求,根据每个应用服务器的4条模拟曲线确定当前时间每个应用服务器的处理器消耗Y1、内存消耗Y2、输入输出消耗Y3和网络流量消耗Y4。
需要说明的是,当前时间每个应用服务器的处理器消耗Y1、内存消耗Y2、输入输出消耗Y3和网络流量消耗Y4为本发明实施例中的至少一个实时参数性能消耗值。
S509、Nginx根据式(5)计算每个应用服务器的实时性能消耗值Y,式(5)为:
Y=k1Y1+k2Y2+k3Y3+k4Y4 (5)
其中,k1、k2、k3和k4为本发明实施例提供的至少一个消耗值权重。
S510、Nginx确定至少一个应用服务器中Y最小的应用服务器。
需要说明的是,Y最小的应用服务器可以用IP来进行标识,也可以用其他标识方式,本发明实施例对此不作具体限定。
S511、Nginx将数据请求发送至Y最小的应用服务器。
需要说明的是,Nginx获得Y最小的应用服务器之后,再进行创建连接、处理数据请求和响应请求等指令。另外,采用本发明实施例中的分配方法实现代理负载均衡时,实时性和综合性高。
可以理解的是,代理服务器能够通过存储服务器获取监控服务器监控到的应用服务器的性能参数的消耗值,从而代理服务器能够周期性地根据获取到的历史性能消耗数据集合更新至少一个应用服务器的时间与性能消耗值的对应关系集合,从而最优应用服务器为代理服务器根据更新后的时间与性能消耗值的对应关系集合预估出的实时性能消耗值集合中实时性能消耗值最小的应用服务器,因此,代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现了客户端的数据请求的合理分配,提高了负载均衡的效果。
实施例五
基于实施例一同一发明构思,本发明实施例提供了一种代理服务器31,图7为本发明实施例提供的一种代理服务器的结构示意图一,如图7所示,该代理服务器31包括:
第一获取单元310,用于当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据所述历史性能消耗数据集合,获得至少一个应用服务器的时间与性能消耗值的对应关系集合,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;
确定单元311,用于当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;
选择单元312,用于从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;
转发单元313,用于将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
进一步地,所述第一获取单元310,具体用于从所述历史性能消耗数据集合中,获取所述至少一个应用服务器中每个应用服务器对应的历史性能消耗数据;从所述历史性能消耗数据中,获取所述每个应用服务器中每个性能参数对应的历史参数性能消耗数据;利用预设拟合算法,对所述历史参数性能消耗数据中的采集时间和历史参数性能消耗值进行拟合,得到所述每个性能参数对应的时间与参数性能消耗值的对应关系,从而得到所述每个应用服务器的时间与性能消耗值的对应关系;将至少一个时间与性能消耗值的对应关系组合为所述至少一个应用服务器的所述时间与性能消耗值的对应关系集合。
进一步地,所述确定单元311,具体用于从所述时间与性能消耗值的对应关系集合中,获取所述至少一个应用服务器中每个应用服务器对应的时间与性能消耗值的对应关系;从所述时间与性能消耗值的对应关系中,获取所述每个应用服务器中每个性能参数对应的时间与参数性能消耗值的对应关系;根据所述当前时间,以及所述时间与参数性能消耗值的对应关系,确定所述每个性能参数的实时参数性能消耗值;将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值,从而得到所述至少一个应用服务器对应的所述实时性能消耗值集合。
进一步地,所述代理服务器31还包括设置单元,用于为所述每个性能参数的实时参数性能消耗值设置消耗值权重;
相应地,所述确定单元311,具体还用于根据所述至少一个消耗值权重和所述至少一个实时参数性能消耗值,计算所述每个应用服务器的所述实时性能消耗值。
进一步地,所述代理服务器31还包括更新单元,用于当下一个第一预设周期到来时,从所述存储服务器中获取所述至少一个应用服务器的下一个历史性能消耗数据集合,所述下一个历史性能消耗数据集合表征与所述下一个预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;根据所述下一个历史性能消耗数据集合,更新所述至少一个应用服务器的时间与性能消耗值的对应关系集合;
相应地,所述确定单元311,还用于根据当前时间,以及所述更新后的时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合。
需要说明的是,在实际应用中,上述第一获取单元310、确定单元311、选择单元312、设置单元和更新单元可由位于代理服务器31上的第一处理器316实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,FieldProgrammable Gate Array)等实现;上述转发单元313可由位于代理服务器31上的第一发送器317实现。
本发明实施例还提供了一种代理服务器31,如图8所示,所述代理服务器31包括:第一发送器317、第一处理器316、第一存储器318和第一通信总线319,所述第一发送器317和所述第一存储器318通过所述第一通信总线319与所述第一处理器316进行通信,所述第一存储器318存储所述第一处理器316可执行的程序,当所述程序被执行时,通过所述第一处理器316执行如实施例一所述的分配方法。
在实际应用中,上述第一存储器318可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向第一处理器316提供指令和数据。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,所述程序被第一处理器316执行时实现如实施例一所述的分配方法。
可以理解的是,由于代理服务器中的负载均衡决策模块中封装的分配方法,能够实现周期性地根据获取到的历史性能消耗数据集合确定至少一个应用服务器的时间与性能消耗值的对应关系集合,从而最优应用服务器为代理服务器根据时间与性能消耗值的对应关系集合预估出的实时性能消耗值集合中实时性能消耗值最小的应用服务器,因此,代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现了客户端的数据请求的合理分配,提高了负载均衡的效果。
实施例六
基于实施例二同一发明构思,本发明实施例提供了一种存储服务器32,图9为本发明实施例提供的一种存储服务器的结构示意图一,如图9所示,该存储服务器32包括:
接收单元320,用于接收至少一个监控服务器发送的至少一个当前性能消耗值,确定对应的至少一个接收时间,所述至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值;
存储单元321,用于将所述至少一个接收时间作为至少一个采集时间,并将所述至少一个采集时间中的每个采集时间和所述至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对所述至少一个应用服务器的至少一个当前性能消耗数据。
需要说明的是,在实际应用中,上述存储单元321可由位于存储服务器32上的第二处理器322实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现;上述接收单元320可由位于存储服务器32上的接收器323实现。
本发明实施例还提供了一种存储服务器32,如图10所示,所述存储服务器32包括:接收器323、第二处理器322、第二存储器324和第二通信总线325,所述接收器323和所述第二处理器322通过所述第二通信总线325与所述第二处理器322进行通信,所述第二存储器324存储所述第二处理器322可执行的程序,当所述程序被执行时,通过所述第二处理器322执行如实施例二所述的分配方法。
在实际应用中,上述第二存储器324可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向第二处理器322提供指令和数据。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,所述程序被第二处理器322执行时实现如实施例二所述的分配方法。
可以理解的是,存储服务器存储有至少一个应用服务器的至少一个当前性能消耗数据,从而代理服务器能够获取到预设时间段内的至少一个当前性能消耗数据即历史性能消耗数据集合;进而,代理服务器能够实现周期性地根据获取到的历史性能消耗数据集合确定至少一个应用服务器的时间与性能消耗值的对应关系集合,从而最优应用服务器为代理服务器根据时间与性能消耗值的对应关系集合预估出的实时性能消耗值集合中实时性能消耗值最小的应用服务器,因此,代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现了客户端的数据请求的合理分配,提高了负载均衡的效果。
实施例七
基于实施例三同一发明构思,本发明实施例提供了一种监控服务器42,图11为本发明实施例提供的一种监控服务器的结构示意图一,如图11所示,该监控服务器42包括:
第二获取单元420,用于根据第二预设周期,获取所述应用服务器的当前性能消耗值;
发送单元421,用于将所述当前性能消耗值发送至存储服务器。
需要说明的是,在实际应用中,上述第二获取单元420可由位于监控服务器42上的第三处理器422实现,具体为CPU(Central Processing Unit,中央处理器)、MPU(Microprocessor Unit,微处理器)、DSP(Digital Signal Processing,数字信号处理器)或现场可编程门阵列(FPGA,Field Programmable Gate Array)等实现;上述发送单元421可由位于监控服务器42上的第二发送器423实现。
本发明实施例还提供了一种监控服务器42,如图12所示,所述监控服务器42包括:第二发送器423、第三处理器422、第三存储器424和第三通信总线425,所述第二发送器423和所述第三存储器424通过所述第三通信总线425与所述第三处理器422进行通信,所述第三存储器424存储所述第三处理器422可执行的程序,当所述程序被执行时,通过所述第三处理器422执行如实施例三所述的分配方法。
在实际应用中,上述第三存储器424可以是易失性存储器(volatile memory),例如随机存取存储器(Random-Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(Read-Only Memory,ROM),快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向第三处理器422提供指令和数据。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,所述程序被第三处理器422执行时实现如实施例三所述的分配方法。
可以理解的是,监控服务器通过采集应用服务器的性能参数的当前消耗值并发送至存储服务器,进而代理服务器能够通过存储服务器获得由至少一个应用服务器中每个应用服务器在预设时间段内的采集时间与当前性能消耗值所构成的集合,即历史性能消耗数据集合;进而,代理服务器能够根据从存储服务器中获取到历史性能消耗数据集合并确定出至少一个应用服务器的实时性能,使得代理服务器将客户端的数据请求分配到最优应用服务器即将数据请求分配至了当前性能最优的应用服务器上,实现客户端的数据请求的合理分配,提高负载均衡的效果。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种分配方法,应用于代理服务器,其特征在于,所述方法封装在所述代理服务器的负载均衡决策模块中,所述方法包括:
当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,从所述历史性能消耗数据集合中,获取所述至少一个应用服务器中每个应用服务器对应的历史性能消耗数据;其中,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;
从所述历史性能消耗数据中,获取所述每个应用服务器中每个性能参数对应的历史参数性能消耗数据;
利用预设拟合算法,对所述历史参数性能消耗数据中的采集时间和历史参数性能消耗值进行拟合,得到所述每个性能参数对应的时间与参数性能消耗值的对应关系,从而得到所述每个应用服务器的时间与性能消耗值的对应关系;
将至少一个时间与性能消耗值的对应关系组合为所述至少一个应用服务器的所述时间与性能消耗值的对应关系集合;
当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;
从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;
将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
2.根据权利要求1所述的方法,其特征在于,所述根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合,包括:
从所述时间与性能消耗值的对应关系集合中,获取所述至少一个应用服务器中每个应用服务器对应的时间与性能消耗值的对应关系;
从所述时间与性能消耗值的对应关系中,获取所述每个应用服务器中每个性能参数对应的时间与参数性能消耗值的对应关系;
根据所述当前时间,以及所述时间与参数性能消耗值的对应关系,确定所述每个性能参数的实时参数性能消耗值;
将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值,从而得到所述至少一个应用服务器对应的所述实时性能消耗值集合。
3.根据权利要求2所述的方法,其特征在于,所述将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值之前,所述方法还包括:
为所述每个性能参数的实时参数性能消耗值设置消耗值权重;
相应地,所述将至少一个实时参数性能消耗值组合为所述每个应用服务器的所述实时性能消耗值,包括:
根据所述至少一个消耗值权重和所述至少一个实时参数性能消耗值,计算所述每个应用服务器的所述实时性能消耗值。
4.根据权利要求1所述的方法,其特征在于,所述将至少一个时间与性能消耗值的对应关系组合为所述至少一个应用服务器的所述时间与性能消耗值的对应关系集合之后,所述方法还包括:
当下一个第一预设周期到来时,从所述存储服务器中获取所述至少一个应用服务器的下一个历史性能消耗数据集合,所述下一个历史性能消耗数据集合表征与所述下一个预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;
根据所述下一个历史性能消耗数据集合,更新所述至少一个应用服务器的时间与性能消耗值的对应关系集合;
相应地,所述根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合,包括:
根据所述当前时间,以及更新后的时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合。
5.一种分配系统,其特征在于,所述分配系统包括代理服务器、存储服务器、监控服务器和应用服务器;
所述监控服务器,用于根据第二预设周期,获取所述应用服务器的当前性能消耗值;将所述当前性能消耗值发送至存储服务器;
所述存储服务器,用于接收至少一个监控服务器发送的至少一个当前性能消耗值,确定对应的至少一个接收时间,所述至少一个当前性能消耗值为至少一个应用服务器在一个第二预设周期的性能消耗值;将所述至少一个接收时间作为至少一个采集时间,并将所述至少一个采集时间中的每个采集时间和所述至少一个当前性能消耗值中的每个当前性能消耗值进行组合,得到针对所述至少一个应用服务器的至少一个当前性能消耗数据;
所述代理服务器包括负载均衡决策模块,用于当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,根据所述历史性能消耗数据集合,获得所述至少一个应用服务器的时间与性能消耗值的对应关系集合,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的所述至少一个当前性能消耗数据依据应用服务器所构成的集合;当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
6.一种代理服务器,其特征在于,所述代理服务器包括负载均衡决策模块,所述负载均衡决策模块包括第一获取单元、确定单元、选择单元和转发单元:
所述第一获取单元,用于当从存储服务器中获取到至少一个应用服务器的历史性能消耗数据集合时,从所述历史性能消耗数据集合中,获取所述至少一个应用服务器中每个应用服务器对应的历史性能消耗数据;其中,所述历史性能消耗数据集合表征与当前第一预设周期对应的预设时间段内的至少一个当前性能消耗数据依据应用服务器所构成的集合;从所述历史性能消耗数据中,获取所述每个应用服务器中每个性能参数对应的历史参数性能消耗数据;利用预设拟合算法,对所述历史参数性能消耗数据中的采集时间和历史参数性能消耗值进行拟合,得到所述每个性能参数对应的时间与参数性能消耗值的对应关系,从而得到所述每个应用服务器的时间与性能消耗值的对应关系;将至少一个时间与性能消耗值的对应关系组合为所述至少一个应用服务器的所述时间与性能消耗值的对应关系集合;
所述确定单元,用于当接收到客户端发送的数据请求时,根据当前时间,以及所述时间与性能消耗值的对应关系集合,确定所述至少一个应用服务器对应的实时性能消耗值集合;
所述选择单元,用于从所述至少一个应用服务器中,选择所述实时性能消耗值集合中最小的实时性能消耗值对应的应用服务器,得到最优应用服务器;
所述转发单元,用于将所述数据请求转发至所述最优应用服务器,完成所述数据请求的分配。
7.一种代理服务器,其特征在于,所述代理服务器包括:第一发送器、第一处理器、第一存储器和第一通信总线,所述第一发送器和所述第一存储器通过所述第一通信总线与所述第一处理器进行通信,所述第一存储器存储所述第一处理器可执行的程序,当所述程序被执行时,通过所述第一处理器执行如权利要求1-4任一项所述的方法。
8.一种计算机可读存储介质,其上存储有程序,应用于代理服务器,其特征在于,所述程序被第一处理器执行时实现如权利要求1-4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910595966.7A CN112187839B (zh) | 2019-07-03 | 2019-07-03 | 一种分配方法、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910595966.7A CN112187839B (zh) | 2019-07-03 | 2019-07-03 | 一种分配方法、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187839A CN112187839A (zh) | 2021-01-05 |
CN112187839B true CN112187839B (zh) | 2022-06-03 |
Family
ID=73915941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910595966.7A Active CN112187839B (zh) | 2019-07-03 | 2019-07-03 | 一种分配方法、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187839B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500278B (zh) * | 2021-12-30 | 2024-04-09 | 武汉思普崚技术有限公司 | 一种通过代理服务器升级特征库的方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127701A (zh) * | 2007-07-24 | 2008-02-20 | 深圳市深信服电子科技有限公司 | 利用网络设备实现代理服务器负载均衡的方法 |
CN108551489A (zh) * | 2018-05-07 | 2018-09-18 | 广东电网有限责任公司 | 一种应用服务器负载均衡方法、系统、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10334035B2 (en) * | 2016-03-11 | 2019-06-25 | International Business Machines Corporation | Load balancing based on user behavior prediction |
-
2019
- 2019-07-03 CN CN201910595966.7A patent/CN112187839B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127701A (zh) * | 2007-07-24 | 2008-02-20 | 深圳市深信服电子科技有限公司 | 利用网络设备实现代理服务器负载均衡的方法 |
CN108551489A (zh) * | 2018-05-07 | 2018-09-18 | 广东电网有限责任公司 | 一种应用服务器负载均衡方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112187839A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764912B (zh) | 一种自适应任务调度器及方法 | |
CN109308221B (zh) | 一种基于WebSocket长连接的Nginx动态负载均衡方法 | |
CN109347947A (zh) | 一种负载均衡的方法、域名服务器及集群nas服务器 | |
CN109547517B (zh) | 一种带宽资源调度方法和装置 | |
CN103347068B (zh) | 一种基于代理集群网络缓存加速方法 | |
Liu et al. | Task scheduling in fog enabled Internet of Things for smart cities | |
JP2004171572A (ja) | サーバ間の負荷分散方法、負荷分散システム、負荷分散サーバおよびプログラム | |
CN110430274A (zh) | 一种基于云存储的文件下载方法及系统 | |
CN105450780A (zh) | 一种cdn系统及其回源方法 | |
CN102281190A (zh) | 负载均衡装置组网方法以及服务器、客户端接入方法 | |
CN103825975A (zh) | Cdn节点分配服务器及系统 | |
CN104158755A (zh) | 传输报文的方法、装置和系统 | |
CN106302230B (zh) | 一种数据传输方法及装置 | |
CN102075359A (zh) | 一种基于网络坐标的服务器部署方法及装置 | |
CN109194718A (zh) | 一种区块链网络及其任务调度方法 | |
CN106445473A (zh) | 一种容器部署方法及装置 | |
CN103401799A (zh) | 负载均衡的实现方法和装置 | |
WO2013184573A2 (en) | Decentralized resource allocation | |
Rawadi et al. | Providing local cloud services to mobile devices with inter-cloudlet communication | |
CN105656964B (zh) | 数据推送的实现方法及装置 | |
Miao et al. | Multicast virtual network mapping for supporting multiple description coding-based video applications | |
CN112187839B (zh) | 一种分配方法、服务器及存储介质 | |
CN110198267A (zh) | 一种流量调度方法、系统及服务器 | |
CN102970391B (zh) | 域名查询处理方法、服务器及系统 | |
CN104243473B (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 |