一种消息推送的方法以及服务器.pdf

上传人:1*** 文档编号:4488047 上传时间:2018-10-17 格式:PDF 页数:23 大小:2.35MB
返回 下载 相关 举报
一种消息推送的方法以及服务器.pdf_第1页
第1页 / 共23页
一种消息推送的方法以及服务器.pdf_第2页
第2页 / 共23页
一种消息推送的方法以及服务器.pdf_第3页
第3页 / 共23页
点击查看更多>>
资源描述

《一种消息推送的方法以及服务器.pdf》由会员分享,可在线阅读,更多相关《一种消息推送的方法以及服务器.pdf(23页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104243285 A (43)申请公布日 2014.12.24 CN 104243285 A (21)申请号 201410484584.4 (22)申请日 2014.09.19 H04L 12/58(2006.01) G06F 9/455(2006.01) (71)申请人 广州华多网络科技有限公司 地址 510655 广东省广州市黄埔大道中 309 号羊城创意产业园 3-08 栋 (72)发明人 黄郁财 (74)专利代理机构 广州三环专利代理有限公司 44202 代理人 郝传鑫 熊永强 (54) 发明名称 一种消息推送的方法以及服务器 (57) 摘要 本发明实施例公。

2、开了一种消息推送的方法以 及服务器, 其中, 所述方法包括 : 检测已接入的客 户端的数量 ; 根据所述已接入的客户端的数量设 置所需运行的虚拟机的数量, 所述所需运行的虚 拟机用于被所述客户端连接 ; 通过所述所需运行 的虚拟机将推送消息推送到所述客户端。采用本 发明, 可以在推送消息时, 节约系统资源。 (51)Int.Cl. 权利要求书 2 页 说明书 14 页 附图 6 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书14页 附图6页 (10)申请公布号 CN 104243285 A CN 104243285 A 1/2 页 2 1. 一种消息推送。

3、的方法, 其特征在于, 包括 : 检测已接入的客户端的数量 ; 根据所述已接入的客户端的数量设置所需运行的虚拟机的数量, 所述所需运行的虚拟 机用于被所述客户端连接 ; 通过所述所需运行的虚拟机将推送消息推送到所述客户端。 2. 如权利要求 1 所述的方法, 其特征在于, 所述检测已接入的客户端的数量, 具体包 括 : 统计当前已运行的虚拟机与客户端的长连接的数量, 以得到已接入的客户端的数量。 3. 如权利要求 2 所述的方法, 其特征在于, 所述根据所述已接入的客户端的数量设置 所需运行的虚拟机的数量, 包括 : 根据所述已接入的客户端的数量计算所需运行的虚拟机的数量 ; 当所述所需运行的。

4、虚拟机的数量大于所述当前已运行的虚拟机的数量时, 将当前已运 行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量 ; 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时, 将当前已运 行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量。 4. 如权利要求 3 所述的方法, 其特征在于, 所述当所述所需运行的虚拟机的数量大于 所述当前已运行的虚拟机的数量时, 将当前已运行的虚拟机的数量扩容处理为所述所需运 行的虚拟机的数量, 包括 : 当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时, 将当前已运行的 虚拟机的运行状态设置为待扩容状态 ; 检测所述当前已运行的虚拟机处于。

5、所述待扩容状态的持续时长 ; 当所述持续时长大于预设的时长阈值时, 启动并运行第一数量的虚拟机, 所述第一数 量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值。 5. 如权利要求 3 所述的方法, 其特征在于, 所述当所述所需运行的虚拟机的数量小于 所述当前已运行的虚拟机的数量时, 将当前已运行的虚拟机的数量减容处理为所述所需运 行的虚拟机的数量, 包括 : 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时, 将当前已运 行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态, 所述第二数量为所述当前 已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值 ; 。

6、检测所述第二数量的虚拟机处于所述待减容状态的持续时长 ; 当所述持续时长大于预设的时长阈值时, 通知所述待减容状态的虚拟机断开所连接 的客户端, 以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状态的虚拟 机 ; 当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时, 将所述待减容 状态的虚拟机暂停或删除。 6. 如权利要求 1 所述的方法, 其特征在于, 在所述检测已接入的客户端的数量的步骤 之前, 还包括 : 创建并启动用于连接客户端的初始虚拟机, 以使所述初始虚拟机与所述客户端建立长 连接。 权 利 要 求 书 CN 104243285 A 2 2/2 页 3 7. 一。

7、种消息推送服务器, 其特征在于, 包括 : 检测模块, 用于检测已接入的客户端的数量 ; 设置模块, 用于根据所述已接入的客户端的数量设置所需运行的虚拟机的数量, 所述 所需运行的虚拟机用于被所述客户端连接 ; 推送模块, 用于通过所述所需运行的虚拟机将推送消息推送到所述客户端。 8. 如权利要求 7 所述的服务器, 其特征在于, 所述检测模块, 具体用于统计当前已运行的虚拟机与客户端的长连接的数量, 以得到 已接入的客户端的数量。 9. 如权利要求 8 所述的服务器, 其特征在于, 所述设置模块包括 : 数量计算单元, 用于根据所述已接入的客户端的数量计算所需运行的虚拟机的数量 ; 扩容单元。

8、, 用于当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量 时, 将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量 ; 减容单元, 用于当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量 时, 将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量。 10. 如权利要求 9 所述的服务器, 其特征在于, 所述扩容单元包括 : 第一设置子单元, 用于当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数 量时, 将当前已运行的虚拟机的运行状态设置为待扩容状态 ; 第一检测子单元, 用于检测所述当前已运行的虚拟机处于所述待扩容状态的持续时 长 ; 启动运行。

9、子单元, 用于当所述持续时长大于预设的时长阈值时, 启动并运行第一数量 的虚拟机, 所述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数 量的差值。 11. 如权利要求 9 所述的服务器, 其特征在于, 所述减容单元包括 : 第二设置子单元, 用于当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机 的数量时, 将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态, 所 述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟机的数量的差值 ; 第二检测子单元, 用于检测所述第二数量的虚拟机处于所述待减容状态的持续时长 ; 通知子单元, 用于当所述持续时长大于。

10、预设的时长阈值时, 通知所述待减容状态的虚 拟机断开所连接的客户端, 以使所述客户端重新连接到所述当前已运行的虚拟机中的非待 减容状态的虚拟机 ; 控制子单元, 用于当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端 时, 将所述待减容状态的虚拟机暂停或删除。 12. 如权利要求 7 所述的服务器, 其特征在于, 还包括 : 预设模块, 用于创建并启动用于连接客户端的初始虚拟机, 以使所述初始虚拟机与所 述客户端建立长连接。 权 利 要 求 书 CN 104243285 A 3 1/14 页 4 一种消息推送的方法以及服务器 技术领域 0001 本发明涉及通信技术领域, 尤其涉及一种消。

11、息推送的方法以及服务器。 背景技术 0002 目前的实时消息推送系统已广泛应用于互联网应用, 如广告推送。在目前的实时 消息推送系统中使用服务器推送的功能时, 需要维持大量的长连接, 为了可以维持大量的 长连接, 传统的做法是采用服务器集群, 即将服务端应用部署到多台物理服务器上, 并结合 负载均衡来处理连接请求。 但是在负载较轻的情况下, 仍然会同时运行多台物理服务器, 这 必然会导致系统资源的浪费。 发明内容 0003 本发明实施例提供一种消息推送的方法以及服务器, 可以在推送消息时, 节约系 统资源。 0004 本发明实施例第一方面提供了一种消息推送的方法, 包括 : 0005 检测已接。

12、入的客户端的数量 ; 0006 根据所述已接入的客户端的数量设置所需运行的虚拟机的数量, 所述所需运行的 虚拟机用于被所述客户端连接 ; 0007 通过所述所需运行的虚拟机将推送消息推送到所述客户端。 0008 本发明实施例第二方面提供了一种消息推送服务器, 包括 : 0009 检测模块, 用于检测已接入的客户端的数量 ; 0010 设置模块, 用于根据所述已接入的客户端的数量设置所需运行的虚拟机的数量, 所述所需运行的虚拟机用于被所述客户端连接 ; 0011 推送模块, 用于通过所述所需运行的虚拟机将推送消息推送到所述客户端。 0012 本发明实施例中, 通过检测已接入的客户端的数量, 可以。

13、设置出所需运行的虚拟 机的数量, 并通过所需运行的虚拟机将推送消息推送到客户端, 由于所需运行的虚拟机的 数量是动态变化的, 且虚拟机是在物理服务器上运行的, 所以在所需运行的虚拟机的数量 减少时, 同样可以减少需要运行的物理服务器的数量, 从而可以节约系统资源。 附图说明 0013 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本 发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以 根据这些附图获得其他的附图。 0014 图 1 是本发明实施例提供的。

14、一种消息推送的系统的结构示意图 ; 0015 图 2 是本发明实施例提供的一种消息推送的方法的流程示意图 ; 0016 图 3 是本发明实施例提供的另一种消息推送的方法的流程示意图 ; 说 明 书 CN 104243285 A 4 2/14 页 5 0017 图 4 是本发明实施例提供的其中一种扩容方法的流程示意图 ; 0018 图 5 是本发明实施例提供的其中一种减容方法的流程示意图 ; 0019 图 6 是本发明实施例提供的一种消息推送服务器的结构示意图 ; 0020 图 7 是本发明实施例提供的一种设置模块的结构示意图 ; 0021 图 8 是本发明实施例提供的一种扩容单元的结构示意图 。

15、; 0022 图 9 是本发明实施例提供的一种减容单元的结构示意图 ; 0023 图 10 是本发明实施例提供的另一种消息推送服务器的结构示意图。 具体实施方式 0024 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于 本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例, 都属于本发明保护的范围。 0025 本发明实施例中所涉及到的虚拟机都可以视为一个 Netty 服务器, 即在每个虚拟 机中均部署有使用 Netty 来做长连接的服务端程序,。

16、 例如, 在创建虚拟机时, 将 Netty 服务 器程序注入到虚拟机中运行。创建虚拟机时, 可以使用 vmware 虚拟化技术, 当然还可以使 用 xen、 kvm 等虚拟化技术, 现有的虚拟化技术基本都可以支持创建、 启动、 停止、 删除虚拟 机的功能。 虚拟机需要在物理服务器中运行, 因此, 可以将一台物理服务器虚拟化成多台不 同的虚拟机, 例如, 若一台物理服务器可以虚拟化成 20 台虚拟机, 且当前需要使用 35 台虚 拟机, 则当前至少需要运行两台物理服务器。 本发明实施例中所涉及到的客户端可以包括 : 智能手机、 平板电脑、 台式电脑等具有连接网络功能的终端, 所述客户端还可以为终。

17、端设备 中的浏览器应用, 该浏览器应用可以为基于 Netty 的浏览器应用, 或者, 所述客户端还可以 具体为集合群聊、 视频直播、 频道 K 歌、 应用游戏、 在线影视等功能为一体的综合型的娱乐 客户端, 本发明实施例不作限定。 0026 请参见图 1, 是本发明实施例提供的一种消息推送的系统的结构示意图 ; 该系统 可以包括中心服务器 100, 虚拟机 200a、 虚拟机 200b、 虚拟机 200n, 虚拟化资源服务 器 300, 均衡服务器 400 以及客户端 500a、 客户端 500b、 、 客户端 500n, 其中, 每个虚拟 机和所述虚拟化资源服务器 300 均可以通过网络连接。

18、到所述中心服务器 100, 每个虚拟机 还可以通过网络连接到所述均衡服务器 400, 同时, 所述均衡服务器 400 还可以通过网络连 接每个客户端, 使得每个客户端均可以通过所述均衡服务器 400 与服务器集群中的对应的 虚拟机建立长连接。每个虚拟机都可以视为一个 Netty 服务器, 即在每个虚拟机中均部署 有使用 Netty 来做长连接的服务端程序。所述服务器集群可以包括多台物理服务器以及虚 拟化资源服务器 300, 每台物理服务器中均可以运行着多个虚拟机, 因此, 在所述中心服务 器 100 连接每个虚拟机之前, 所述中心服务器 100 需要先与服务器集群中的多台物理服务 器进行连接。。

19、所述虚拟化资源服务器 300 可以用于记录虚拟机的数量以及虚拟机的状态, 所述虚拟化资源服务器 300 可以与所述中心服务器 100 为同一个服务器。所述均衡服务器 400 可以通过 HAProxy 做负载均衡。 0027 本发明实施例提供的所述系统中的中心服务器 100, 虚拟机 200a、 虚拟机 200b、 虚拟机 200n, 虚拟化资源服务器 300, 均衡服务器 400 以及客户端 500a、 客户 说 明 书 CN 104243285 A 5 3/14 页 6 端 500b、 客户端 500n 可以应用到浏览器推送消息的场景。以客户端为浏览器为例, 客户端 500a、 客户端 50。

20、0b、 、 客户端 500n 均通过所述均衡服务器 400 与对应虚拟机建 立长连接, 所述中心服务器 100 可以通过获取每个虚拟机中长连接的数量, 得到所有长连 接的总数, 即得到已接入的客户端的数量。所述中心服务器 100 可以根据所述已接入的客 户端的数量设置所需运行的虚拟机的数量, 当所述所需运行的虚拟机的数量大于当前已运 行的虚拟机的数量时, 所述中心服务器 100 可以向所述虚拟化资源服务器 300 申请增加虚 拟机, 所述虚拟化资源服务器 300 可以通知服务器集群增加虚拟机以满足所需运行的虚拟 机的数量 ; 当所述所需运行的虚拟机的数量小于当前已运行的虚拟机的数量时, 所述中。

21、心 服务器100可以向所述虚拟化资源服务器300申请释放虚拟机, 所述虚拟化资源服务器300 可以通知服务器集群减少虚拟机以满足所需运行的虚拟机的数量。当所述中心服务器 100 接收到推送消息时, 所述中心服务器 100 可以将所述推送消息发送到虚拟机 200a、 虚拟机 200b、 虚拟机 200n, 并通知虚拟机 200a、 虚拟机 200b、 虚拟机 200n 将所述推 送消息发送到所述均衡服务器 400, 所述均衡服务器 400 再将所述推送消息推送到客户端 500a、 客户端 500b、 、 客户端 500n。由于所需运行的虚拟机的数量是动态变化的, 且虚 拟机是在物理服务器上运行的。

22、, 所以在所需运行的虚拟机的数量减少时, 同样可以减少需 要运行的物理服务器的数量, 从而可以节约系统资源。 0028 请参见图 2, 是本发明实施例提供的一种消息推送的方法的流程示意图, 所述方法 可以包括 : 0029 S101, 检测已接入的客户端的数量 ; 0030 具体的, 中心服务器可以统计当前已运行的虚拟机与客户端的长连接的数量, 即 计算每个已运行的虚拟机的长连接数量的总和, 该总和即为已接入的客户端的数量。在检 测已接入的客户端的数量之前, 所述客户端需要先与正在运行的虚拟机建立长连接, 该建 立过程可以为 : 客户端发送连接请求到虚拟机, 虚拟机根据该连接请求与该客户端建立。

23、长 连接, 客户端再向虚拟机发送安全认证消息, 若虚拟机验证通过, 则虚拟机将该客户端的标 识附加在该长连接上 ; 若虚拟机验证失败, 则虚拟机将断开该长连接。 0031 S102, 根据所述已接入的客户端的数量设置所需运行的虚拟机的数量, 所述所需 运行的虚拟机用于被所述客户端连接 ; 0032 具体的, 中心服务器可以根据所述已接入的客户端的数量计算所需运行的虚拟机 的数量, 所述所需运行的虚拟机的数量为刚好满足当前业务需求的数量。 其中, 所述已接入 的客户端的数量越大, 所需运行的虚拟机的数量越多, 反之, 所述已接入的客户端的数量越 小, 所需运行的虚拟机的数量越少, 由此可见, 所。

24、需运行的虚拟机的数量是动态变化的。 0033 当所计算出的所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时, 将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量, 例如, 当前已运 行的虚拟机的数量为 10, 即当前正在运行 10 台虚拟机, 若根据当前已接入的客户端的数量 计算出的所述所需运行的虚拟机的数量为 11 台, 则中心服务器可以将当前已运行的虚拟 机的数量扩容处理至 11 台, 即需要新增一台虚拟机。 0034 当所计算出的所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数 量时, 将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量, 例如, 。

25、当前 已运行的虚拟机的数量为 10, 即当前正在运行 10 台虚拟机, 若根据当前已接入的客户端的 说 明 书 CN 104243285 A 6 4/14 页 7 数量计算出的所述所需运行的虚拟机的数量为 8 台, 则中心服务器可以将当前已运行的虚 拟机的数量减容处理至 8 台, 即从当前正在运行的 10 台虚拟机中暂停 2 台虚拟机。 0035 假设当前运行有 2 台物理服务器, 每台物理服务器上均运行着 10 个虚拟机, 即一 共运行着 20 个虚拟机, 若根据当前已接入的客户端的数量计算出当前所需运行的虚拟机 的数量为5个, 则可以由其中一台物理服务器运行5个虚拟机, 另一台物理服务器则。

26、可以处 于休息状态, 从而可以节约系统资源。 0036 S103, 通过所述所需运行的虚拟机将推送消息推送到所述客户端 ; 0037 具体的, 当中心服务器接收到来自第三方系统的推送消息时, 可以将所述推送消 息发送至所述所需运行的虚拟机, 即将所述推送消息发送至扩容处理或减容处理后的正在 运行的虚拟机, 所述所需运行的虚拟机再将所述推送消息推送到所述客户端。 其中, 所述推 送消息可以包括目标客户端的类型, 因此, 所述所需运行的虚拟机在接收到所述推送消息 后, 可以根据所述目标客户端的类型遍历所有长连接, 以将所述推送消息推送给符合所述 目标客户端的类型的客户端。其中, 为了避免一次性将所。

27、述推送消息推送到过多的客户端 而导致第三方系统的压力过大, 可以设定推送最大值, 使得所述所需运行的虚拟机可以进 行多次推送, 每次推送的客户端数量不超过推送最大值, 例如, 假设推送最大值为 1 万, 所 述所需运行的虚拟机先将推送消息推送至 1 万个客户端, 隔 20s 后再向第二批客户端进行 推送。 0038 本发明实施例中, 通过检测已接入的客户端的数量, 可以设置出所需运行的虚拟 机的数量, 并通过所需运行的虚拟机将推送消息推送到客户端, 由于所需运行的虚拟机的 数量是动态变化的, 且虚拟机是在物理服务器上运行的, 所以在所需运行的虚拟机的数量 减少时, 同样可以减少需要运行的物理服。

28、务器的数量, 从而可以节约系统资源。 0039 请参见图 3, 是本发明实施例提供的另一种消息推送的方法的流程示意图, 所述方 法可以包括 : 0040 S201, 创建并启动用于连接客户端的初始虚拟机, 以使所述初始虚拟机与所述客 户端建立长连接 ; 0041 具体的, 当启动用于运行虚拟机的物理服务器时, 中心服务器可以通知物理服务 器创建初始虚拟机, 并启动初始虚拟机, 以使所述初始虚拟机与所述客户端建立长连接, 初 始虚拟机的数量可以根据以往所接入的客户端的数量进行设定。 0042 S202, 统计当前已运行的虚拟机与客户端的长连接的数量, 以得到已接入的客户 端的数量 ; 0043 。

29、具体的, 在启动了初始虚拟机之后, 就可以统计当前已运行的虚拟机与客户端的 长连接的数量, 即计算每个已运行的虚拟机的长连接数量的总和, 该总和即为已接入的客 户端的数量。 其中, 可以通过实时统计所接入的客户端的数量, 以实时对所需运行的虚拟机 的数量进行调整。在检测已接入的客户端的数量之前, 所述客户端需要先与正在运行的虚 拟机建立长连接, 该建立过程可以为 : 客户端发送连接请求到虚拟机, 虚拟机根据该连接请 求与该客户端建立长连接, 客户端再向虚拟机发送安全认证消息, 若虚拟机验证通过, 则虚 拟机将该客户端的标识附加在该长连接上 ; 若虚拟机验证失败, 则虚拟机将断开该长连接。 00。

30、44 S203, 根据所述已接入的客户端的数量计算所需运行的虚拟机的数量 ; 0045 具体的, 中心服务器可以根据所述已接入的客户端的数量计算所需运行的虚拟机 说 明 书 CN 104243285 A 7 5/14 页 8 的数量, 中心服务器可以根据公式 c (n+s/m)/s+1 计算出所需运行的虚拟机的数量, 其 中, n 为已接入的客户端的数量, s 为虚拟机能够创建的长连接的数量的最大值, m 为缓冲因 子, m 用于提前计算出所需运行的虚拟机的数量, 以避免在虚拟机中的长连接数量达到 s 时 才能计算出所需运行的虚拟机的数量, 若计算出 c 为整数, 则所需运行的虚拟机的数量为 。

31、c ; 若计算出 c 不为整数时, 则所需运行的虚拟机的数量为对 c 进行向下取整后的数值。例 如, 若计算出 c 为 3, 则所需运行的虚拟机的数量为 3 ; 若计算出 c 为 3.1, 则所需运行的虚 拟机的数量仍然为 3 ; 若计算出 c 为 3.9, 则所需运行的虚拟机的数量也仍然为 3。例如, 假 设虚拟机能够创建的长连接的数量的最大值 s 100( 万 ), 并设定缓冲因子 m 5, 则中心 服务器可以根据公式c(n+20)/100+1计算出所需运行的虚拟机的数量, 若当前的已接入 的客户端的数量 n 160( 万 ), 则可以计算出 c 2.8, 再对 2.8 进行向下取整得到 。

32、2, 即所 需运行的虚拟机的数量为2 ; 若当前的已接入的客户端的数量n180(万), 则可以计算出 c 3, 即所需运行的虚拟机的数量为 3。 0046 S204, 当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量时, 将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数量 ; 0047 具体的, 当所述所需运行的虚拟机的数量大于所述当前已运行的虚拟机的数量 时, 中心服务器可以将当前已运行的虚拟机的数量扩容处理为所述所需运行的虚拟机的数 量, 例如, 若当前已运行的虚拟机的数量为 3 个, 且此时所计算出的所需运行的虚拟机的数 量为 4 个, 则中心服务器可以通知物理服。

33、务器新增一个虚拟机, 以将投入运行的虚拟机的 数量扩容至 4 个。该扩容过程可以为 : 中心服务器可以向虚拟化资源服务器申请增加虚拟 机, 所述虚拟化资源服务器可以为上述图 1 对应实施例中的虚拟化资源服务器, 所述虚拟 化资源服务器与中心服务器可以为同一个服务器, 所述虚拟化资源服务器可以根据所记录 的每台物理服务器中正在运行的虚拟机以及处于待机状态的虚拟机, 选择出至少一个处于 待机状态的虚拟机, 并通知对应的物理服务器启动运行所述至少一个处于待机状态的虚拟 机, 使得投入运行的虚拟机的数量可以达到所计算出的所述所需运行的虚拟机的数量。若 物理服务器中不存在处于待机状态的虚拟机, 则物理服。

34、务器可以创建新的虚拟机, 并启动 运行所述新的虚拟机。其中, 所新增的虚拟机在进入服务后, 可以把 IP 等信息注册到中心 服务器。 0048 S205, 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时, 将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数量 ; 0049 具体的, 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量 时, 中心服务器可以将当前已运行的虚拟机的数量减容处理为所述所需运行的虚拟机的数 量, 例如, 若当前已运行的虚拟机的数量为 3 个, 且此时所计算出的所需运行的虚拟机的数 量为 2 个, 则中心服务器可以通知物理服务器暂停其中。

35、一个正在运行的虚拟机, 以将投入 运行的虚拟机的数量减容至 2 个。该减容过程可以为 : 中心服务器可以向虚拟化资源服务 器申请释放虚拟机, 所述虚拟化资源服务器可以为上述图 1 对应实施例中的虚拟化资源服 务器, 所述虚拟化资源服务器与中心服务器可以为同一个服务器, 所述虚拟化资源服务器 可以根据所记录的每台物理服务器中正在运行的虚拟机, 选择出至少一个正在运行的虚拟 机, 并通知对应的物理服务器暂停所述至少一个正在运行的虚拟机, 使得投入运行的虚拟 机的数量可以降低至所计算出的所述所需运行的虚拟机的数量。其中, 在暂停所述至少一 说 明 书 CN 104243285 A 8 6/14 页 。

36、9 个正在运行的虚拟机的期间, 需要将待暂停的所述至少一个正在运行的虚拟机中的长连接 断开, 并将断开的长连接重新连接至其他继续运行的虚拟机中, 并且新的长连接无法接入 到待暂停的所述至少一个正在运行的虚拟机中, 当待暂停的所述至少一个正在运行的虚拟 机中没有长连接时, 即可暂停所述至少一个正在运行的虚拟机。 其中, 所述虚拟化资源服务 器可以统计处于待机状态的虚拟机的数量, 当处于待机状态的虚拟机的数量大于预设数量 阈值时, 所述虚拟化资源服务器可以通知物理服务器删除部分处于待机状态的虚拟机。 0050 本发明实施例也可以对用于运行虚拟机的物理服务器进行扩容、 减容处理。由于 在物理服务器中。

37、运行的虚拟机的数量有上限值, 所以可以实时统计正在运行的虚拟机的数 量, 当正在运行的虚拟机的数量过多时, 中心服务器可以发出警报以通知需要扩容新的物 理服务器。例如, 有 2 台物理服务器, 每台物理服务器最多能够运行 10 个虚拟机, 即一共最 多能运行 20 个虚拟机, 假设警报阈值为 80, 若当前正在运行的虚拟机的数量为 16 个, 那 么由于16/200.880, 所以此时已达到了警报阈值, 即可发出警报以通知需要扩容新 的物理服务器。 0051 S206, 通过所述所需运行的虚拟机将推送消息推送到所述客户端 ; 0052 具体的, 当中心服务器接收到来自第三方系统的推送消息时, 。

38、可以将所述推送消 息发送至所述所需运行的虚拟机, 即将所述推送消息发送至扩容处理或减容处理后的正在 运行的虚拟机, 所述所需运行的虚拟机再将所述推送消息推送到所述客户端。 其中, 所述推 送消息可以包括目标客户端的类型, 因此, 所述所需运行的虚拟机在接收到所述推送消息 后, 可以根据所述目标客户端的类型遍历所有长连接, 以将所述推送消息推送给符合所述 目标客户端的类型的客户端。其中, 为了避免一次性将所述推送消息推送到过多的客户端 而导致第三方系统的压力过大, 可以设定推送最大值, 使得所述所需运行的虚拟机可以进 行多次推送, 每次推送的客户端数量不超过推送最大值, 例如, 假设推送最大值为。

39、 1 万, 所 述所需运行的虚拟机先将推送消息推送至 1 万个客户端, 隔 20s 后再向第二批客户端进行 推送。 0053 以客户端为浏览器为例, 由于在虚拟机中部署有使用 Netty 来做长连接的服务端 程序, 所以可以在浏览器内部使用 C 语音以将该浏览器设置为可以与虚拟机进行长连接的 Netty客户端。 当浏览器接收到虚拟机所推送的推送消息时, 浏览器可以将相关的C语音转 出调用 javascript 的一个函数, 该函数负责进行消息弹窗, 使用 javascript 的优点在于, 因为 javascript 是可以基于 html(HyperText Mark-up Language,。

40、 超文本标记语言 ) 的页 面展示, 所以对消息的展示、 UI(User Interface, 用户界面 ) 交互可以进行更灵活的定制, 并且无需再对浏览器进行升级方能实现。 0054 本发明实施例中, 通过检测已接入的客户端的数量, 可以设置出所需运行的虚拟 机的数量, 并通过所需运行的虚拟机将推送消息推送到客户端, 由于所需运行的虚拟机的 数量是动态变化的, 且虚拟机是在物理服务器上运行的, 所以在所需运行的虚拟机的数量 减少时, 同样可以减少需要运行的物理服务器的数量, 从而可以节约系统资源。 0055 进一步的, 再请参见图 4, 是本发明实施例提供的其中一种扩容方法的流程示意 图, 。

41、所述方法可以对应于上述图 3 对应实施例中的 S204, 所述方法可以包括 : 0056 S301, 当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时, 将当 前已运行的虚拟机的运行状态设置为待扩容状态 ; 说 明 书 CN 104243285 A 9 7/14 页 10 0057 具体的, 当所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数量时, 中 心服务器可以将当前已运行的虚拟机的运行状态设置为待扩容状态, 例如, 计算出的所需 运行的虚拟机的数量为 5, 当前已运行的虚拟机的数量为 4, 那么中心服务器可以将当前已 运行的 4 个虚拟机的运行状态设置为待扩容状态。 005。

42、8 S302, 检测所述当前已运行的虚拟机处于所述待扩容状态的持续时长 ; 0059 具体的, 中心服务器可以检测所述当前已运行的虚拟机处于所述待扩容状态的持 续时长, 即检测实时计算出的所述所需运行的虚拟机的数量大于当前已运行的虚拟机的数 量的持续时长。 0060 S303, 当所述持续时长大于预设的时长阈值时, 启动并运行第一数量的虚拟机, 所 述第一数量为所述所需运行的虚拟机的数量与所述当前已运行的虚拟机的数量的差值 ; 0061 具体的, 为了增强系统的鲁棒性, 以防止长连接数量在临界值之间变化造成系统 频繁振荡, 因此, 需要预设一个时长阈值, 当所述持续时长大于预设的时长阈值时, 。

43、才启动 并运行第一数量的虚拟机, 所述第一数量为所述所需运行的虚拟机的数量与所述当前已运 行的虚拟机的数量的差值。例如, 假设时长阈值为 5 分钟, 若当前已运行的虚拟机的数量 为 3 个, 且长连接数量达到 180 万以上时所计算出的所需运行的虚拟机的数量为 4 个, 则在 5 分钟内长连接数量始终维持在 180 万以上时, 就可以启动并运行一个新的虚拟机, 使得投 入运行的虚拟机数量达到 4 个。 0062 本发明实施例通过预设一个时长阈值, 可以增强系统的鲁棒性, 使得在扩容过程 中可以防止长连接数量在临界值之间变化造成系统频繁振荡。 0063 进一步的, 再请参见图 5, 是本发明实施。

44、例提供的其中一种减容方法的流程示意 图, 所述方法可以对应于上述图 3 对应实施例中的 S205, 所述方法可以包括 : 0064 S401, 当所述所需运行的虚拟机的数量小于所述当前已运行的虚拟机的数量时, 将当前已运行的虚拟机中第二数量的虚拟机的运行状态设置为待减容状态 ; 0065 具体的, 所述第二数量为所述当前已运行的虚拟机的数量与所述所需运行的虚拟 机的数量的差值。例如, 计算出的所需运行的虚拟机的数量为 3, 当前已运行的虚拟机的数 量为 5, 中心服务器可以根据虚拟机的编号选择 2 个虚拟机, 若 5 个正在运行的虚拟机的编 号分别为 1、 2、 3、 4、 5, 则可以将编号。

45、为 1 和 2 的虚拟机的运行状态设置为待减容状态。 0066 S402, 检测所述第二数量的虚拟机处于所述待减容状态的持续时长 ; 0067 具体的, 中心服务器可以检测所述第二数量的虚拟机处于所述待减容状态的持续 时长, 即检测实时计算出的所述所需运行的虚拟机的数量小于当前已运行的虚拟机的数量 的持续时长。 0068 S403, 当所述持续时长大于预设的时长阈值时, 通知所述待减容状态的虚拟机断 开所连接的客户端, 以使所述客户端重新连接到所述当前已运行的虚拟机中的非待减容状 态的虚拟机 ; 0069 具体的, 为了增强系统的鲁棒性, 以防止长连接数量在临界值之间变化造成系统 频繁振荡, 。

46、因此, 需要预设一个时长阈值, 当所述持续时长大于预设的时长阈值时, 才通知 所述待减容状态的虚拟机断开所连接的客户端, 以使所述客户端重新连接到所述当前已运 行的虚拟机中的非待减容状态的虚拟机。 所述中心服务器可以通知待减容状态的虚拟机在 数据协议头中标明该虚拟机将失效, 使得图 1 对应实施例中的均衡服务器在将客户端分配 说 明 书 CN 104243285 A 10 8/14 页 11 至虚拟机时, 所述均衡服务器不会将客户端连接至所述待减容状态的虚拟机。所述中心服 务器在通知所述待减容状态的虚拟机断开所连接的客户端时, 所述待减容状态的虚拟机可 以断开所连接的客户端, 并发送一条心跳消。

47、息到客户端以告知该客户端需要重新连接至非 待减容状态的虚拟机, 所述非待减容状态的虚拟机为所述当前已运行的虚拟机中除了所述 待减容状态的虚拟机以外的虚拟机, 即需要继续运行的虚拟机。例如, 假设时长阈值为 5 分 钟, 若当前已运行的虚拟机的数量为3个, 且长连接数量达到180万以下时所计算出的所需 运行的虚拟机的数量为 2 个, 则在 5 分钟内长连接数量始终维持在 180 万以下时, 就可以通 知 1 个待减容状态的虚拟机断开所连接的客户端, 以使所述客户端重新连接到另外 2 个虚 拟机。 0070 S404, 当检测到所述待减容状态的虚拟机中不存在具有连接关系的客户端时, 将 所述待减容。

48、状态的虚拟机暂停或删除 ; 0071 具体的, 所述待减容状态的虚拟机是依次断开所建立的长连接, 当检测到所述待 减容状态的虚拟机中不存在具有连接关系的客户端时, 中心服务器就可以通知用于运行虚 拟机的物理服务器将所述待减容状态的虚拟机暂停或删除。 当存在过多处于待机状态的虚 拟机时, 物理服务器就可以直接将所述待减容状态的虚拟机删除, 以节约存储资源。 0072 本发明实施例通过对虚拟机进行减容处理, 可以在所需运行的虚拟机的数量减少 时, 同样可以减少需要运行的物理服务器的数量, 从而可以节约系统资源。 0073 请参见图 6, 是本发明实施例提供的一种消息推送服务器 1 的结构示意图, 。

49、所述消 息推送服务器 1 可以为上述图 1 至图 5 对应实施例中所提到的中心服务器, 所述消息推送 服务器 1 可以包括 : 预设模块 40、 检测模块 10、 设置模块 20、 推送模块 30 ; 0074 所述预设模块 40, 用于创建并启动用于连接客户端的初始虚拟机, 以使所述初始 虚拟机与所述客户端建立长连接 ; 0075 具体的, 当启动用于运行虚拟机的物理服务器时, 所述预设模块 40 可以通知物理 服务器创建初始虚拟机, 并启动初始虚拟机, 以使所述初始虚拟机与所述客户端建立长连 接, 初始虚拟机的数量可以根据以往所接入的客户端的数量进行设定。 0076 所述检测模块 10, 用于检测已接入的客户端的数量 ; 0077 具体的, 在启动了初始虚拟机之后, 所述检测模块 10 可以统计当前已运行的虚拟 机与客户端的长连接的数量, 即计算每个已运行的虚拟机的长连接数量的总和, 该总和即 为已。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1