CN113934512A - 负载均衡实现方法、装置、设备及存储介质 - Google Patents
负载均衡实现方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113934512A CN113934512A CN202111225160.2A CN202111225160A CN113934512A CN 113934512 A CN113934512 A CN 113934512A CN 202111225160 A CN202111225160 A CN 202111225160A CN 113934512 A CN113934512 A CN 113934512A
- Authority
- CN
- China
- Prior art keywords
- service instance
- cluster
- service
- load
- target
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及人工智能领域,公开了一种负载均衡实现方法、装置、设备及存储介质。方法包括:接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;将所述目标服务实例发送到所述终端。本发明还涉及区块链技术,集群标识信息可存储于区块链中。
Description
技术领域
本发明涉及人工智能领域,尤其涉及一种负载均衡实现方法、装置、设备及存储介质。
背景技术
随着互联网技术的不断进步,越来越多的互联网功能需要开发人员在开发环境中进行研发,开发环境是每个开发人员快速高效开发的基础,一般情况下开发环境都是开发人员本地的环境,非常方便快捷。
但随着后续业务增长服务越来越多,底层基础服务越来越多,会影响日常开发,同时会有多人在测试环境进行频繁部署,此时测试人员也在测试,造成测试的环境不稳定,另外,当前负载方式会导致一个调用请求多次跨机房调用,导致网络专线资源消耗高,因此服务实例负载调度效率较低。
发明内容
本发明的主要目的在于解决服务实例负载调度时效率较低的技术问题。
本发明第一方面提供了一种负载均衡实现方法,包括:接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;将所述目标服务实例发送到所述终端。
可选的,在本发明第一方面的第一种实现方式中,在所述接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息之前,还包括:接收多个终端发送的多个服务实例注册请求,其中,所述服务实例注册请求中携带有集群注册标识信息,每个终端对应一个服务实例注册请求;对所述多个服务实例注册请求进行扫描,获取对应的多个集群注册标识信息;根据所述多个集群注册标识信息,确定每一所述服务实例注册请求对应的注册集群;对每一所述服务实例注册请求进行分析,确定每一所述服务实例注册请求对应的待注册服务实例,并将每一所述服务实例注册请求对应的待注册服务实例注册到每一所述服务实例注册请求对应的注册集群中。
可选的,在本发明第一方面的第二种实现方式中,所述从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例包括:对所述预置注册中心数据库进行服务实例遍历查询,获取所述预置注册中心数据库中的多个服务实例;对所述多个服务实例进行优先级排序,确定对应的服务实例列表;对预置负载均衡算法进行扫描,确定对应的负载均衡策略;基于所述负载均衡策略对所述服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,在本发明第一方面的第三种实现方式中,所述基于所述负载均衡策略对所述服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例包括:对所述多个服务实例进行服务负载数量统计,得到每一所述服务实例对应的服务负载数量;基于所述每一所述服务实例对应的服务负载数量,通过预置负载等级算法对每一所述服务实例进行负载等级计算,得到每一所述服务实例对应的负载等级;对每一所述服务实例对应的负载等级进行分析,通过所述负载均衡策略对所述多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,在本发明第一方面的第四种实现方式中,所述对所述多个服务实例进行服务负载数量统计,得到每一所述服务实例对应的服务负载数量包括:对所述多个服务实例进行扫描,确定每一所述服务实例对应的服务实例连接端口信息;通过所述每一所述服务实例对应的服务实例连接端口信息对所述多个服务实例进行连接数信息分析,得到每一所述服务实例对应的服务负载数量。
可选的,在本发明第一方面的第五种实现方式中,所述基于所述每一所述服务实例对应的服务负载数量,通过预置负载等级算法对每一所述服务实例进行负载等级计算,得到每一所述服务实例对应的负载等级包括:获取每一所述服务实例对应的服务实例支持最大连接数信息;通过所述每一所述服务实例对应的服务实例支持最大连接数信息及服务负载数量进行服务负载率分析,得到每一所述服务实例对应的服务负载率;根据预置的负载等级划分算法对每一所述服务实例进行负载等价划分,确定每一所述服务实例对应的负载等级。
可选的,在本发明第一方面的第六种实现方式中,所述将所述目标服务实例发送到所述终端包括:对所述目标服务实例进行扫描,确定对应的目标服务实例地址;通过所述目标服务实例地址从预置数据库中下载所述目标服务实例,并将所述目标服务实例传输至所述终端。
本发明第二方面提供了一种负载均衡实现装置,包括:接收模块,用于接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;确定模块,用于根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;分析模块,用于对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;获取模块,用于从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;发送模块,用于将所述目标服务实例发送到所述终端。
可选的,在本发明第二方面的第一种实现方式中,所述负载均衡实现装置还包括:第二接收模块,接收多个终端发送的多个服务实例注册请求,其中,所述服务实例注册请求中携带有集群注册标识信息,每个终端对应一个服务实例注册请求;请求扫描模块,用于对所述多个服务实例注册请求进行扫描,获取对应的多个集群注册标识信息;第二确定模块,用于根据所述多个集群注册标识信息,确定每一所述服务实例注册请求对应的注册集群;请求分析模块,用于对每一所述服务实例注册请求进行分析,确定每一所述服务实例注册请求对应的待注册服务实例,并将每一所述服务实例注册请求对应的待注册服务实例注册到每一所述服务实例注册请求对应的注册集群中。
可选的,在本发明第二方面的第二种实现方式中,所述列表获取模块还包括:查询单元,用于对所述预置注册中心数据库进行服务实例遍历查询,获取所述预置注册中心数据库中的多个服务实例;排序单元,用于对所述多个服务实例进行优先级排序,确定对应的服务实例列表;扫描单元,用于对预置负载均衡算法进行扫描,确定对应的负载均衡策略;筛选单元,用于基于所述负载均衡策略对所述服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,在本发明第二方面的第三种实现方式中,所述筛选单元还包括:统计子单元,用于对所述多个服务实例进行服务负载数量统计,得到每一所述服务实例对应的服务负载数量;计算子单元,用于基于所述每一所述服务实例对应的服务负载数量,通过预置负载等级算法对每一所述服务实例进行负载等级计算,得到每一所述服务实例对应的负载等级;分析子单元,对每一所述服务实例对应的负载等级进行分析,通过所述负载均衡策略对所述多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,在本发明第二方面的第四种实现方式中,所述统计子单元具体用于:对所述多个服务实例进行扫描,确定每一所述服务实例对应的服务实例连接端口信息;通过所述每一所述服务实例对应的服务实例连接端口信息对所述多个服务实例进行连接数信息分析,得到每一所述服务实例对应的服务负载数量。
可选的,在本发明第二方面的第五种实现方式中,所述计算子单元具体用于:获取每一所述服务实例对应的服务实例支持最大连接数信息;通过所述每一所述服务实例对应的服务实例支持最大连接数信息及服务负载数量进行服务负载率分析,得到每一所述服务实例对应的服务负载率;根据预置的负载等级划分算法对每一所述服务实例进行负载等价划分,确定每一所述服务实例对应的负载等级。
可选的,在本发明第二方面的第六种实现方式中,所述实例发送模块具体用于:对所述目标服务实例进行扫描,确定对应的目标服务实例地址;通过所述目标服务实例地址从预置数据库中下载所述目标服务实例,并将所述目标服务实例传输至所述终端。
本发明第三方面提供了一种负载均衡实现设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述负载均衡实现设备执行上述的负载均衡实现方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的负载均衡实现方法。
本发明提供的技术方案中,接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;将所述目标服务实例发送到所述终端。本发明实施例中,目标集群为已经搭建完成的集群,通过在服务实例调用请求中添加集群标识信息,使得在服务实例调用时,服务器只能从与集群标识信息对应的调用目标集群中获取目标服务实例,即服务器只能调用目标集群的服务实例,而调用目标集群为已经完成集群搭建的集群,因此解决了现有服务实例调用方式中,可能出现的直接调用新集群的服务实例或跨集群调用新集群的服务实例,而导致的数据丢失或者数据异常问题,同时也实现了服务实例调用的本地优先原则,同时在获取调用目标集群的服务实例列表后,并从服务实例列表中获取目标服务实例,其中,调用目标集群可能存在若干个服务框架,因此同时服务器向调用目标集群的所有的服务实例从而获取服务实例列表,得到若干个服务实例列表,然后对得到的服务实例列表进行聚合,得到服务实例调用请求对应的目标服务实例。其中。聚合多个服务实例列表时,注意合并多个实例列表的哈希码值,以避免每次都从多个服务实例列表中全量拉取,而导致聚合效率过低。
附图说明
图1为本发明实施例中负载均衡实现方法的一个实施例示意图;
图2为本发明实施例中负载均衡实现方法的另一个实施例示意图;
图3为本发明实施例中负载均衡实现装置的一个实施例示意图;
图4为本发明实施例中负载均衡实现装置的另一个实施例示意图;
图5为本发明实施例中负载均衡实现设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种负载均衡实现方法、装置、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中负载均衡实现方法的一个实施例包括:
101、接收终端发送的服务实例调用请求,其中,服务实例调用请求中携带有集群标识信息;
可以理解的是,本发明的执行主体可以为负载均衡实现装置,还可以是服务器,具体此处不作限定。本发明实施例以服务器为执行主体为例进行说明。
其中,集群标识信息可以由终端自动生成,终端可以根据所处的网络系统自动生成对应的集群标识信息,额外地,集群标识信息也可以由用户自主设定,用户在终端上根据自身需求自主设定集群标识信息。在出现服务实例调用需求时,将集群标识信息添加到服务实例调用请求。本申请中服务器可以通过有线连接方式或者无线连接方式接收来自终端的服务实例调用请求。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接等无线连接方式。具体的,当用户存在调用服务实例的需求时,接收到终端的服务实例调用请求,并从服务实例调用请求中获取集群标识信息,需要强调的是,为进一步保证上述集群标识信息的私密和安全性,上述集群标识信息还可以存储于一区块链的节点中。
102、根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;
具体的,服务器通过在服务实例调用请求中添加集群标识信息,使得在服务实例调用时,服务器从与集群标识信息对应的调用候选集群中获取服务实例,本实施例中,服务器根据该集群标识信息,确定相应的多个候选集群,由于该多个候选集群可能存在无法直接调用服务实例的集群,可能会导致数据丢失等问题,因此后续还需对该多个候选集群进行分析。
103、对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;
需要说明的是,目标集群为已经搭建完成的集群,通过在服务实例调用请求中添加集群标识信息,在服务实例调用时,服务器从与集群标识信息对应的调用目标集群中获取目标服务实例,即此时服务器只能调用目标集群的服务实例,而调用目标集群为已经完成集群搭建的集群,因此解决了现有服务实例调用方式中,可能出现的直接调用新集群的服务实例或跨集群调用新集群的服务实例,而导致的数据丢失或者数据异常问题,同时也实现了服务实例调用的本地优先原则。在本申请实施例中,集群存在两种状态:搭建中的集群也称为新集群、已完成搭建的集群也称为集群,集群已经搭建完成,集群中的服务实例,可以直接被用户调用,而新集群处于搭建状态中,不具备提供服务的能力,因此新集群中的服务实例不能直接被调用。具体的,服务器对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群。
104、从预置注册中心数据库中获取与目标集群对应的服务实例列表,通过预置负载均衡算法从服务实例列表中确定目标服务实例;
需要说明的是,预置注册中心数据库提供了基于Java的用户终端组件,能够非常方便地将服务注册并进行统一管理,以实现服务的注册与发现,在本申请中,每一个集群均包括有若干个预置注册中心数据库,每一个集群内的若干个预置注册中心数据库共同组成一个服务注册中心集群,同一个集群中不同的预置注册中心数据库之间双向同步数据,且不同集群之间可以双向同步数据。每一个预置注册中心数据库的服务实例列表中记录有注册于该预置注册中心数据库上的所有服务实例,包括这些服务实例的名称、类型、开发者信息、注册时间以及被调用次数等等。具体的,获取调用目标集群的服务实例列表,并从服务实例列表中获取目标服务实例,其中,调用目标集群可能存在若干个服务框架,因此同时服务器向调用目标集群的所有的服务实例从而获取服务实例列表,得到若干个服务实例列表,然后对得到的服务实例列表进行聚合,得到服务实例调用请求对应的目标服务实例。其中。聚合多个服务实例列表时,注意合并多个实例列表的哈希码值,以避免每次都从多个服务实例列表中全量拉取,而导致聚合效率过低。
105、将目标服务实例发送到终端。
具体的,服务器在获取调用目标集群的服务注册中心集群的服务实例列表,并从服务实例列表中获取目标服务实例后,将得到的目标服务实例发送到终端。
本发明实施例中,目标集群为已经搭建完成的集群,通过在服务实例调用请求中添加集群标识信息,在服务实例调用时,服务器对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群,而调用目标集群为已经完成集群搭建的集群,因此解决了现有服务实例调用方式中,可能出现的直接调用新集群的服务实例或跨集群调用新集群的服务实例,而导致的数据丢失或者数据异常问题,同时也实现了服务实例调用的本地优先原则,同时在获取调用目标集群的服务实例列表后,并从服务实例列表中获取目标服务实例,其中,调用目标集群可能存在若干个服务框架,因此同时服务器向调用目标集群的所有的服务实例从而获取服务实例列表,得到若干个服务实例列表,然后对得到的服务实例列表进行聚合,得到服务实例调用请求对应的目标服务实例。其中。聚合多个服务实例列表时,注意合并多个实例列表的哈希码值,以避免每次都从多个服务实例列表中全量拉取,而导致聚合效率过低。
请参阅图2,本发明实施例中负载均衡实现方法的另一个实施例包括:
201、接收终端发送的服务实例调用请求,其中,服务实例调用请求中携带有集群标识信息;
具体的,在本实施例中,步骤201的具体实施方式与上述步骤101类似,此处不再赘述。
可选的,在步骤201之前,还可以包括:接收多个终端发送的多个服务实例注册请求,其中,服务实例注册请求中携带有集群注册标识信息,每个终端对应一个服务实例注册请求;对多个服务实例注册请求进行扫描,获取对应的多个集群注册标识信息;根据多个集群注册标识信息,确定每一服务实例注册请求对应的注册集群;对每一服务实例注册请求进行分析,确定每一服务实例注册请求对应的待注册服务实例,并将每一服务实例注册请求对应的待注册服务实例注册到每一服务实例注册请求对应的注册集群中。
其中,具体的,用户在终端上根据自身需求自主设定集群注册标识信息,在接收到服务实例注册请求时,服务器将集群注册标识信息添加到服务实例注册请求。具体的,注册目标集群可以是已经搭建完成的集群,也可以是正在搭建中的新集群,当用户存在注册服务实例的需求时,接收到终端的服务实例注册请求,并从服务实例调用请求中获取集群注册标识信息。服务器通过在服务实例注册请求中添加集群注册标识信息,使得在服务实例注册时,终端只能将服务实例注册到与集群注册标识信息对应的注册目标集群中,实现了服务实例注册的本地优先原则。具体的,在服务实例注册请求中获取集群注册标识信息,根据集群注册标识信息,确定服务实例注册请求对应的注册目标集群。确定服务实例注册请求对应的注册目标集群后并将服务实例注册到注册目标集群中。
202、根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;
具体的,在本实施例中,步骤202的具体实施方式与上述步骤102类似,此处不再赘述。
203、对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;
具体的,在本实施例中,步骤203的具体实施方式与上述步骤103类似,此处不再赘述。
204、对预置注册中心数据库进行服务实例遍历查询,获取预置注册中心数据库中的多个服务实例;
具体的,采用负载均衡策略筛选服务实例列表中的所有服务实例,可以精确得到终端需要调用的目标服务实例。其中,负载均衡策略是一个为服务器提供负载均衡功能的方案,通常采用负载均衡器来实现,负载均衡器内部提供了一个预置的接口,预置接口用于进行负载均衡器操作。具体的,服务器对预置注册中心数据库进行服务实例遍历查询,获取预置注册中心数据库中的多个服务实例。
205、对多个服务实例进行优先级排序,确定对应的服务实例列表;
具体的,进行优先级排序时,服务器在服务实例调用请求获取排序说明文件,服务器进而在基于排序说明文件对服务实例进行优先级排序,需要说明的是,该排序说明文件主要用于指示在不同环境中优先负载的服务实例类型,并根据该多个服务实例类型进行优先级别排序,从而确定对应的服务实例列表。
206、对预置负载均衡算法进行扫描,确定对应的负载均衡策略;
需要说明的是,负载均衡策略是一个为服务器提供负载均衡功能的方案,通常采用负载均衡器来实现,负载均衡器内部提供了一个预置的接口,预置接口用于进行负载均衡器操作,具体的,服务器对预置负载均衡算法进行扫描,得到对应的负载均衡策略,以便于后续负载均衡的实现。
207、基于负载均衡策略对服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例;
具体的,服务器对多个服务实例进行服务负载数量统计,得到每一服务实例对应的服务负载数量;服务器基于每一服务实例对应的服务负载数量,通过预置负载等级算法对每一服务实例进行负载等级计算,得到每一服务实例对应的负载等级;服务器对每一服务实例对应的负载等级进行分析,通过负载均衡策略对多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
其中,服务器进行状态监控和统计服务连接数,并向注册中心定时上报。服务器接收用户终端与服务端定时发送的监控数据,根据监控状态判断当前用户终端与服务端的连接情况,将服务实例的新增、变更、异常、断开信息实时推送给在线的用户终端;该注册中心作为负载均衡架构服务发布与服务订阅中心,分别向服务端与用户终端提供服务自动注册与订阅功能。同时,注册中心内置服务实例负载等级划分器,接收由监控中心推送的服务实例当前连接数信息,并计算实时的服务实例负载率。注册中心向用户终端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级,进而服务器对每一服务实例对应的负载等级进行分析,通过负载均衡策略对多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,对多个服务实例进行服务负载数量统计,得到每一服务实例对应的服务负载数量可以包括:服务器对多个服务实例进行扫描,确定每一服务实例对应的服务实例连接端口信息;服务器通过每一服务实例对应的服务实例连接端口信息对多个服务实例进行连接数信息分析,得到每一服务实例对应的服务负载数量。
其中,当用户终端启动后,发送服务订阅请求,注册中心接收请求,获取服务实例列表,推送服务实例列表向用户终端,用户终端接收服务实例列表信息。服务器实时统计当前服务实例所对应的用户终端连接数信息,并向注册中心推送实例连接数更新列表,用户终端接收服务实例更新信息后进行更新,进而服务器通过每一服务实例对应的服务实例连接端口信息对多个服务实例进行连接数信息分析,得到每一服务实例对应的服务负载数量。
可选的,基于每一服务实例对应的服务负载数量,通过预置负载等级算法对每一服务实例进行负载等级计算,得到每一服务实例对应的负载等级可以包括:服务器获取每一服务实例对应的服务实例支持最大连接数信息;服务器通过每一服务实例对应的服务实例支持最大连接数信息及服务负载数量进行服务负载率分析,得到每一服务实例对应的服务负载率;服务器根据预置的负载等级划分算法对每一服务实例进行负载等价划分,确定每一服务实例对应的负载等级。
其中,服务器获取每一服务实例对应的服务实例支持最大连接数信息;通过每一服务实例对应的服务实例支持最大连接数信息及服务负载数量进行服务负载率分析,得到每一服务实例对应的服务负载率,进而服务器将负载率转化为相应负载等级,以可量化的方式表示当前服务负载状态,服务实例当前负载率的计算方式为:当前连接服务实例的用户终端数量与服务实例配置的最大连接数之间的比值,负载等级划分模块提供可配置的负载等级划分标准,支持用户自定义的划分方式:负载等级划分模块提供划分标准的可配置文件,生成自定义负载等级划分标准,进而服务器根据预置的负载等级划分算法对每一服务实例进行负载等价划分,确定每一服务实例对应的负载等级。需要说明的是,负载率越高,负载等级越高,服务实例当前负载越大。默认的负载等级由高到低分包括1级、2级、3级、4级、5级。默认的负载等级划分标准为:负载率在20%以内,相应负载等级为5;负载率在20%以上,40%以内,相应负载等级为4;负载率在40%以上,60%以内,相应负载等级为3;负载率在60%以上,80%以内,相应负载等级为2;负载率在80%以上,相应负载等级为1。计算服务实例当前负载率。并将负载率转化为相应负载等级以可量化的方式表示当前服务负载状态。当服务实例集合当中没有负载最低的服务实例,则根据服务实例负载高,被选择概率较低,服务实例负载高,被选择概率较低的规则,均分用户终端请求,使得负载等级较高的服务实例被选中的概率较低,负载等级较低的服务实例被选择概率较高。
208、将目标服务实例发送到终端。
具体的,服务器对目标服务实例进行扫描,确定对应的目标服务实例地址;服务器通过目标服务实例地址从预置数据库中下载目标服务实例,并将目标服务实例传输至终端。
其中,服务器对目标服务实例进行扫描,确定对应的目标服务实例地址,需要说明的是,该目标服务实例地址存储于预置数据库中,且该目标服务实例地址用于指示服务器从该预置数据库中下载该目标服务实例,进而服务器通过目标服务实例地址从预置数据库中下载目标服务实例,并将目标服务实例传输至终端。
本发明实施例中,服务器在注册中心内置服务实例负载等级划分器,接收由监控中心推送的服务实例当前连接数信息,并计算实时的服务实例负载率。注册中心向用户终端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级,进而服务器对每一服务实例对应的负载等级进行分析,通过负载均衡策略对多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例,可以在短时间内完成负载服务实例的调度使用,提升负载调度的效率。
请参阅图3,本发明实施例中负载均衡实现装置的一个实施例包括:
第一接收模块301,用于接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;
第一确定模块302,用于根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;
集群分析模块303,用于对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;
列表获取模块304,用于从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;
实例发送模块305,用于将所述目标服务实例发送到所述终端。
请参阅图4,本发明实施例中负载均衡实现装置的另一个实施例包括:
第一接收模块301,用于接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;
第一确定模块302,用于根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;
集群分析模块303,用于对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;
列表获取模块304,用于从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;
实例发送模块305,用于将所述目标服务实例发送到所述终端。
可选的,所述负载均衡实现装置还包括:
第二接收模块306,接收多个终端发送的多个服务实例注册请求,其中,所述服务实例注册请求中携带有集群注册标识信息,每个终端对应一个服务实例注册请求;
请求扫描模块307,用于对所述多个服务实例注册请求进行扫描,获取对应的多个集群注册标识信息;
第二确定模块308,用于根据所述多个集群注册标识信息,确定每一所述服务实例注册请求对应的注册集群;
请求分析模块309,用于对每一所述服务实例注册请求进行分析,确定每一所述服务实例注册请求对应的待注册服务实例,并将每一所述服务实例注册请求对应的待注册服务实例注册到每一所述服务实例注册请求对应的注册集群中。
可选的,所述列表获取模块304包括:
查询单元3041,用于对所述预置注册中心数据库进行服务实例遍历查询,获取所述预置注册中心数据库中的多个服务实例;
排序单元3042,用于对所述多个服务实例进行优先级排序,确定对应的服务实例列表;
扫描单元3043,用于对预置负载均衡算法进行扫描,确定对应的负载均衡策略;
筛选单元3044,用于基于所述负载均衡策略对所述服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,所述筛选单元3034包括:
统计子单元30441,用于对所述多个服务实例进行服务负载数量统计,得到每一所述服务实例对应的服务负载数量;
计算子单元30442,用于基于所述每一所述服务实例对应的服务负载数量,通过预置负载等级算法对每一所述服务实例进行负载等级计算,得到每一所述服务实例对应的负载等级;
分析子单元30443,对每一所述服务实例对应的负载等级进行分析,通过所述负载均衡策略对所述多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
可选的,所述统计子单元30441具体用于:
对所述多个服务实例进行扫描,确定每一所述服务实例对应的服务实例连接端口信息;通过所述每一所述服务实例对应的服务实例连接端口信息对所述多个服务实例进行连接数信息分析,得到每一所述服务实例对应的服务负载数量。
可选的,所述计算子单元30442具体用于:
获取每一所述服务实例对应的服务实例支持最大连接数信息;通过所述每一所述服务实例对应的服务实例支持最大连接数信息及服务负载数量进行服务负载率分析,得到每一所述服务实例对应的服务负载率;根据预置的负载等级划分算法对每一所述服务实例进行负载等价划分,确定每一所述服务实例对应的负载等级。
可选的,所述实例发送模块305具体用于:
对所述目标服务实例进行扫描,确定对应的目标服务实例地址;通过所述目标服务实例地址从预置数据库中下载所述目标服务实例,并将所述目标服务实例传输至所述终端。
图5是本发明实施例提供的一种负载均衡实现设备的结构示意图,该负载均衡实现设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对负载均衡实现设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在负载均衡实现设备500上执行存储介质530中的一系列指令操作。
负载均衡实现设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的负载均衡实现设备结构并不构成对负载均衡实现设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种负载均衡实现设备,所述负载均衡实现设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述负载均衡实现方法的步骤。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述负载均衡实现方法的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明所指区块链是分布式数据存储,点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块,区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
Claims (10)
1.一种负载均衡实现方法,其特征在于,所述负载均衡实现方法包括:
接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;
根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;
对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;
从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;
将所述目标服务实例发送到所述终端。
2.根据权利要求1所述的负载均衡实现方法,其特征在于,在所述接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息之前,还包括:
接收多个终端发送的多个服务实例注册请求,其中,所述服务实例注册请求中携带有集群注册标识信息,每个终端对应一个服务实例注册请求;
对所述多个服务实例注册请求进行扫描,获取对应的多个集群注册标识信息;
根据所述多个集群注册标识信息,确定每一所述服务实例注册请求对应的注册集群;
对每一所述服务实例注册请求进行分析,确定每一所述服务实例注册请求对应的待注册服务实例,并将每一所述服务实例注册请求对应的待注册服务实例注册到每一所述服务实例注册请求对应的注册集群中。
3.根据权利要求1所述的负载均衡实现方法,其特征在于,所述从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例包括:
对所述预置注册中心数据库进行服务实例遍历查询,获取所述预置注册中心数据库中的多个服务实例;
对所述多个服务实例进行优先级排序,确定对应的服务实例列表;
对预置负载均衡算法进行扫描,确定对应的负载均衡策略;
基于所述负载均衡策略对所述服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
4.根据权利要求3所述的负载均衡实现方法,其特征在于,所述基于所述负载均衡策略对所述服务实例列表中的多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例包括:
对所述多个服务实例进行服务负载数量统计,得到每一所述服务实例对应的服务负载数量;
基于所述每一所述服务实例对应的服务负载数量,通过预置负载等级算法对每一所述服务实例进行负载等级计算,得到每一所述服务实例对应的负载等级;
对每一所述服务实例对应的负载等级进行分析,通过所述负载均衡策略对所述多个服务实例按照优先级顺序进行筛选,得到符合预设条件的目标服务实例。
5.根据权利要求4所述的负载均衡实现方法,其特征在于,所述对所述多个服务实例进行服务负载数量统计,得到每一所述服务实例对应的服务负载数量包括:
对所述多个服务实例进行扫描,确定每一所述服务实例对应的服务实例连接端口信息;
通过所述每一所述服务实例对应的服务实例连接端口信息对所述多个服务实例进行连接数信息分析,得到每一所述服务实例对应的服务负载数量。
6.根据权利要求4所述的负载均衡实现方法,其特征在于,所述基于所述每一所述服务实例对应的服务负载数量,通过预置负载等级算法对每一所述服务实例进行负载等级计算,得到每一所述服务实例对应的负载等级包括:
获取每一所述服务实例对应的服务实例支持最大连接数信息;
通过所述每一所述服务实例对应的服务实例支持最大连接数信息及服务负载数量进行服务负载率分析,得到每一所述服务实例对应的服务负载率;
根据预置的负载等级划分算法对每一所述服务实例进行负载等价划分,确定每一所述服务实例对应的负载等级。
7.根据权利要求1-6所述的负载均衡实现方法,其特征在于,所述将所述目标服务实例发送到所述终端包括:
对所述目标服务实例进行扫描,确定对应的目标服务实例地址;
通过所述目标服务实例地址从预置数据库中下载所述目标服务实例,并将所述目标服务实例传输至所述终端。
8.一种负载均衡实现装置,其特征在于,所述负载均衡实现装置包括:
第一接收模块,用于接收终端发送的服务实例调用请求,其中,所述服务实例调用请求中携带有集群标识信息;
第一确定模块,用于根据所述集群标识信息,确定与所述服务实例调用请求对应的多个候选集群;
集群分析模块,用于对所述多个候选集群进行集群状态分析,得到每一候选集群对应的集群状态,并通过所述每一候选集群对应的集群状态,确定与所述服务实例调用请求对应的目标集群;
列表获取模块,用于从预置注册中心数据库中获取与所述目标集群对应的服务实例列表,通过预置负载均衡算法从所述服务实例列表中确定目标服务实例;
实例发送模块,用于将所述目标服务实例发送到所述终端。
9.一种负载均衡实现设备,其特征在于,所述负载均衡实现设备包括:存储器和至少一个处理器,所述存储器中存储有指令;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述负载均衡实现设备执行如权利要求1-7中任意一项所述的负载均衡实现方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,其特征在于,所述指令被处理器执行时实现如权利要求1-7中任一项所述负载均衡实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111225160.2A CN113934512A (zh) | 2021-10-21 | 2021-10-21 | 负载均衡实现方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111225160.2A CN113934512A (zh) | 2021-10-21 | 2021-10-21 | 负载均衡实现方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113934512A true CN113934512A (zh) | 2022-01-14 |
Family
ID=79280675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111225160.2A Pending CN113934512A (zh) | 2021-10-21 | 2021-10-21 | 负载均衡实现方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113934512A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114884886A (zh) * | 2022-05-26 | 2022-08-09 | 中国联合网络通信集团有限公司 | 微服务负载均衡方法、装置、设备、系统及存储介质 |
CN114979157A (zh) * | 2022-05-17 | 2022-08-30 | 南昌智能新能源汽车研究院 | 基于some/ip协议的负载均衡方法、系统、存储介质及计算机 |
CN116366727A (zh) * | 2023-03-24 | 2023-06-30 | 国网江苏省电力有限公司信息通信分公司 | 业务请求与服务质量驱动的边缘资源调度方法及应用 |
CN116366727B (zh) * | 2023-03-24 | 2024-11-12 | 国网江苏省电力有限公司信息通信分公司 | 业务请求与服务质量驱动的边缘资源调度方法及系统 |
-
2021
- 2021-10-21 CN CN202111225160.2A patent/CN113934512A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979157A (zh) * | 2022-05-17 | 2022-08-30 | 南昌智能新能源汽车研究院 | 基于some/ip协议的负载均衡方法、系统、存储介质及计算机 |
CN114979157B (zh) * | 2022-05-17 | 2024-03-22 | 南昌智能新能源汽车研究院 | 基于some/ip协议的负载均衡方法、系统、存储介质及计算机 |
CN114884886A (zh) * | 2022-05-26 | 2022-08-09 | 中国联合网络通信集团有限公司 | 微服务负载均衡方法、装置、设备、系统及存储介质 |
CN116366727A (zh) * | 2023-03-24 | 2023-06-30 | 国网江苏省电力有限公司信息通信分公司 | 业务请求与服务质量驱动的边缘资源调度方法及应用 |
CN116366727B (zh) * | 2023-03-24 | 2024-11-12 | 国网江苏省电力有限公司信息通信分公司 | 业务请求与服务质量驱动的边缘资源调度方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108776934B (zh) | 分布式数据计算方法、装置、计算机设备及可读存储介质 | |
KR101614052B1 (ko) | 클라우드 컴퓨팅 시스템들을 구성하는 시스템 및 방법 | |
WO2020253079A1 (zh) | 基于Jmeter的分布式性能测试方法、装置、设备及存储介质 | |
Flores et al. | Evidence-aware mobile computational offloading | |
CN108255707B (zh) | 测试用例的开发角色创建方法、装置、设备及存储介质 | |
JP2018185808A (ja) | ブロックチェーンに基づくスマート契約をテストする装置及び方法 | |
CN107729564A (zh) | 一种分布式的聚焦网络爬虫网页爬取方法及系统 | |
CN108256118B (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
US11106439B2 (en) | Offload server and offload program | |
CN113934512A (zh) | 负载均衡实现方法、装置、设备及存储介质 | |
CN111444019A (zh) | 云端协同的深度学习模型分布式训练方法及系统 | |
US20210224102A1 (en) | Characterizing operation of software applications having large number of components | |
CN116700920A (zh) | 云原生混合部署集群资源调度方法及装置 | |
CN113867600A (zh) | 处理流式数据的开发方法、装置和计算机设备 | |
JP4343983B2 (ja) | ネットワーク管理装置およびネットワークの管理方法 | |
CN113419818B (zh) | 基础组件部署方法、装置、服务器及存储介质 | |
CN111381831B (zh) | 应用部署方法和服务器 | |
CN115185611A (zh) | 服务网格代理配置动态加载的方法、装置、系统及设备 | |
CN111427634A (zh) | 一种原子服务调度的方法及装置 | |
US20220182290A1 (en) | Status sharing in a resilience framework | |
CN110035126A (zh) | 一种文件处理方法、装置、计算设备及存储介质 | |
CN115952098A (zh) | 一种性能测试调优方案推荐方法及系统 | |
CN111294250B (zh) | 压力测试方法、装置和系统 | |
CN110247802B (zh) | 针对云服务单机环境的资源配置方法及装置 | |
CN114168439A (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 |