1.本发明涉及大数据的数据流量控制技术领域,具体涉及自动扩缩容的方法及系统。
背景技术:2.目前,直播类应用都面临异常突发流量时的服务可用性保障问题。如流量明星突然开 播、微博官宣、热点事件等,这类流量的特点是流量突发性较高,增速较快。
3.现有技术多是通过运营提前报备,技术预先手动弹性扩容的方式提升系统容量,活动 结束后手动缩容来控制成本。
4.然而,运营提前报备,技术就会支持预先扩容,如果是非报备热点直播,则可能会因 扩容不及时而导致可用性问题。而且,活动结束后,需要手动缩容,导致扩缩容时间可能 不够准确,会有服务器成本的浪费现象。
技术实现要素:5.本发明要解决的技术问题在于,克服现有的技术的不足,提供自动扩缩容的方法及系 统,能够自动进行扩容和缩容,不仅具有及时性,而且无需人工干预。
6.为达到上述技术目的,一方面,本发明提供的自动扩缩容的方法,所述方法包括:
7.实时采集待监控应用的物理机集群的负载和流量数据;所述物理机集群由执行同一应 用功能的固定数量的服务器组成;
8.判断所述物理机集群的负载和流量数据是否满足预设的扩缩容条件;
9.若物理机集群的负载和流量数据满足预设的扩缩容条件,则对所述物理机集群对应的 弹性机集群执行相应的扩缩容操作,所述弹性机集群由执行同一应用功能的若干可弹性增 减的服务器组成。
10.另一方面,本发明提供的自动扩缩容的系统,其特征在于,包括:
11.监控单元,用于实时采集待监控应用的物理机集群的负载和流量数据;所述物理机集 群由执行同一应用功能的固定数量的服务器组成;
12.判断单元,用于判断所述物理机集群的负载和流量数据是否满足预设的扩缩容条件;
13.扩缩容单元,用于若物理机集群的负载和流量数据满足预设的扩缩容条件,则对所述 物理机集群对应的弹性机集群执行相应的扩缩容操作,所述弹性机集群由执行同一应用功 能的若干可弹性增减的服务器组成。
14.在本发明中,根据物理机集群的负载和流量数据,来对弹性机集群进行扩容和缩容操 作,达到系统自动进行扩容和缩容。本发明对应未知突发流量,实现自动扩缩容,保障了 集群的稳定性;自动缩容,实现了时效性,避免了集群中服务器成本的浪费。
量突然增加,则另外需要40台服务器b和8台服务器a一起执行xx应用的功能,才能满 足xx应用的正常运作,则该40台服务器b就是弹性机集群。
34.对所述物理机集群对应的弹性机集群执行相应的扩缩容操作,具体包括:
35.1031a、若所述物理机集群的负载和流量数据满足预设的扩容条件;
36.则封装扩容参数,并调用应用容器引擎的扩缩容接口,通过应用容器引擎在弹性机集 群中增加预设数量的服务器。
37.在本实施例中,应用容器引擎为dcp系统(docker容器平台)。docker是一个开源 的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后 发布到任何流行的linux或windows机器上,也可以实现虚拟化。容器是完全使用沙箱 机制,相互之间不会有任何接口。
38.对所述物理机集群对应的弹性机集群执行相应的扩缩容操作,具体包括:
39.1031b、若所述物理机集群的负载和流量数据满足预设的缩容条件;则判断弹性机集 群中服务器的数量是否为零;
40.1032b、若不为零,则封装缩容参数,调用应用容器引擎的扩缩容接口,通过应用容 器引擎将弹性机集群中的服务器全部删除。
41.在本实施例中,缩容时利用的负载和流量数据与扩容时利用的负载和流量数据来源相 同。所述负载和流量数据,包括:中央处理器(cpu)利用率、每秒查询率(qps)、网 卡流量和磁盘输入/输出(io)。
42.在本实施例中,物理机集群中,各服务器为固定服务器,用于日常执行应用功能。弹 性机集群中的弹性服务器是在预定条件下加入,与物理机集群执行同一应用功能的服务 器,即为扩容。为了节省服务器成本,需要在扩容之后进行缩容。由于维持日常应用功能, 仅需要物理机集群的各固定服务器即可,所以在维持日常应用功能时,弹性机集群中服务 器的数量为零。判断弹性服务器的数量的目的就是检查前端机是否需要缩容。
43.在本实施例中,将弹性机集群中的弹性服务器删除,即可实现前端机的缩容。接上例, 经过扩容后,前端机由8台服务器a增加到8台服务器a和40台服务器b,一共48台服 务器。当突发事件消除,xx应用的访问量恢复到日常流量,经过缩容操作后,弹性机集群 中40台服务器b全部删除,前端机又恢复到只有8台服务器a的物理机集群。
44.对所述物理机集群对应的弹性机集群执行相应的扩缩容操作之前,还包括:
45.104、若所述物理机集群的负载和流量数据满足预设的扩容条件,则向外部控制中心 发送扩容预警信息;若所述物理机集群的负载和流量数据满足预设的缩容条件,则向外部 控制中心发送缩容预警信息。
46.在本实施例中,扩容预警信息可以通过邮件或者工作沟通平台来发送,提醒工作人员, 前端机需要扩容和/或缩容。
47.如图2所示,本实施例所述的自动扩缩容的系统,所述系统包括:
48.监控单元11,用于实时采集待监控应用的物理机集群的负载和流量数据;所述物理机 集群由执行同一应用功能的固定数量的服务器组成;
49.判断单元12,用于判断所述物理机集群的负载和流量数据是否满足预设的扩缩容条 件;
50.扩缩容单元13,用于若物理机集群的负载和流量数据满足预设的扩缩容条件,则
对所 述物理机集群对应的弹性机集群执行相应的扩缩容操作,所述弹性机集群由执行同一应用 功能的若干可弹性增减的服务器组成。
51.进一步,所述判断单元12,具体包括:
52.扩容判断子单元121,用于判断所述物理机集群的负载和流量数据是否超过预设的扩 容阈值,若是,则判定所述物理机集群的负载和流量数据满足预设的扩容条件;
53.和/或,
54.缩容判断子单元122,用于判断所述物理机集群的负载和流量数据是否不及预设的缩 容阈值,若是,则判定所述物理机集群的负载和流量数据满足预设的缩容条件。
55.进一步,所述扩缩容单元13,具体包括:
56.扩容子单元131,用于若所述物理机集群的负载和流量数据满足预设的扩容条件;则 封装扩容参数,并调用应用容器引擎的扩缩容接口,通过应用容器引擎在弹性机集群中增 加预设数量的服务器。
57.进一步,所述扩缩容单元13,具体包括:
58.缩容子单元,用于若所述物理机集群的负载和流量数据满足预设的缩容条件;
59.则判断弹性机集群中服务器的数量是否为零;
60.若不为零,则封装缩容参数,调用应用容器引擎的扩缩容接口,通过应用容器引擎将 弹性机集群中的服务器全部删除。
61.进一步,所述扩缩容单元13,还用于:
62.在对所述物理机集群对应的弹性机集群执行相应的扩缩容操作之前,若所述物理机集 群的负载和流量数据满足预设的扩容条件,则向外部控制中心发送扩容预警信息;若所述 物理机集群的负载和流量数据满足预设的缩容条件,则向外部控制中心发送缩容预警信 息。
63.进一步,所述负载和流量数据包括:中央处理器cpu利用率、每秒查询率qps数据。
64.以下结合应用实例对本发明实施例上述技术方案进行详细说明:
65.如图3所示,本实施例所述的自动扩缩容的方法,包括:
66.step1、监控系统通过zabbix采集前端机中物理机集群的负载数据;所述负载数据, 包括cpu利用率、qps、网卡流量、磁盘io等;
67.所述监控系统对应的是监控单元11。
68.step2、扩缩容系统从zabbix中获取物理机集群的cpu利用率和qps;
69.所述扩缩容系统的功能包括判断单元12和扩缩容单元13的功能。
70.step3、扩缩容系统判断cpu利用率和qps数据是否超过了预设扩容阈值,若是,则 执行step5;
71.step4、扩缩容系统判断弹性机集群中是否有未缩容的弹性服务器,并且物理机集群的 cpu利用率和qps数据小于预设缩容阈值,若是,则执行step6;
72.step5、扩缩容系统封装扩容参数并调用dcp的扩缩容接口进行扩容操作;
73.step6、扩缩容系统封装缩容参数并调用dcp的扩缩容接口进行缩容操作。
74.本实施例所述的自动扩缩容的方法具有以下有益效果:
75.1、无需人工干预、自动采集负载,自动进行扩缩容;
76.2、能够应对未知突发流量的扩容,保障了前端机的稳定性;
77.3、自动扩缩容更有时效性,及时的缩容可以避免服务器成本的浪费。
78.本发明实施例提供了自动扩缩容的系统,可以实现上述提供的方法实施例,具体功能 实现请参见方法实施例中的说明,在此不再赘述。
79.应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏 好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下 得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要 限于所述的特定顺序或层次。
80.在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应 该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清 楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那 样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书 特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
81.为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了 描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文 定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因 此,本公开并不限于本文给出的实施例,而是与本申请公开的原理和新颖性特征的最广范 围相一致。
82.上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或 方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可 以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保 护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包 含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词 所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非 排它性的或者”。
83.本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为 清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软 件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的 应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保 护的范围。
84.本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字 信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门 或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用 处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微 控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处 理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似 的配置来实现。
85.本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模 块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom 存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd
‑
rom或本领域中其它任意 形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒 介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。 处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和 存储媒介也可以设置于用户终端中的不同的部件中。
86.在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、 固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒 介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑 存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是 任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不 限于ram、rom、eeprom、cd
‑
rom或其它光盘存储、磁盘存储或其它磁性存储装置, 或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或 特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读 媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光 纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被 包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射 盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光 学复制数据。上述的组合也可以包含在电脑可读媒介中。
87.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细 说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的 保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包 含在本发明的保护范围之内。