本发明涉及通信领域中的信息处理技术,尤其涉及一种负载均衡方法、装置、设备和计算机可读存储介质。
背景技术:
随着电子产品的推广与发展,电子产品功能越来越多、性能越来越强、体验越来越丰富,给人们的生活带来很多便利。同时,智能终端也越来越普及;而且,在智能终端联网之后,可以使用其实现较多功能。当然,目前对于用户来说,使用终端进行娱乐的一种方式是使用终端上的游戏应用程序进行游戏。
在现有技术方案中,用户使用游戏应用程序进行具有互动的游戏时,游戏服务器是在选择给进行游戏的终端提供服务的同步服务器时是随机分配的;这样会存在一些同步服务器的负载已经很大了,但是游戏服务器仍然会分配其给终端提供服务的问题,导致终端的操作会产生延时,交互双方的操作不能实时进行。
技术实现要素:
为解决上述技术问题,本发明实施例期望提供一种负载均衡方法、装置、设备和计算机可读存储介质,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
本发明实施例的技术方案是这样实现的:
第一方面,提供一种负载均衡方法,所述方法包括:
接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载;其中,所述负载是接收到用于开启具有对战功能应用的启动请求后获取的;
比较第一同步服务器的负载与第一预设比例阈值的关系;
基于比较结果对所述第一同步服务器进行分组,得到分组结果;
基于所述分组结果,从所述同步服务器集群中确定至少一个第一同步服务器作为目标服务器;
发送服务指令至所述目标服务器;其中,所述服务指令用于指示所述目标服务器为第一终端提供服务。
第二方面,提供一种负载均衡方法,所述方法包括:
接收第一终端发送的用于开启具有对战功能应用的启动请求;
响应所述启动请求,获取同步服务器集群中第一同步服务器当前运行信息;其中,所述当前运行信息包括:当前客户端数量、当前收发包流量和当前中央处理器cpu使用率;
计算所述当前客户端数量与客户端总数量的比例关系,得到第一比例;其中,所述客户端总数量为所述第一同步服务器能够提供服务的客户端的总数量;
计算所述当前收发包流量与总收发包流量的比例关系,得到第二比例;其中,所述总收发包流量为所述第一同步服务器能够提供的总收发包流量;
发送所述第一比例、第二比例和当前cpu使用率至客户端服务器;其中,所述第一比例、第二比例和当前cpu使用率是所述客户端服务器用于确定目标服务器的;所述目标服务器是所述同步服务器集群中的至少一个第一同步服务器。
第三方面,提供一种负载均衡装置,所述装置包括:第一接收单元、比较单元、第一处理单元和第一发送单元,其中:
所述第一接收单元,用于接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载;其中,所述负载是接收到用于开启具有对战功能应用的启动请求后获取的;
所述比较单元,用于比较第一同步服务器的负载与第一预设比例阈值的关系;
所述第一处理单元,用于基于比较结果对所述第一同步服务器进行分组,得到分组结果;
所述第一处理单元,还用于基于所述分组结果,从所述同步服务器集群中确定至少一个第一同步服务器作为目标服务器;
所述第一发送单元,用于发送服务指令至所述目标服务器;其中,所述服务指令用于指示所述目标服务器为第一终端提供服务。
第四方面,提供一种负载均衡装置,所述装置包括:第二接收单元、第二获取单元、计算单元和第二发送单元,其中:
所述第二接收单元,用于接收第一终端发送的用于开启具有对战功能应用的启动请求;
所述第二获取单元,用于响应所述启动请求,获取同步服务器集群中第一同步服务器当前运行信息;其中,所述当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率;
所述计算单元,用于计算所述当前客户端数量与客户端总数量的比例关系,得到第一比例;其中,所述客户端总数量为所述第一同步服务器能够提供服务的客户端的总数量;
所述计算单元,还用于计算所述当前收发包流量与总收发包流量的比例关系,得到第二比例;其中,所述总收发包流量为所述第一同步服务器能够提供的总收发包流量;
所述第二发送单元,用于发送所述第一比例、第二比例和当前cpu使用率至客户端服务器;其中,所述第一比例、第二比例和当前cpu使用率是所述客户端服务器用于确定目标服务器的;所述目标服务器是所述同步服务器集群中的至少一个第一同步服务器。
第五方面,提供一种客户端服务器,所述服务器包括:第一通信接口和第一处理器,其中:
所述第一处理器,用于通过所述第一通信接口接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载;其中,所述负载是接收到用于开启具有对战功能应用的启动请求后获取的;比较第一同步服务器的负载与第一预设比例阈值的关系;基于比较结果对所述第一同步服务器进行分组,得到分组结果;基于所述分组结果,从所述同步服务器集群中确定至少一个第一同步服务器作为目标服务器;通过所述第一通信接口发送服务指令至所述目标服务器;其中,所述服务指令用于指示所述目标服务器为第一终端提供服务。
第六方面,提供一种同步服务器,所述服务器包括:第二通信接口和第二处理器,其中:
所述第二处理器,用于通过所述第二通信接口接收第一终端发送的用于开启具有对战功能应用的启动请求;响应所述启动请求,获取同步服务器集群中第一同步服务器当前运行信息;其中,所述当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率;计算所述当前客户端数量与客户端总数量的比例关系,得到第一比例;其中,所述客户端总数量为所述第一同步服务器能够提供服务的客户端的总数量;计算所述当前收发包流量与总收发包流量的比例关系,得到第二比例;其中,所述总收发包流量为所述第一同步服务器能够提供的总收发包流量;并通过所述第二通信接口发送所述第一比例、第二比例和当前cpu使用率至客户端服务器;其中,所述第一比例、第二比例和当前cpu使用率是所述客户端服务器用于确定目标服务器的;所述目标服务器是所述同步服务器集群中的至少一个第一同步服务器。
第七方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有一个或多个计算机程序,该计算机程序被处理器执行时实现第一方面或第二方面所述方法的步骤。
本发明的实施例所提供的负载均衡方法、装置、设备和计算机可读存储介质,接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载,比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个第一同步服务器为目标服务器,并发送服务指令至目标服务器,其中服务指令用于指示目标服务器为第一终端提供服务;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
附图说明
图1为本发明的实施例提供的一种负载均衡方法的流程示意图;
图2为本发明的实施例提供的另一种负载均衡方法的流程示意图;
图3为本发明的实施例提供的又一种负载均衡方法的流程示意图;
图4为本发明的另一实施例提供的一种负载均衡方法的流程示意图;
图5为本发明的另一实施例提供的另一种负载均衡方法的流程示意图;
图6为本发明的实施例提供的一种同步服务器和游戏服务器的交互过程示意图;
图7为本发明的实施例提供的一种负载均衡方法在实际应用场景中的效果示意图;
图8为本发明的实施例提供的一种负载均衡装置的结构示意图;
图9为本发明的实施例提供的另一种负载均衡装置的结构示意图;
图10为本发明的实施例提供的一种客户端服务器的结构示意图;
图11为本发明的实施例提供的一种同步服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明的实施例提供一种负载均衡方法,参照图1所示,该方法包括以下步骤:
步骤101、接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载。
其中,负载是接收到用于开启具有对战功能应用的启动请求后获取的。
在本发明的其它实施例中,步骤101接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载可以是由客户端服务器来实现的;客户端服务器可以是在用户使用终端进行互动游戏时,在后台给终端提供各种服务的服务器;该客户端服务器可以是一种提供游戏功能的游戏服务器。客户端服务在接收到第一同步服务器自身的负载后,可以了解第一同步服务器当前的运行情况。
步骤102、比较第一同步服务器的负载与第一预设比例阈值的关系。
其中,步骤102比较第一同步服务器的负载与第一预设比例阈值的关系可以是由客户端服务器来实现的;客户端服务器在接收到第一同步服务器发送的自身的负载后,可以通过比较第一同步服务器的负载与第一预设比例阈值之间的关系来判断第一同步服务器当前的负载情况。第一预设比例阈值是根据第一同步服务器在实际应用场景中的运行结果,在保证能够均衡负载的基础上设置的。
步骤103、基于比较结果对第一同步服务器进行分组,得到分组结果。
其中,步骤103基于比较结果对第一同步服务器进行分组,得到分组结果可以是由客户端服务器来实现的;客户端服务器对第一同步服务器进行分组的时候可以是根据第一同步服务器当前的负载来实施的。
步骤104、基于分组结果,从同步服务器集群中确定至少一个第一同步服务器作为目标服务器。
其中,步骤104基于分组结果,从同步服务器集群中确定至少一个第一同步服务器作为目标服务器可以是由客户端服务器来实现的;目标服务器可以是为第一终端提供服务的服务器,第一同步服务器的分组结果是根据每一个第一同步服务器当前的负载得到的;因此,可以根据最终得到的分组结果来确定目标服务器。
步骤105、发送服务指令至目标服务器。
其中,服务指令用于指示目标服务器为第一终端提供服务。
在本发明的其它实施例中,步骤105发送服务指令至目标服务器可以是由客户端服务器来实现的;目标服务器接收到客户端服务器发送的服务指令后,可以在后台给第一终端提供服务;在一种可行的实现方案中,目标服务器可以给开启互动游戏应用程序的第一终端提供服务。
本发明的实施例所提供的负载均衡方法,接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载,比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个第一同步服务器为目标服务器,并发送服务指令至目标服务器;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例提供一种负载均衡方法,该方法包括以下步骤:
步骤201、接收第一终端发送的用于开启具有对战功能应用的启动请求。
其中,步骤201接收第一终端发送的用于开启具有对战功能应用的启动请求可以是由同步服务器来实现的。具有对战功能的应用可以是需要至少两个终端联机来实施的应用程序,例如可以是需要至少两个终端联机进行的游戏应用程序。启动请求可以是用户点击打开第一终端上的游戏应用程序后,第一终端需要同步服务器提供服务时发送给同步服务器的。
步骤202、响应启动请求,获取同步服务器集群中第一同步服务器当前运行信息。
其中,当前运行信息包括:当前客户端数量、当前收发包流量和当前中央处理器(centralprocessingunit,cpu)使用率。
在本发明的其它实施例中,步骤202响应启动请求,获取同步服务器集群中第一同步服务器当前运行信息可以是由同步服务器来实现的;同步服务器是以群组的方式来部署和给终端提供服务的,即同步服务器是以集群的方式存在的。当前运行信息可以表示第一同步服务器当前的负载。
步骤203、计算当前客户端数量与客户端总数量的比例关系,得到第一比例。
其中,客户端总数量为第一同步服务器能够提供服务的客户端的总数量。
在本发明的其它实施例中,步骤203计算当前客户端数量与客户端总数量的比例关系,得到第一比例可以是由同步服务器来实现的。
步骤204、计算当前收发包流量与总收发包流量的比例关系,得到第二比例。
其中,总收发包流量为第一同步服务器能够提供的总收发包流量。
在本发明的其它实施例中,步骤204计算当前收发包流量与总收发包流量的比例关系,得到第二比例可以是由同步服务器来实现的。
步骤205、发送第一比例、第二比例和当前cpu使用率至客户端服务器。
其中,第一比例、第二比例和当前cpu使用率是客户端服务器用于确定目标服务器的;目标服务器是同步服务器集群中的至少一个第一同步服务器。
在本发明的其它实施例中,步骤205发送第一比例、第二比例和当前cpu使用率至客户端服务器可以是由同步服务器来实现的。
本发明的实施例所提供的负载均衡方法,接收第一终端发送的用于开启具有对战功能应用的启动请求,获取同步服务器集群中第一同步服务器当前运行信息,当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率,然后计算当前客户端数量与客户端总数量的第一比例,同时计算当前收发包流量与总收发包流量的第二比例,并发送第一比例、第二比例和当前cpu使用率至客户端服务器;目标服务器是同步服务器集群中的至少一个服务器;这样,客户端服务器可以根据接收到自身的第一比例、第二比例和当前cpu使用率确定目标服务器,因此客户端服务器在给终端分配同步服务器的时候,可以根据每一个同步服务器当前的负载来进行,充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例提供一种负载均衡方法,参照图2所示,该方法包括以下步骤:
步骤301、同步服务器接收第一终端发送的用于开启具有对战功能应用的启动请求。
步骤302、同步服务器响应启动请求,获取同步服务器集群中第一同步服务器当前运行信息。
其中,当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率。
步骤303、同步服务器计算当前客户端数量与客户端总数量的比例关系,得到第一比例。
其中,客户端总数量为第一同步服务器能够提供服务的客户端的总数量。
在本发明的一种实现方式中,第一同步服务器当前客户端数量可以是第一同步服务器当前正在使用的房间数量,第一同步服务器的客户端总数量可以是第一同步服务器中包括的所有的房间数量;计算当前客户端数量与客户端总数量的比例关系可以是通过计算当前正在使用的房间数量在所有房间数量中所占的比例来实现的。
步骤304、同步服务器计算当前收发包流量与总收发包流量的比例关系,得到第二比例。
其中,总收发包流量为第一同步服务器能够提供的总收发包流量。
步骤305、同步服务器发送第一比例、第二比例和当前cpu使用率至客户端服务器。
其中,获取第一同步服务器当前运行信息、计算第一比例和第二比例可以是一旦第一同步服务器进入工作状态时就实施的;当然,可以是在预设时间周期到来时获取第一同步服务器当前运行信息、计算第一比例和第二比例的。一种可行的实时方式是,只要第一同步服务器获取到自身的当前cpu使用率、第一比例和第二比例后,就可以即时将得到的这些信息发送给客户端服务器。
步骤306、客户端服务器接收同步服务器集群中的多个第一同步服务器各自发送的自身的第一比例、第二比例和当前cpu的使用率。
步骤307、客户端服务器比较第一同步服务器的第一比例、第二比例和当前中央处理器cpu的使用率与第一预设比例阈值的关系。
其中,在一种可行的实现方式中,第一预设比例阈值可以是能够保证第一同步服务器正常流畅运行的第一同步服务器的负载值,例如第一预设比例阈值可以是80%。
步骤308、若第一比例、第二比例和当前cpu的使用率中至少一个大于第一预设比例阈值,客户端服务器将第一同步服务器划分为第一组。
其中,如果第一同步服务器的第一比例、第二比例和当前cpu的使用率中有一个数值大于第一预设比例阈值,说明当前该第一同步服务器的负载过大,已不能保证其上业务的正常运行了;此时,可以确定该第一同步服务器为负载较高的同步服务器。
步骤309、若第一比例、第二比例和当前cpu的使用率均小于或者等于第一预设比例阈值,客户端服务器将第一同步服务器划分为第二组。
其中,第一组中的同步服务器的负载高于第二组。
如果第一同步服务器的第一比例、第二比例和当前cpu的使用率的值均小于或等于第一预设比例阈值,说明当前该第一同步服务器的负载不是很大,仍然可以保证其上业务的正常运行;此时,可以确定该第一同步服务器为负载较低的同步服务器。
需要说明的是,步骤309之后可以选择执行步骤310或者步骤311-312;如果直接从第一组对应的第一同步服务器中选择目标服务器,那么如图2所示可以执行步骤310;如果需要根据第一同步服务器的时间权重从第一组对应的第一同步服务器中选择目标服务器,那么如图3所示可以执行步骤311-312。
步骤310、客户端服务器从第一组对应的第一同步服务器中,选择任一第一同步服务器作为目标服务器。
步骤311、客户端服务器获取第一同步服务器的时间权重。
其中,第一同步服务器的时间权重可以是根据第一同步服务器提供服务的时间来确定的。
步骤312、客户端服务器基于时间权重,从第一组对应的第一同步服务器中确定目标服务器。
其中,步骤310和步骤312之后都需要执行步骤313。
步骤313、客户端服务器发送服务指令至目标服务器。
其中,服务指令用于指示目标服务器为第一终端提供服务。
需要说明的是,本实施例中与其他实施例中相同步骤或相关概念的解释可以参照其他实施例中的描述,此处不再赘述。
本发明的实施例所提供的负载均衡方法,接收到同步服务器集群中的多个第一同步服务器各自发送的自身的负载后,比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个第一同步服务器为目标服务器,并发送服务指令至目标服务器;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例提供一种负载均衡方法,参照图4所示,该方法包括以下步骤:
步骤401、同步服务器接收第一终端发送的用于开启具有对战功能应用的启动请求。
步骤402、同步服务器响应启动请求,获取同步服务器集群中第一同步服务器当前运行信息。
其中,当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率。
步骤403、同步服务器计算当前客户端数量与客户端总数量的比例关系,得到第一比例。
其中,客户端总数量为第一同步服务器能够提供服务的客户端的总数量。
步骤404、同步服务器计算当前收发包流量与总收发包流量的比例关系,得到第二比例。
其中,总收发包流量为第一同步服务器能够提供的总收发包流量。
步骤405、同步服务器发送第一比例、第二比例和当前cpu使用率至客户端服务器。
步骤406、客户端服务器接收同步服务器集群中的多个第一同步服务器各自发送的自身的第一比例、第二比例和当前cpu的使用率。
步骤407、客户端服务器比较第一同步服务器的第一比例、第二比例和当前中央处理器cpu的使用率与所述预设比例阈值的关系。
步骤408、若第一比例、第二比例和当前cpu的使用率中至少一个大于预设比例阈值,客户端服务器将第一同步服务器划分为第一组。
步骤409、若第一比例、第二比例和当前cpu的使用率均小于或者等于预设比例阈值,客户端服务器将第一同步服务器划分为第二组。
其中,第一组中的同步服务器的负载高于第二组。
步骤410、客户端服务器确定每一个第一同步服务器提供服务的服务时间。
其中,第一同步服务器为第一终端提供服务的服务时间可以指的是第一同步服务器为第三终端提供服务的结束时间。第三终端可以是第一同步服务器在当前时刻之前的前一次提供过服务的终端。
步骤411、客户端服务器基于服务时间,获取每一个第一同步服务器的时间权重。
其中,客户端服务器可以根据每一个第一同步服务器上一次为第三终端提供服务的结束时间到当前时间之间的时间间隔的大小,来获取第一同步服务器的时间权重;一种可行的实施方式是,可以按照从大到小的顺序设置第一同步服务器的时间权重;时间间隔较大的同步服务器的时间权重较大。
步骤412、客户端服务器基于时间权重的大小,按照预设排序规则将第一组对应的第一同步服务器进行排序。
其中,如果时间权重是按照从大到小的顺序设置得到的,那么预设排序规则可以是从大小到小的顺序。也就是说,可以按照时间权重的从大到小的顺序将第一组对应的第一同步服务器排序。
步骤413、客户端服务器按照排列顺序,依次从第一组对应的第一同步服务器中确定目标服务器。
其中,客户端服务器在确定目标服务器时,可以按照排列顺序依次从第一组对应的第一同步服务器中确定目标服务器。即可以先选择权重最大的第一同步服务器为目标服务器,然后依次类推。
步骤414、客户端服务器发送服务指令至目标服务器。
其中,服务指令用于指示目标服务器为第一终端提供服务。
基于前述实施例,参照图5所示,在本发明的其他实施例中,该方法还包括以下步骤:
步骤415、客户端服务器将同步服务器集群中未发送自身的负载的同步服务器确定为第二同步服务器。
步骤416、从确定第二同步服务器起,客户端服务器判断在预设时间内是否接收到第二同步服务器的负载。
其中,预设时间可以是根据之前同步服务器为终端提供服务的场景预先设定的一个时间段;例如,预设时间可以是一分钟。
步骤417、若未接收到第二同步服务器的负载,客户端服务器停止发送服务指令至第二同步服务器。
其中,如果在预设时间内,客户端服务器没有接收到第二同步服务器发送的自身的负载,客户端服务器认为该第二同步服务器出现了故障(已失效);此时,客户端服务器就不会再发送服务指令给该第二同步服务器。
步骤418、若重新接收到第二同步服务器发送的自身的负载,客户端服务器执行比较第一同步服务器的负载与第一预设比例阈值的关系的步骤。
其中,如果后续客户端服务器又重新接收到第二同步服务器发送的自身的负载,那么客户端服务器认为该第二同步服务器恢复正常,此时继续执行分别比较该同步服务器的负载与第一预设比例阈值的关系的步骤。
以客户端服务器为游戏服务器、第一预设比例阈值为80%为例,在本发明的一种可行的实现方式中,如图6中所示同步服务器在获取到自身的负载后,可以主动将获取到的自身的负载发送给游戏服务器;游戏服务器在接收到同步服务器的自身负载后,可以根据同步服务器自身的负载采用预设的分配算法将同步服务器分组;如此,最终可以将同步服务器划分为重分配池、轻分配池和无效池三种。其中,重分配池中的同步服务器的负载大于80%,轻分配池中的同步服务器的负载小于或等于80%,无效池中的同步服务器以失效。同时,游戏服务器可以根据同步服务器自身的负载情况给同步服务器分配服务任务。
需要说明的是,本实施例中与其他实施例中相同步骤或相关概念的解释可以参照其他实施例中的描述,此处不再赘述。
本发明的实施例所提供的负载均衡方法,接收到同步服务器集群中的多个第一同步服务器各自发送的自身的负载后,比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个第一同步服务器为目标服务器,并发送服务指令至目标服务器;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例还提供一种负载均衡方法,该方法包括以下步骤:
步骤a、客户端服务器获取第二组同步服务器中自身负载大于第二预设比例阈值的第三同步服务器。
其中,第二预设比例阈值大于第一预设比例阈值。该第二预设比例阈值是能够表明当前同步服务器已经接近其能够承受的负载的一个极限数值;例如,第二预设比例阈值可以是95%。
步骤b、客户端服务器确定第三同步服务器当前对应的第二终端。
其中,第二终端为第三同步服务器当前为其提供服务的终端。
步骤c、客户端服务器发送服务切换指令至第一组第一同步服务器中的任一第一同步服务器。
其中,服务切换指令用于指示第一组同步服务器中的任一同步服务器为第二终端提供服务。
在本发明的其它实施例中,当第二组对应的第一同步服务器中,第一同步服务器的负载大于95%时,客户端服务器确定该第一同步服务器已不能正常的给终端提供服务;此时,就需要指示第一组对应的第一同步服务器为该第三终端提供服务,即发送服务切换指令至第一组对应的任一第一同步服务器。
基于前述实施例,以包括两个第一终端:终端1和终端2,终端1和终端2的用户正在使用对应终端进行飞机大战的游戏为例进行说明:游戏服务器在给终端1和终端2分配同步服务器的时候是采用本发明实施例中提供的负载均衡方法来进行的,即为终端1和终端2提供服务的同步服务器的负载都是小于80%的。如图7所示,当终端1的玩家使用技能后可以在终端1的游戏界面上呈现图7a中3的效果,与此同时如图7b中所示终端2的游戏界面上也会显示出4的效果;当终端2的玩家使用技能后,如图7b中所示终端2的游戏界面上可以呈现5的效果,同时7a中所示终端1的游戏界面上也会显示出6的效果。说明终端1的玩家和终端2的玩家不论哪个玩家施加技能后,对方的终端的游戏界面上可以在对方施加技能的同时显示相应的技能效果。
基于前述实施例,本发明的实施例提供一种负载均衡装置6,该装置可以应用于图1~5对应的实施例提供的一种负载均衡方法中,参照图8所示,该装置包括:第一接收单元61、比较单元62、第一处理单元63和第一发送单元64,其中:
第一接收单元61,用于接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载;
其中,负载是接收到用于开启具有对战功能应用的启动请求后获取的。
比较单元62,用于比较第一同步服务器的负载与第一预设比例阈值的关系;
第一处理单元63,用于基于比较结果对第一同步服务器进行分组,得到分组结果;
第一处理单元63,还用于基于所述分组结果,从同步服务器集群中确定至少一个第一同步服务器作为目标服务器;
第一发送单元64,用于发送服务指令至目标服务器。
其中,服务指令用于指示目标服务器为第一终端提供服务。
本发明的实施例所提供的负载均衡装置,同步服务器集群中的同步服务器获取当前自身的负载并发送至客户端服务器,客户端服务器接收到同步服务器集群中的多个第一同步服务器各自发送的自身的负载后,比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个第一同步服务器为目标服务器,并发送服务指令至目标服务器;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
进一步,比较单元,具体用于分别比较第一同步服务器的第一比例、第二比例和当前cpu的使用率与预设比例阈值的关系。
其中,负载包括:第一比例、第二比例和当前cpu的使用率;第一比例为当前客户端数量占客户端总数量的比例,第二比例为当前收发包流量占总收发包流量的比例。
处理单元,具体用于若第一比例、第二比例和当前cpu的使用率中至少一个大于预设比例阈值,将第一同步服务器划分为第一组。
处理单元,具体还用于若第一比例、第二比例和当前cpu的使用率均小于或者等于预设比例阈值,将第一同步服务器划分为第二组。
其中,第一组中的同步服务器的负载高于第二组。
第一处理单元,还用于从第一组对应的第一同步服务器中,选择任一第一同步服务器作为目标服务器。
进一步,该装置还包括:第一获取单元,其中:
第一获取单元,用于获取第一同步服务器的时间权重。
第一处理单元,还用于基于时间权重,从第一组对应的第一同步服务器中确定目标服务器。
在本发明的其他实施例中,第一获取单元具体用于执行以下步骤:
确定每一个第一同步服务器为第一终端提供服务的服务时间;
基于服务时间,获取每一个第一同步服务器的时间权重。
在本发明的其他实施例中,第一处理单元具体用于执行以下步骤:
基于时间权重的大小,按照预设排序规则将第一组对应的第一同步服务器进行排序;
按照排列顺序,依次从第一组对应的第一同步服务器中确定目标服务器。
在本发明的其他实施例中,该装置还包括:第二处理单元和判断单元,其中:
第二处理单元,用于将所述同步服务器集群中未发送自身的负载的同步服务器确定为第二同步服务器;
判断单元,用于从确定第二同步服务器起,判断在预设时间内是否接收到第二同步服务器的负载;
第二处理单元,还用于若未接收到第二同步服务器的负载,停止发送服务指令至第二同步服务器;
第二处理单元,还用于若接收到第二同步服务器发送的自身的负载,执行比较第一同步服务器的负载与第一预设比例阈值的关系的步骤。
在本发明的其他实施例中,第二获取单元,还用于获取第二组同步服务器中自身负载大于第二预设比例阈值的第三同步服务器。
第一发送单元,还用于发送服务切换指令至第一组第一同步服务器中的任一第一同步服务器。
其中,服务切换指令用于指示第一组同步服务器中的任一同步服务器为第二终端提供服务。
需要说明的是,本实施例中各个单元和模块之间的交互过程,可以参照图1~5对应的实施例提供的一种负载均衡方法中的交互过程,此处不再赘述。
本发明的实施例所提供的负载均衡装置,同步服务器集群中的同步服务器获取当前自身的负载并发送至客户端服务器,客户端服务器接收到同步服务器集群中的多个第一同步服务器各自发送的自身的负载后,比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个第一同步服务器为目标服务器,并发送服务指令至目标服务器;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例提供一种负载均衡装置7,该装置可以应用于图2~5对应的实施例提供的一种负载均衡方法中,参照图9所示,该装置包括:第二接收单元71、第二获取单元72、计算单元73和第二发送单元74,其中:
第二接收单元71,用于接收第一终端发送的用于开启具有对战功能应用的启动请求;
第二获取单元72,用于响应启动请求,获取同步服务器集群中第一同步服务器当前运行信息;
其中,当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率;
计算单元73,用于计算当前客户端数量与客户端总数量的比例关系,得到第一比例;
其中,客户端总数量为第一同步服务器能够提供服务的客户端的总数量;
计算单元73,还用于计算当前收发包流量与总收发包流量的比例关系,得到第二比例;
其中,总收发包流量为第一同步服务器能够提供的总收发包流量;
第二发送单元74,用于发送第一比例、第二比例和当前cpu使用率至客户端服务器。
其中,第一比例、第二比例和当前cpu使用率是客户端服务器用于确定目标服务器的;目标服务器是同步服务器集群中的至少一个第一同步服务器。
需要说明的是,本实施例中各个单元和模块之间的交互过程,可以参照图1~5对应的实施例提供的一种负载均衡方法中的交互过程,此处不再赘述。
本发明的实施例所提供的负载均衡方法,接收第一终端发送的用于开启具有对战功能应用的启动请求,获取同步服务器集群中第一同步服务器当前运行信息,当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率,然后计算当前客户端数量与客户端总数量的第一比例,同时计算当前收发包流量与总收发包流量的第二比例,并发送第一比例、第二比例和当前cpu使用率至客户端服务器;目标服务器是同步服务器集群中的至少一个服务器;这样,客户端服务器可以根据接收到自身的第一比例、第二比例和当前cpu使用率确定目标服务器,因此客户端服务器在给终端分配同步服务器的时候,可以根据每一个同步服务器当前的负载来进行,充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例提供一种客户端服务器8,该服务器可以应用于图1~5对应的实施例提供的负载均衡方法中,参照图10所示,该客户端服务器包括:第一通信接口81、第一处理器82和第一存储器83,第一处理器82存在于处理组件84中,第一存储器83中存储有实现第一处理器的执行步骤的程序代码,其中:
第一通信接口81,用于接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载;
其中,负载是接收到用于开启具有对战功能应用的启动请求后获取的;
第一处理器82,用于比较第一同步服务器的负载与第一预设比例阈值的关系,基于比较结果对第一同步服务器进行分组,得到分组结果,基于分组结果,从同步服务器集群中确定至少一个第一同步服务器作为目标服务器;
第一通信接口81,还用于发送服务指令至目标服务器。
其中,服务指令用于指示目标服务器为第一终端提供服务。
在本发明的其他实施例中,第一处理器还用于执行以下步骤:
分别比较第一同步服务器的第一比例、第二比例和当前中央处理器cpu的使用率与预设比例阈值的关系;
其中,负载包括:第一比例、第二比例和当前cpu的使用率;第一比例为当前客户端数量占客户端总数量的比例,第二比例为当前收发包流量占总收发包流量的比例;
若第一比例、第二比例和当前cpu的使用率中至少一个大于预设比例阈值,将第一同步服务器划分为第一组;
若第一比例、第二比例和当前cpu的使用率均小于或者等于预设比例阈值,将第一同步服务器划分为第二组;
其中,第一组中的同步服务器的负载高于第二组。
在本发明的其他实施例中,第一处理器还用于从第一组对应的第一同步服务器中,选择任一第一同步服务器作为目标服务器。
在本发明的其他实施例中,第一处理器还用于执行以下步骤:
获取第一同步服务器的时间权重;
基于时间权重,从第一组对应的第一同步服务器中确定目标服务器。
在本发明的其他实施例中,第一处理器具体用于执行以下步骤:
确定每一个第一同步服务器为第一终端提供服务的服务时间;
基于服务时间,获取每一个第一同步服务器的时间权重;
基于时间权重的大小,按照预设排序规则将第一组对应的第一同步服务器进行排序;
按照排列顺序,依次从第一组对应的第一同步服务器中确定目标服务器。
在本发明的其他实施例中,第一处理器还用于执行以下步骤:
将同步服务器集群中未发送自身的负载的同步服务器确定为第二同步服务器;
从确定第二同步服务器起,判断在预设时间内是否接收到第二同步服务器的负载;
若未接收到第二同步服务器的负载,停止发送服务指令至第二同步服务器;
若重新接收到第二同步服务器发送的自身的负载,执行分别比较第一同步服务器的负载与第一预设比例阈值的关系的步骤。
在本发明的其他实施例中,第一处理器还用于执行以下步骤:
获取第二组同步服务器中自身负载大于第二预设比例阈值的第三同步服务器;
确定第三同步服务器当前对应的第二终端。
第一通信接口,还用于发送服务切换指令至第一组第一同步服务器中的任一第一同步服务器。
其中,服务切换指令用于指示第一组同步服务器中的任一同步服务器为第二终端提供服务。
需要说明的是,本实施例中各个器件之间的交互过程,可以参照图1~5对应的实施例提供的负载均衡方法中的交互过程,此处不再赘述。
本发明的实施例所提供的客户端服务器,客户端服务器接收同步服务器集群中的多个第一同步服务器各自发送的自身的负载,分别比较第一同步服务器的负载与第一预设比例阈值的关系,并基于比较结果对第一同步服务器进行分组,得到分组结果,然后基于分组结果,从同步服务器集群中确定至少一个服务器为目标服务器,并发送服务指令至目标服务器;这样,客户端服务器在给终端分配同步服务器的时候,是根据每一个同步服务器当前的负载来进行的,即充分考虑了同步服务器当前的负载情况,解决了现有技术中存在的方服务器的负载过大时仍然需要给终端提供服务的问题,降低了终端的操作的时延,保证交互双方的操作可以实时进行。
基于前述实施例,本发明的实施例提供一种同步服务器9,该同步服务器可以应用于图2~5对应的实施例提供的一种负载均衡方法中,参照图11所示,该同步服务器包括:第二通信接口91、第二处理器92和第二存储器93,第二处理器92存在于处理组件94中,第二存储器93中存储有实现第二处理器的执行步骤的程序代码,其中:
第二通信接口91,用于接收第一终端发送的用于开启具有对战功能应用的启动请求;
第二处理器92,用于响应启动请求,获取同步服务器集群中第一同步服务器当前运行信息;其中,当前运行信息包括:当前客户端数量、当前收发包流量和当前cpu使用率;计算当前客户端数量与客户端总数量的比例关系,得到第一比例;其中,客户端总数量为第一同步服务器能够提供服务的客户端的总数量;计算当前收发包流量与总收发包流量的比例关系,得到第二比例;其中,总收发包流量为第一同步服务器能够提供的总收发包流量;
第二通信接口91,还用于发送第一比例、第二比例和当前cpu使用率至客户端服务器;
其中,第一比例、第二比例和当前cpu使用率是客户端服务器用于确定目标服务器的;目标服务器是同步服务器集群中的至少一个第一同步服务器。
基于前述实施例,本发明的实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有一个或多个计算机程序,该计算机程序被处理器执行时实现图1~5对应的实施例提供的一种负载均衡方法中的步骤。
基于前述实施例,本发明的实施例提供一种负载均衡系统,该系统可以包括:第一终端a、第二终端b、同步服务器c、客户端服务器d和目标服务器e,其中:
同步服务器c为图9或11对应的实施例提供的一种同步服务器,客户端服务器d为图8或10对应的实施例提供的一种客户端服务器,目标服务器e为同步服务器集群中的至少一个服务器。
在实际应用中,所述第一接收单元61、比较单元62、第一处理单元63、第一发送单元64、第一获取单元、第二处理单元、判断单元、第二接收单元71、第二获取单元72、计算单元73和第二发送单元74均可由位于无线数据发送设备中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。