一种消息推送的方法以及服务器的制造方法

文档序号:7814954阅读:240来源:国知局
一种消息推送的方法以及服务器的制造方法
【专利摘要】本发明实施例公开了一种消息推送的方法以及服务器,其中,所述方法包括:检测已接入的客户端的数量;根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接;通过所述所需运行的虚拟机将推送消息推送到所述客户端。采用本发明,可以在推送消息时,节约系统资源。
【专利说明】一种消息推送的方法以及服务器

【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种消息推送的方法以及服务器。

【背景技术】
[0002]目前的实时消息推送系统已广泛应用于互联网应用,如广告推送。在目前的实时消息推送系统中使用服务器推送的功能时,需要维持大量的长连接,为了可以维持大量的长连接,传统的做法是采用服务器集群,即将服务端应用部署到多台物理服务器上,并结合负载均衡来处理连接请求。但是在负载较轻的情况下,仍然会同时运行多台物理服务器,这必然会导致系统资源的浪费。


【发明内容】

[0003]本发明实施例提供一种消息推送的方法以及服务器,可以在推送消息时,节约系统资源。
[0004]本发明实施例第一方面提供了一种消息推送的方法,包括:
[0005]检测已接入的客户端的数量;
[0006]根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接;
[0007]通过所述所需运行的虚拟机将推送消息推送到所述客户端。
[0008]本发明实施例第二方面提供了一种消息推送服务器,包括:
[0009]检测模块,用于检测已接入的客户端的数量;
[0010]设置模块,用于根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接;
[0011]推送模块,用于通过所述所需运行的虚拟机将推送消息推送到所述客户端。
[0012]本发明实施例中,通过检测已接入的客户端的数量,可以设置出所需运行的虚拟机的数量,并通过所需运行的虚拟机将推送消息推送到客户端,由于所需运行的虚拟机的数量是动态变化的,且虚拟机是在物理服务器上运行的,所以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。

【专利附图】

【附图说明】
[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是本发明实施例提供的一种消息推送的系统的结构示意图;
[0015]图2是本发明实施例提供的一种消息推送的方法的流程示意图;
[0016]图3是本发明实施例提供的另一种消息推送的方法的流程示意图;
[0017]图4是本发明实施例提供的其中一种扩容方法的流程示意图;
[0018]图5是本发明实施例提供的其中一种减容方法的流程示意图;
[0019]图6是本发明实施例提供的一种消息推送服务器的结构示意图;
[0020]图7是本发明实施例提供的一种设置模块的结构示意图;
[0021]图8是本发明实施例提供的一种扩容单元的结构示意图;
[0022]图9是本发明实施例提供的一种减容单元的结构示意图;
[0023]图10是本发明实施例提供的另一种消息推送服务器的结构示意图。

【具体实施方式】
[0024]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025]本发明实施例中所涉及到的虚拟机都可以视为一个Netty服务器,即在每个虚拟机中均部署有使用Netty来做长连接的服务端程序,例如,在创建虚拟机时,将Netty服务器程序注入到虚拟机中运行。创建虚拟机时,可以使用vmware虚拟化技术,当然还可以使用xen、kvm等虚拟化技术,现有的虚拟化技术基本都可以支持创建、启动、停止、删除虚拟机的功能。虚拟机需要在物理服务器中运行,因此,可以将一台物理服务器虚拟化成多台不同的虚拟机,例如,若一台物理服务器可以虚拟化成20台虚拟机,且当前需要使用35台虚拟机,则当前至少需要运行两台物理服务器。本发明实施例中所涉及到的客户端可以包括:智能手机、平板电脑、台式电脑等具有连接网络功能的终端,所述客户端还可以为终端设备中的浏览器应用,该浏览器应用可以为基于Netty的浏览器应用,或者,所述客户端还可以具体为集合群聊、视频直播、频道K歌、应用游戏、在线影视等功能为一体的综合型的娱乐客户端,本发明实施例不作限定。
[0026]请参见图1,是本发明实施例提供的一种消息推送的系统的结构示意图;该系统可以包括中心服务器100,虚拟机200a、虚拟机200b、......、虚拟机200η,虚拟化资源服务器300,均衡服务器400以及客户端500a、客户端500b、……、客户端500η,其中,每个虚拟机和所述虚拟化资源服务器300均可以通过网络连接到所述中心服务器100,每个虚拟机还可以通过网络连接到所述均衡服务器400,同时,所述均衡服务器400还可以通过网络连接每个客户端,使得每个客户端均可以通过所述均衡服务器400与服务器集群中的对应的虚拟机建立长连接。每个虚拟机都可以视为一个Netty服务器,即在每个虚拟机中均部署有使用Netty来做长连接的服务端程序。所述服务器集群可以包括多台物理服务器以及虚拟化资源服务器300,每台物理服务器中均可以运行着多个虚拟机,因此,在所述中心服务器100连接每个虚拟机之前,所述中心服务器100需要先与服务器集群中的多台物理服务器进行连接。所述虚拟化资源服务器300可以用于记录虚拟机的数量以及虚拟机的状态,所述虚拟化资源服务器300可以与所述中心服务器100为同一个服务器。所述均衡服务器400可以通过HAProxy做负载均衡。
[0027]本发明实施例提供的所述系统中的中心服务器100,虚拟机200a、虚拟机200b、……、虚拟机200η,虚拟化资源服务器300,均衡服务器400以及客户端500a、客户端500b、……、客户端500η可以应用到浏览器推送消息的场景。以客户端为浏览器为例,客户端500a、客户端500b、……、客户端500η均通过所述均衡服务器400与对应虚拟机建立长连接,所述中心服务器100可以通过获取每个虚拟机中长连接的数量,得到所有长连接的总数,即得到已接入的客户端的数量。所述中心服务器100可以根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,所述中心服务器100可以向所述虚拟化资源服务器300申请增加虚拟机,所述虚拟化资源服务器300可以通知服务器集群增加虚拟机以满足所需运行的虚拟机的数量;当所述所需运行的虚拟机的数量小于当前已运行的虚拟机的数量时,所述中心服务器100可以向所述虚拟化资源服务器300申请释放虚拟机,所述虚拟化资源服务器300可以通知服务器集群减少虚拟机以满足所需运行的虚拟机的数量。当所述中心服务器100接收到推送消息时,所述中心服务器100可以将所述推送消息发送到虚拟机200a、虚拟机
200b、......、虚拟机200η,并通知虚拟机200a、虚拟机200b、......、虚拟机200η将所述推送消息发送到所述均衡服务器400,所述均衡服务器400再将所述推送消息推送到客户端500a、客户端500b、……、客户端500η。由于所需运行的虚拟机的数量是动态变化的,且虚拟机是在物理服务器上运行的,所以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。
[0028]请参见图2,是本发明实施例提供的一种消息推送的方法的流程示意图,所述方法可以包括:
[0029]S101,检测已接入的客户端的数量;
[0030]具体的,中心服务器可以统计当前已运行的虚拟机与客户端的长连接的数量,即计算每个已运行的虚拟机的长连接数量的总和,该总和即为已接入的客户端的数量。在检测已接入的客户端的数量之前,所述客户端需要先与正在运行的虚拟机建立长连接,该建立过程可以为:客户端发送连接请求到虚拟机,虚拟机根据该连接请求与该客户端建立长连接,客户端再向虚拟机发送安全认证消息,若虚拟机验证通过,则虚拟机将该客户端的标识附加在该长连接上;若虚拟机验证失败,则虚拟机将断开该长连接。
[0031]S102,根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接;
[0032]具体的,中心服务器可以根据所述已接入的客户端的数量计算所需运行的虚拟机的数量,所述所需运行的虚拟机的数量为刚好满足当前业务需求的数量。其中,所述已接入的客户端的数量越大,所需运行的虚拟机的数量越多,反之,所述已接入的客户端的数量越小,所需运行的虚拟机的数量越少,由此可见,所需运行的虚拟机的数量是动态变化的。
[0033]当所计算出的所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量,例如,当前已运行的虚拟机的数量为10,即当前正在运行10台虚拟机,若根据当前已接入的客户端的数量计算出的所述所需运行的虚拟机的数量为11台,则中心服务器可以将当前已运行的虚拟机的数量扩容处理至11台,即需要新增一台虚拟机。
[0034]当所计算出的所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量,例如,当前已运行的虚拟机的数量为10,即当前正在运行10台虚拟机,若根据当前已接入的客户端的数量计算出的所述所需运行的虚拟机的数量为8台,则中心服务器可以将当前已运行的虚拟机的数量减容处理至8台,即从当前正在运行的10台虚拟机中暂停2台虚拟机。
[0035]假设当前运行有2台物理服务器,每台物理服务器上均运行着10个虚拟机,即一共运行着20个虚拟机,若根据当前已接入的客户端的数量计算出当前所需运行的虚拟机的数量为5个,则可以由其中一台物理服务器运行5个虚拟机,另一台物理服务器则可以处于休息状态,从而可以节约系统资源。
[0036]S103,通过所述所需运行的虚拟机将推送消息推送到所述客户端;
[0037]具体的,当中心服务器接收到来自第三方系统的推送消息时,可以将所述推送消息发送至所述所需运行的虚拟机,即将所述推送消息发送至扩容处理或减容处理后的正在运行的虚拟机,所述所需运行的虚拟机再将所述推送消息推送到所述客户端。其中,所述推送消息可以包括目标客户端的类型,因此,所述所需运行的虚拟机在接收到所述推送消息后,可以根据所述目标客户端的类型遍历所有长连接,以将所述推送消息推送给符合所述目标客户端的类型的客户端。其中,为了避免一次性将所述推送消息推送到过多的客户端而导致第三方系统的压力过大,可以设定推送最大值,使得所述所需运行的虚拟机可以进行多次推送,每次推送的客户端数量不超过推送最大值,例如,假设推送最大值为I万,所述所需运行的虚拟机先将推送消息推送至I万个客户端,隔20s后再向第二批客户端进行推送。
[0038]本发明实施例中,通过检测已接入的客户端的数量,可以设置出所需运行的虚拟机的数量,并通过所需运行的虚拟机将推送消息推送到客户端,由于所需运行的虚拟机的数量是动态变化的,且虚拟机是在物理服务器上运行的,所以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。
[0039]请参见图3,是本发明实施例提供的另一种消息推送的方法的流程示意图,所述方法可以包括:
[0040]S201,创建并启动用于连接客户端的初始虚拟机,以使所述初始虚拟机与所述客户端建立长连接;
[0041]具体的,当启动用于运行虚拟机的物理服务器时,中心服务器可以通知物理服务器创建初始虚拟机,并启动初始虚拟机,以使所述初始虚拟机与所述客户%5建立长连接,初始虚拟机的数量可以根据以往所接入的客户端的数量进行设定。
[0042]S202,统计当前已运行的虚拟机与客户端的长连接的数量,以得到已接入的客户端的数量;
[0043]具体的,在启动了初始虚拟机之后,就可以统计当前已运行的虚拟机与客户端的长连接的数量,即计算每个已运行的虚拟机的长连接数量的总和,该总和即为已接入的客户端的数量。其中,可以通过实时统计所接入的客户端的数量,以实时对所需运行的虚拟机的数量进行调整。在检测已接入的客户端的数量之前,所述客户端需要先与正在运行的虚拟机建立长连接,该建立过程可以为:客户端发送连接请求到虚拟机,虚拟机根据该连接请求与该客户端建立长连接,客户端再向虚拟机发送安全认证消息,若虚拟机验证通过,则虚拟机将该客户端的标识附加在该长连接上;若虚拟机验证失败,则虚拟机将断开该长连接。
[0044]S203,根据所述已接入的客户端的数量计算所需运行的虚拟机的数量;
[0045]具体的,中心服务器可以根据所述已接入的客户端的数量计算所需运行的虚拟机的数量,中心服务器可以根据公式C = (n+s/m)/s+l计算出所需运行的虚拟机的数量,其中,η为已接入的客户端的数量,s为虚拟机能够创建的长连接的数量的最大值,m为缓冲因子,m用于提前计算出所需运行的虚拟机的数量,以避免在虚拟机中的长连接数量达到s时才能计算出所需运行的虚拟机的数量,若计算出c为整数,则所需运行的虚拟机的数量为C ;若计算出C不为整数时,则所需运行的虚拟机的数量为对C进行向下取整后的数值。例如,若计算出C为3,则所需运行的虚拟机的数量为3 ;若计算出C为3.1,则所需运行的虚拟机的数量仍然为3 ;若计算出c为3.9,则所需运行的虚拟机的数量也仍然为3。例如,假设虚拟机能够创建的长连接的数量的最大值s = 100 (万),并设定缓冲因子m = 5,则中心服务器可以根据公式C= (n+20)/100+l计算出所需运行的虚拟机的数量,若当前的已接入的客户端的数量η = 160 (万),则可以计算出c = 2.8,再对2.8进行向下取整得到2,即所需运行的虚拟机的数量为2 ;若当前的已接入的客户端的数量n= 180(万),则可以计算出c = 3,即所需运行的虚拟机的数量为3。
[0046]S204,当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量;
[0047]具体的,当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,中心服务器可以将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量,例如,若当前已运行的虚拟机的数量为3个,且此时所计算出的所需运行的虚拟机的数量为4个,则中心服务器可以通知物理服务器新增一个虚拟机,以将投入运行的虚拟机的数量扩容至4个。该扩容过程可以为:中心服务器可以向虚拟化资源服务器申请增加虚拟机,所述虚拟化资源服务器可以为上述图1对应实施例中的虚拟化资源服务器,所述虚拟化资源服务器与中心服务器可以为同一个服务器,所述虚拟化资源服务器可以根据所记录的每台物理服务器中正在运行的虚拟机以及处于待机状态的虚拟机,选择出至少一个处于待机状态的虚拟机,并通知对应的物理服务器启动运行所述至少一个处于待机状态的虚拟机,使得投入运行的虚拟机的数量可以达到所计算出的所述所需运行的虚拟机的数量。若物理服务器中不存在处于待机状态的虚拟机,则物理服务器可以创建新的虚拟机,并启动运行所述新的虚拟机。其中,所新增的虚拟机在进入服务后,可以把IP等信息注册到中心服务器。
[0048]S205,当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量;
[0049]具体的,当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,中心服务器可以将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量,例如,若当前已运行的虚拟机的数量为3个,且此时所计算出的所需运行的虚拟机的数量为2个,则中心服务器可以通知物理服务器暂停其中一个正在运行的虚拟机,以将投入运行的虚拟机的数量减容至2个。该减容过程可以为:中心服务器可以向虚拟化资源服务器申请释放虚拟机,所述虚拟化资源服务器可以为上述图1对应实施例中的虚拟化资源服务器,所述虚拟化资源服务器与中心服务器可以为同一个服务器,所述虚拟化资源服务器可以根据所记录的每台物理服务器中正在运行的虚拟机,选择出至少一个正在运行的虚拟机,并通知对应的物理服务器暂停所述至少一个正在运行的虚拟机,使得投入运行的虚拟机的数量可以降低至所计算出的所述所需运行的虚拟机的数量。其中,在暂停所述至少一个正在运行的虚拟机的期间,需要将待暂停的所述至少一个正在运行的虚拟机中的长连接断开,并将断开的长连接重新连接至其他继续运行的虚拟机中,并且新的长连接无法接入到待暂停的所述至少一个正在运行的虚拟机中,当待暂停的所述至少一个正在运行的虚拟机中没有长连接时,即可暂停所述至少一个正在运行的虚拟机。其中,所述虚拟化资源服务器可以统计处于待机状态的虚拟机的数量,当处于待机状态的虚拟机的数量大于预设数量阈值时,所述虚拟化资源服务器可以通知物理服务器删除部分处于待机状态的虚拟机。
[0050]本发明实施例也可以对用于运行虚拟机的物理服务器进行扩容、减容处理。由于在物理服务器中运行的虚拟机的数量有上限值,所以可以实时统计正在运行的虚拟机的数量,当正在运行的虚拟机的数量过多时,中心服务器可以发出警报以通知需要扩容新的物理服务器。例如,有2台物理服务器,每台物理服务器最多能够运行10个虚拟机,即一共最多能运行20个虚拟机,假设警报阈值为80%,若当前正在运行的虚拟机的数量为16个,那么由于16/20 = 0.8 = 80%,所以此时已达到了警报阈值,即可发出警报以通知需要扩容新的物理服务器。
[0051]S206,通过所述所需运行的虚拟机将推送消息推送到所述客户端;
[0052]具体的,当中心服务器接收到来自第三方系统的推送消息时,可以将所述推送消息发送至所述所需运行的虚拟机,即将所述推送消息发送至扩容处理或减容处理后的正在运行的虚拟机,所述所需运行的虚拟机再将所述推送消息推送到所述客户端。其中,所述推送消息可以包括目标客户端的类型,因此,所述所需运行的虚拟机在接收到所述推送消息后,可以根据所述目标客户端的类型遍历所有长连接,以将所述推送消息推送给符合所述目标客户端的类型的客户端。其中,为了避免一次性将所述推送消息推送到过多的客户端而导致第三方系统的压力过大,可以设定推送最大值,使得所述所需运行的虚拟机可以进行多次推送,每次推送的客户端数量不超过推送最大值,例如,假设推送最大值为I万,所述所需运行的虚拟机先将推送消息推送至I万个客户端,隔20s后再向第二批客户端进行推送。
[0053]以客户端为浏览器为例,由于在虚拟机中部署有使用Netty来做长连接的服务端程序,所以可以在浏览器内部使用C语音以将该浏览器设置为可以与虚拟机进行长连接的Netty客户端。当浏览器接收到虚拟机所推送的推送消息时,浏览器可以将相关的C语音转出调用javascript的一个函数,该函数负责进行消息弹窗,使用javascript的优点在于,因为javascript是可以基于html (HyperText Mark-up Language,超文本标记语言)的页面展示,所以对消息的展示、UI (User Interface,用户界面)交互可以进行更灵活的定制,并且无需再对浏览器进行升级方能实现。
[0054]本发明实施例中,通过检测已接入的客户端的数量,可以设置出所需运行的虚拟机的数量,并通过所需运行的虚拟机将推送消息推送到客户端,由于所需运行的虚拟机的数量是动态变化的,且虚拟机是在物理服务器上运行的,所以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。
[0055]进一步的,再请参见图4,是本发明实施例提供的其中一种扩容方法的流程示意图,所述方法可以对应于上述图3对应实施例中的S204,所述方法可以包括:
[0056]S301,当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,将当前已运行的虚拟机的运行状态设置为待扩容状态;
[0057]具体的,当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,中心服务器可以将当前已运行的虚拟机的运行状态设置为待扩容状态,例如,计算出的所需运行的虚拟机的数量为5,当前已运行的虚拟机的数量为4,那么中心服务器可以将当前已运行的4个虚拟机的运行状态设置为待扩容状态。
[0058]S302,检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长;
[0059]具体的,中心服务器可以检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长,即检测实时计算出的所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量的持续时长。
[0060]S303,当所述持续时长大于预设的时长阈值时,启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值;
[0061]具体的,为了增强系统的鲁棒性,以防止长连接数量在临界值之间变化造成系统频繁振荡,因此,需要预设一个时长阈值,当所述持续时长大于预设的时长阈值时,才启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值。例如,假设时长阈值为5分钟,若当前已运行的虚拟机的数量为3个,且长连接数量达到180万以上时所计算出的所需运行的虚拟机的数量为4个,则在5分钟内长连接数量始终维持在180万以上时,就可以启动并运行一个新的虚拟机,使得投入运行的虚拟机数量达到4个。
[0062]本发明实施例通过预设一个时长阈值,可以增强系统的鲁棒性,使得在扩容过程中可以防止长连接数量在临界值之间变化造成系统频繁振荡。
[0063]进一步的,再请参见图5,是本发明实施例提供的其中一种减容方法的流程示意图,所述方法可以对应于上述图3对应实施例中的S205,所述方法可以包括:
[0064]S401,当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态;
[0065]具体的,所述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值。例如,计算出的所需运行的虚拟机的数量为3,当前已运行的虚拟机的数量为5,中心服务器可以根据虚拟机的编号选择2个虚拟机,若5个正在运行的虚拟机的编号分别为1、2、3、4、5,则可以将编号为I和2的虚拟机的运行状态设置为待减容状态。
[0066]S402,检测所述第二数量的虚拟机处于所述待减容状态的持续时长;
[0067]具体的,中心服务器可以检测所述第二数量的虚拟机处于所述待减容状态的持续时长,即检测实时计算出的所述所需运行的虚拟机的数量小于当前已运行的虚拟机的数量的持续时长。
[0068]S403,当所述持续时长大于预设的时长阈值时,通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机;
[0069]具体的,为了增强系统的鲁棒性,以防止长连接数量在临界值之间变化造成系统频繁振荡,因此,需要预设一个时长阈值,当所述持续时长大于预设的时长阈值时,才通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机。所述中心服务器可以通知待减容状态的虚拟机在数据协议头中标明该虚拟机将失效,使得图1对应实施例中的均衡服务器在将客户端分配至虚拟机时,所述均衡服务器不会将客户端连接至所述待减容状态的虚拟机。所述中心服务器在通知所述待减容状态的虚拟机断开所连接的客户端时,所述待减容状态的虚拟机可以断开所连接的客户端,并发送一条心跳消息到客户端以告知该客户端需要重新连接至非待减容状态的虚拟机,所述非待减容状态的虚拟机为所述当前已运行的虚拟机中除了所述待减容状态的虚拟机以外的虚拟机,即需要继续运行的虚拟机。例如,假设时长阈值为5分钟,若当前已运行的虚拟机的数量为3个,且长连接数量达到180万以下时所计算出的所需运行的虚拟机的数量为2个,则在5分钟内长连接数量始终维持在180万以下时,就可以通知I个待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到另外2个虚拟机。
[0070]S404,当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,将所述待减容状态的虚拟机暂停或删除;
[0071]具体的,所述待减容状态的虚拟机是依次断开所建立的长连接,当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,中心服务器就可以通知用于运行虚拟机的物理服务器将所述待减容状态的虚拟机暂停或删除。当存在过多处于待机状态的虚拟机时,物理服务器就可以直接将所述待减容状态的虚拟机删除,以节约存储资源。
[0072]本发明实施例通过对虚拟机进行减容处理,可以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。
[0073]请参见图6,是本发明实施例提供的一种消息推送服务器I的结构示意图,所述消息推送服务器I可以为上述图1至图5对应实施例中所提到的中心服务器,所述消息推送服务器I可以包括:预设模块40、检测模块10、设置模块20、推送模块30 ;
[0074]所述预设模块40,用于创建并启动用于连接客户端的初始虚拟机,以使所述初始虚拟机与所述客户端建立长连接;
[0075]具体的,当启动用于运行虚拟机的物理服务器时,所述预设模块40可以通知物理服务器创建初始虚拟机,并启动初始虚拟机,以使所述初始虚拟机与所述客户端建立长连接,初始虚拟机的数量可以根据以往所接入的客户端的数量进行设定。
[0076]所述检测模块10,用于检测已接入的客户端的数量;
[0077]具体的,在启动了初始虚拟机之后,所述检测模块10可以统计当前已运行的虚拟机与客户端的长连接的数量,即计算每个已运行的虚拟机的长连接数量的总和,该总和即为已接入的客户端的数量。在检测已接入的客户端的数量之前,所述客户端需要先与正在运行的虚拟机建立长连接,该建立过程可以为:客户端发送连接请求到虚拟机,虚拟机根据该连接请求与该客户端建立长连接,客户端再向虚拟机发送安全认证消息,若虚拟机验证通过,则虚拟机将该客户端的标识附加在该长连接上;若虚拟机验证失败,则虚拟机将断开该长连接。
[0078]所述设置模块20,用于根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接;
[0079]具体的,所述设置模块20可以根据所述已接入的客户端的数量计算所需运行的虚拟机的数量,所述所需运行的虚拟机的数量为刚好满足当前业务需求的数量。其中,所述已接入的客户端的数量越大,所需运行的虚拟机的数量越多,反之,所述已接入的客户端的数量越小,所需运行的虚拟机的数量越少,由此可见,所需运行的虚拟机的数量是动态变化的。
[0080]当所计算出的所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,所述设置模块20将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量,例如,当前已运行的虚拟机的数量为10,即当前正在运行10台虚拟机,若根据当前已接入的客户端的数量计算出的所述所需运行的虚拟机的数量为11台,则所述设置模块20可以将当前已运行的虚拟机的数量扩容处理至11台,即需要新增一台虚拟机。
[0081]当所计算出的所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,所述设置模块20将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量,例如,当前已运行的虚拟机的数量为10,即当前正在运行10台虚拟机,若根据当前已接入的客户端的数量计算出的所述所需运行的虚拟机的数量为8台,则所述设置模块20可以将当前已运行的虚拟机的数量减容处理至8台,即从当前正在运行的10台虚拟机中暂停2台虚拟机。
[0082]假设当前运行有2台物理服务器,每台物理服务器上均运行着10个虚拟机,即一共运行着20个虚拟机,若根据当前已接入的客户端的数量计算出当前所需运行的虚拟机的数量为5个,则可以由其中一台物理服务器运行5个虚拟机,另一台物理服务器则可以处于休息状态,从而可以节约系统资源。
[0083]所述推送模块30,用于通过所述所需运行的虚拟机将推送消息推送到所述客户端;
[0084]具体的,当所述推送模块30接收到来自第三方系统的推送消息时,可以将所述推送消息发送至所述所需运行的虚拟机,即将所述推送消息发送至扩容处理或减容处理后的正在运行的虚拟机,所述所需运行的虚拟机再将所述推送消息推送到所述客户端。其中,所述推送消息可以包括目标客户端的类型,因此,所述所需运行的虚拟机在接收到所述推送消息后,可以根据所述目标客户端的类型遍历所有长连接,以将所述推送消息推送给符合所述目标客户端的类型的客户端。其中,为了避免一次性将所述推送消息推送到过多的客户端而导致第三方系统的压力过大,可以设定推送最大值,使得所述所需运行的虚拟机可以进行多次推送,每次推送的客户端数量不超过推送最大值,例如,假设推送最大值为I万,所述所需运行的虚拟机先将推送消息推送至I万个客户端,隔20s后再向第二批客户端进行推送。
[0085]进一步的,再请参见图7,是本发明实施例提供的一种设置模块20的结构示意图,所述设置模块20可以包括:数量计算单元201、扩容单元202、减容单元203 ;
[0086]所述数量计算单元201,用于根据所述已接入的客户端的数量计算所需运行的虚拟机的数量;
[0087]具体的,所述数量计算单元201可以根据所述已接入的客户端的数量计算所需运行的虚拟机的数量,所述数量计算单元201可以根据公式c = (n+s/m)/s+l计算出所需运行的虚拟机的数量,其中,η为已接入的客户端的数量,s为虚拟机能够创建的长连接的数量的最大值,m为缓冲因子,m用于提前计算出所需运行的虚拟机的数量,以避免在虚拟机中的长连接数量达到s时才能计算出所需运行的虚拟机的数量,若计算出c为整数,则所需运行的虚拟机的数量为c ;若计算出c不为整数时,则所需运行的虚拟机的数量为对c进行向下取整后的数值。例如,若计算出c为3,则所需运行的虚拟机的数量为3 ;若计算出c为3.1,则所需运行的虚拟机的数量仍然为3 ;若计算出c为3.9,则所需运行的虚拟机的数量也仍然为3。例如,假设虚拟机能够创建的长连接的数量的最大值s = 100(万),并设定缓冲因子m = 5,则所述数量计算单元201可以根据公式c = (n+20)/100+1计算出所需运行的虚拟机的数量,若当前的已接入的客户端的数量n = 160(万),则可以计算出c = 2.8,再对2.8进行向下取整得到2,即所需运行的虚拟机的数量为2 ;若当前的已接入的客户端的数量n = 180(万),则可以计算出c = 3,即所需运行的虚拟机的数量为3。
[0088]所述扩容单元202,用于当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量;
[0089]具体的,当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,所述扩容单元202可以将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量,例如,若当前已运行的虚拟机的数量为3个,且此时所计算出的所需运行的虚拟机的数量为4个,则所述扩容单元202可以通知物理服务器新增一个虚拟机,以将投入运行的虚拟机的数量扩容至4个。该扩容过程可以为:所述扩容单元202可以向虚拟化资源服务器申请增加虚拟机,所述虚拟化资源服务器可以为上述图1对应实施例中的虚拟化资源服务器,所述虚拟化资源服务器与所述消息推送服务器I可以为同一个服务器,所述虚拟化资源服务器可以根据所记录的每台物理服务器中正在运行的虚拟机以及处于待机状态的虚拟机,选择出至少一个处于待机状态的虚拟机,并通知对应的物理服务器启动运行所述至少一个处于待机状态的虚拟机,使得投入运行的虚拟机的数量可以达到所计算出的所述所需运行的虚拟机的数量。若物理服务器中不存在处于待机状态的虚拟机,则物理服务器可以创建新的虚拟机,并启动运行所述新的虚拟机。其中,所新增的虚拟机在进入服务后,可以把IP等信息注册到所述消息推送服务器I。
[0090]所述减容单元203,用于当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量;
[0091]具体的,当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,所述减容单元203可以将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量,例如,若当前已运行的虚拟机的数量为3个,且此时所计算出的所需运行的虚拟机的数量为2个,则所述减容单元203可以通知物理服务器暂停其中一个正在运行的虚拟机,以将投入运行的虚拟机的数量减容至2个。该减容过程可以为:所述减容单元203可以向虚拟化资源服务器申请释放虚拟机,所述虚拟化资源服务器可以为上述图1对应实施例中的虚拟化资源服务器,所述虚拟化资源服务器与所述消息推送服务器I可以为同一个服务器,所述虚拟化资源服务器可以根据所记录的每台物理服务器中正在运行的虚拟机,选择出至少一个正在运行的虚拟机,并通知对应的物理服务器暂停所述至少一个正在运行的虚拟机,使得投入运行的虚拟机的数量可以降低至所计算出的所述所需运行的虚拟机的数量。其中,在暂停所述至少一个正在运行的虚拟机的期间,需要将待暂停的所述至少一个正在运行的虚拟机中的长连接断开,并将断开的长连接重新连接至其他继续运行的虚拟机中,并且新的长连接无法接入到待暂停的所述至少一个正在运行的虚拟机中,当待暂停的所述至少一个正在运行的虚拟机中没有长连接时,即可暂停所述至少一个正在运行的虚拟机。其中,所述虚拟化资源服务器可以统计处于待机状态的虚拟机的数量,当处于待机状态的虚拟机的数量大于预设数量阈值时,所述虚拟化资源服务器可以通知物理服务器删除部分处于待机状态的虚拟机。
[0092]进一步的,再请参见图8,是本发明实施例提供的一种扩容单元202的结构示意图,所述扩容单元202可以包括:第一设置子单元2021、第一检测子单元2022、启动运行子单元2023 ;
[0093]所述第一设置子单元2021,用于当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,将当前已运行的虚拟机的运行状态设置为待扩容状态;
[0094]具体的,当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,所述第一设置子单元2021可以将当前已运行的虚拟机的运行状态设置为待扩容状态,例如,计算出的所需运行的虚拟机的数量为5,当前已运行的虚拟机的数量为4,那么所述第一设置子单元2021可以将当前已运行的4个虚拟机的运行状态设置为待扩容状态。
[0095]所述第一检测子单元2022,用于检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长;
[0096]具体的,所述第一检测子单元2022可以检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长,即检测实时计算出的所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量的持续时长。
[0097]所述启动运行子单元2023,用于当所述持续时长大于预设的时长阈值时,启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值;
[0098]具体的,为了增强系统的鲁棒性,以防止长连接数量在临界值之间变化造成系统频繁振荡,因此,需要预设一个时长阈值,当所述持续时长大于预设的时长阈值时,所述启动运行子单元2023才启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值。例如,假设时长阈值为5分钟,若当前已运行的虚拟机的数量为3个,且长连接数量达到180万以上时所计算出的所需运行的虚拟机的数量为4个,则在5分钟内长连接数量始终维持在180万以上时,所述启动运行子单元2023就可以启动并运行一个新的虚拟机,使得投入运行的虚拟机数量达到4个。
[0099]进一步的,再请参见图9,是本发明实施例提供的一种减容单元203的结构示意图,所述减容单元203可以包括:第二设置子单元2031、第二检测子单元2032、通知子单元2033、控制子单元2034 ;
[0100]所述第二设置子单元2031,用于当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态,所述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值;
[0101]具体的,假设计算出的所需运行的虚拟机的数量为3,当前已运行的虚拟机的数量为5,所述第二设置子单元2031可以根据虚拟机的编号选择2个虚拟机,若5个正在运行的虚拟机的编号分别为1、2、3、4、5,则所述第二设置子单元2031可以将编号为I和2的虚拟机的运行状态设置为待减容状态。
[0102]所述第二检测子单元2032,用于检测所述第二数量的虚拟机处于所述待减容状态的持续时长;
[0103]具体的,所述第二检测子单元2032可以检测所述第二数量的虚拟机处于所述待减容状态的持续时长,即检测实时计算出的所述所需运行的虚拟机的数量小于当前已运行的虚拟机的数量的持续时长。
[0104]所述通知子单元2033,用于当所述持续时长大于预设的时长阈值时,通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机;
[0105]具体的,为了增强系统的鲁棒性,以防止长连接数量在临界值之间变化造成系统频繁振荡,因此,需要预设一个时长阈值,当所述持续时长大于预设的时长阈值时,所述通知子单元2033才通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机。所述通知子单元2033可以通知待减容状态的虚拟机在数据协议头中标明该虚拟机将失效,使得图1对应实施例中的均衡服务器在将客户端分配至虚拟机时,所述均衡服务器不会将客户端连接至所述待减容状态的虚拟机。所述通知子单元2033在通知所述待减容状态的虚拟机断开所连接的客户端时,所述待减容状态的虚拟机可以断开所连接的客户端,并发送一条心跳消息到客户端以告知该客户端需要重新连接至非待减容状态的虚拟机,所述非待减容状态的虚拟机为所述当前已运行的虚拟机中除了所述待减容状态的虚拟机以外的虚拟机,即需要继续运行的虚拟机。
[0106]所述控制子单元2034,用于当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,将所述待减容状态的虚拟机暂停或删除;
[0107]具体的,所述待减容状态的虚拟机是依次断开所建立的长连接,当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,所述控制子单元2034就可以通知用于运行虚拟机的物理服务器将所述待减容状态的虚拟机暂停或删除。当存在过多处于待机状态的虚拟机时,所述控制子单元2034就可以通知物理服务器直接将所述待减容状态的虚拟机删除,以节约存储资源。
[0108]本发明实施例中,通过检测已接入的客户端的数量,可以设置出所需运行的虚拟机的数量,并通过所需运行的虚拟机将推送消息推送到客户端,由于所需运行的虚拟机的数量是动态变化的,且虚拟机是在物理服务器上运行的,所以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。
[0109]请参见图10,是本发明实施例提供的另一种消息推送服务器的结构示意图,所述消息推送服务器1000可以包括处理器1001、通信接口 1002和存储器1003(所述消息推送服务器1000中的处理器1001的数量可以为一个或多个,图10中以一个处理器1001为例)。本发明的一些实施例中,处理器1001、通信接口 1002和存储器1003可通过通信总线或其他方式连接,其中,图10以通过通信总线连接为例。
[0110]其中,所述通信接口 1002,用于与物理服务器中的虚拟机进行通信;
[0111]所述存储器1003用于存储程序;
[0112]所述处理器1001用于执行所述程序,以实现
[0113]检测已接入的客户端的数量;
[0114]根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接;
[0115]通过所述所需运行的虚拟机将推送消息推送到所述客户端。
[0116]其中,所述处理器1001具体用于:
[0117]统计当前已运行的虚拟机与客户端的长连接的数量,以得到已接入的客户端的数量。
[0118]其中,所述处理器1001具体用于:
[0119]根据所述已接入的客户端的数量计算所需运行的虚拟机的数量;
[0120]当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量;
[0121]当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量。
[0122]其中,所述处理器1001具体用于:
[0123]当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,将当前已运行的虚拟机的运行状态设置为待扩容状态;
[0124]检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长;
[0125]当所述持续时长大于预设的时长阈值时,启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值。
[0126]其中,所述处理器1001具体用于:
[0127]当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态,所述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值;
[0128]检测所述第二数量的虚拟机处于所述待减容状态的持续时长;
[0129]当所述持续时长大于预设的时长阈值时,通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机;
[0130]当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,将所述待减容状态的虚拟机暂停或删除。
[0131]其中,所述处理器1001还用于:
[0132]创建并启动用于连接客户纟而的初始虚拟机,以使所述初始虚拟机与所述客户%5建立长连接。
[0133]本发明实施例中,通过检测已接入的客户端的数量,可以设置出所需运行的虚拟机的数量,并通过所需运行的虚拟机将推送消息推送到客户端,由于所需运行的虚拟机的数量是动态变化的,且虚拟机是在物理服务器上运行的,所以在所需运行的虚拟机的数量减少时,同样可以减少需要运行的物理服务器的数量,从而可以节约系统资源。
[0134]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0135]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种消息推送的方法,其特征在于,包括: 检测已接入的客户端的数量; 根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接; 通过所述所需运行的虚拟机将推送消息推送到所述客户端。
2.如权利要求1所述的方法,其特征在于,所述检测已接入的客户端的数量,具体包括: 统计当前已运行的虚拟机与客户端的长连接的数量,以得到已接入的客户端的数量。
3.如权利要求2所述的方法,其特征在于,所述根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,包括: 根据所述已接入的客户端的数量计算所需运行的虚拟机的数量; 当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量; 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量。
4.如权利要求3所述的方法,其特征在于,所述当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量,包括: 当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,将当前已运行的虚拟机的运行状态设置为待扩容状态; 检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长; 当所述持续时长大于预设的时长阈值时,启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值。
5.如权利要求3所述的方法,其特征在于,所述当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量,包括: 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态,所述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值; 检测所述第二数量的虚拟机处于所述待减容状态的持续时长; 当所述持续时长大于预设的时长阈值时,通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机; 当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,将所述待减容状态的虚拟机暂停或删除。
6.如权利要求1所述的方法,其特征在于,在所述检测已接入的客户端的数量的步骤之前,还包括: 创建并启动用于连接客户端的初始虚拟机,以使所述初始虚拟机与所述客户端建立长连接。
7.一种消息推送服务器,其特征在于,包括: 检测模块,用于检测已接入的客户端的数量; 设置模块,用于根据所述已接入的客户端的数量设置所需运行的虚拟机的数量,所述所需运行的虚拟机用于被所述客户端连接; 推送模块,用于通过所述所需运行的虚拟机将推送消息推送到所述客户端。
8.如权利要求7所述的服务器,其特征在于, 所述检测模块,具体用于统计当前已运行的虚拟机与客户端的长连接的数量,以得到已接入的客户端的数量。
9.如权利要求8所述的服务器,其特征在于,所述设置模块包括: 数量计算单元,用于根据所述已接入的客户端的数量计算所需运行的虚拟机的数量;扩容单元,用于当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量; 减容单元,用于当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量。
10.如权利要求9所述的服务器,其特征在于,所述扩容单元包括: 第一设置子单元,用于当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时,将当前已运行的虚拟机的运行状态设置为待扩容状态; 第一检测子单元,用于检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长; 启动运行子单元,用于当所述持续时长大于预设的时长阈值时,启动并运行第一数量的虚拟机,所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值。
11.如权利要求9所述的服务器,其特征在于,所述减容单元包括: 第二设置子单元,用于当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时,将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态,所述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值; 第二检测子单元,用于检测所述第二数量的虚拟机处于所述待减容状态的持续时长;通知子单元,用于当所述持续时长大于预设的时长阈值时,通知所述待减容状态的虚拟机断开所连接的客户端,以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟机; 控制子单元,用于当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时,将所述待减容状态的虚拟机暂停或删除。
12.如权利要求7所述的服务器,其特征在于,还包括: 预设模块,用于创建并启动用于连接客户端的初始虚拟机,以使所述初始虚拟机与所述客户端建立长连接。
【文档编号】H04L12/58GK104243285SQ201410484584
【公开日】2014年12月24日 申请日期:2014年9月19日 优先权日:2014年9月19日
【发明者】黄郁财 申请人:广州华多网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1