CN107959705A - 流式计算任务的分配方法和控制服务器 - Google Patents

流式计算任务的分配方法和控制服务器 Download PDF

Info

Publication number
CN107959705A
CN107959705A CN201610908946.7A CN201610908946A CN107959705A CN 107959705 A CN107959705 A CN 107959705A CN 201610908946 A CN201610908946 A CN 201610908946A CN 107959705 A CN107959705 A CN 107959705A
Authority
CN
China
Prior art keywords
streaming computing
cluster
server cluster
streaming
task
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.)
Granted
Application number
CN201610908946.7A
Other languages
English (en)
Other versions
CN107959705B (zh
Inventor
张钊
李名浩
胡四海
陈友林
王光炼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Tmall Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610908946.7A priority Critical patent/CN107959705B/zh
Priority to TW106127334A priority patent/TWI755417B/zh
Priority to PCT/CN2017/105360 priority patent/WO2018072618A1/zh
Publication of CN107959705A publication Critical patent/CN107959705A/zh
Application granted granted Critical
Publication of CN107959705B publication Critical patent/CN107959705B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请提供了流式计算任务的分配方法和控制服务器,其中,流式计算任务的分配方法应用于与流式计算中心服务器集群和流式计算单元服务器集群相连的控制服务器上;该方法包括:将流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群;判断目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,如果是,则将流式计算任务中未执行完的任务分配至候选流式计算中心服务器集群。采用本申请实施例可以实现当一个流式计算中心服务器集群或流式计算单元服务器集群出现异常的时候,能够在其他正常的流式计算中心服务器集群上继续执行未执行完的任务,保证流式计算任务的顺利执行。

Description

流式计算任务的分配方法和控制服务器
技术领域
本申请涉及流式计算技术领域,特别涉及一种流式计算任务的分配方法和控制服务器,一种流式计算任务的执行方法和流式计算中心服务器集群,以及,一种流式计算***,一种异地多活***。
背景技术
在流式计算中,无法确定数据的到来时刻和到来顺序,也无法将全部数据存储起来,因此,涉及的服务器不再进行流式数据的存储,而是当流动的数据到来后在内存中直接进行数据的实时计算。随着流式计算在互联网大数据时代的快速发展,对流式数据的实时性、质量、服务稳定性和可用性,都有了越来越高的要求,因此,对传统分布式web服务***也是一个挑战。由于流式计算***处理的实时计算和读取的数据量巨大,流式计算任务分布在多个地方时有很多困难,例如,去重统计结果的异地实时合并,如何保证多个地方的数据一致性,数据来源的地域不可控,等等,因此,如何实现对流式计算的多地域协同,且实时容灾是非常必要的。
现有技术在进行流式任务分配的时候,通常采用异地冷备的方式进行,即在另外一个地域部署一个闲置服务器,以便在一个地域的服务不可用时,临时把流式计算任务恢复到另外一个地域的闲置服务器上。但是该闲置服务器平时的大量时间都处于空转状态,这就造成大量的***资源浪费的问题。还有另外一种方式,可以将服务器部署在单个机房或者同地域的多个机房,多个机房数据同时存储在一个存储***来实现流式计算。但是这也会导致一旦这个地域的网络不可用(例如出现意外情况,光缆被工程机械挖断),该地域的存储***不可用,或者,该地域的机器资源已经到了扩容上限无法继续扩容,等等,都会导致流式计算***不可用,无法保证流式计算任务的顺利分配和后续执行。
发明内容
基于此,本申请提供了一种流式计算任务的分配方法和一种流式计算任务的执行方法,用以采用一个控制服务器来对各流式计算任务进行统一分配的方式,由部署在多地的各流式计算中心服务器集群和各流式计算单元服务器集群来执行不同的流式计算任务,各流式计算中心服务器集群预留有预设计算资源,且各中心存储集群之间进行数据同步,并且,各流式计算单元服务器集群的单元存储集群中的数据也分别同步至各中心存储集群上。基于此,在某个流式计算单元服务器集群或流式计算中心服务器集群出现异常的时候,能够将正在执行的流式计算任务还未执行完的那部分任务重新分配至其他地方的某个流式计算中心服务器集群上执行,以实现流式计算任务能够在异地快速的恢复和正常执行,并且不需要配置闲置服务器,也节省了***资源。
本申请还提供了一种控制服务器、一种流式计算中心服务器集群和一种流式计算***,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种计算任务分配方法,该方法应用于与流式计算中心服务器集群和流式计算单元服务器集群相连的控制服务器上,所述流式计算中心服务器集群预留有预设比例的计算资源;该方法包括:
响应于接收到流式计算任务,将所述流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群;
在所述目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,如果是,则将所述流式计算任务中未执行完的任务,分配至候选流式计算中心服务器集群。
其中,该方法还包括:
所述控制服务器周期性的分别向所述流式计算中心服务器集群和流式计算单元服务器集群发送心跳消息,所述心跳消息用于:检测所述控制服务器和所述流式计算中心服务器集群之间是否能够通信,以及,检测所述控制服务器和所述流式计算单元服务器集群之间是否能够通信;
相应的,所述判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,具体为:
判断在预设反馈时间内所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否未反馈心跳响应。
其中,所述将所述流式计算任务中的未执行完的任务分配至候选流式计算中心服务器集群,包括:
所述控制服务器实时获取所述流式计算中心服务器集群的负载情况;
所述控制服务器依据所述负载情况,将所述流式计算任务中未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
其中,所述流式计算中心服务器集群具有中心存储集群,各流式计算中心服务器集群之间的中心存储集群之间同步中间状态数据和中间结果数据,各流式计算单元服务器集群向各流式计算中心服务器集群的中心存储集群同步中间状态数据和中间结果数据;所述方法还包括:
控制服务器将各流式计算任务的执行状态和配置信息存储至控制数据库中;所述执行状态用于表示:各流式计算任务在对应的流式计算中心服务器集群或流式计算单元服务器集群上已执行部分;所述配置信息用于表示:各流式计算任务与执行该流式计算任务的流式计算中心服务器集群之间的对应关系,或,各流式计算任务与执行该流式计算任务的流式计算单元服务器集群之间的对应关系;
相应的,所述将所述流式计算任务中未执行完的任务分配至当前负载最小的流式计算中心服务器集群,包括:
所述控制服务器依据所述控制数据库中存储的执行状态和配置信息,计算所述流式计算任务中未执行完的任务;
所述控制服务器将所述未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
本申请还提供了一种流式计算任务的执行方法,该方法应用于流式计算***中的任意一个预留有预设计算资源的当前流式计算中心服务器集群上,所述流式计算***包括:流式计算中心服务器集群、流式计算单元服务器集群和控制服务器;所述流式计算中心服务器集群具有中心存储集群,各中心存储集群之间同步中间状态数据和中间结果数据,各流式计算单元服务器集群的单元存储集群向各中心存储集群同步中间状态数据和中间结果数据;该方法包括:
响应于所述控制服务器在所述流式计算***中的其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时、重新分配的流式计算任务中未执行完的任务,所述当前流式计算中心服务器集群从中心存储集群中,获取执行所述未执行完的任务所需的中间状态数据和中间结果数据;
所述当前流式计算中心服务器集群利用所述预设计算资源、中间状态数据和中间结果数据执行所述未执行完的任务。
其中,该方法还包括:
响应于所述控制服务器周期性发送心跳消息,所述当前流式计算中心服务器集群周期性向所述控制服务器反馈心跳响应;所述心跳消息用于检测所述控制服务器与所述当前流式计算中心服务器集群之间是否能够通信。
其中,该方法还包括:
所述当前流式计算中心服务器集群检测向控制服务器反馈心跳响应失败的连续次数是否超过预设次数阈值,如果是,则所述当前流式计算中心服务器集群停止所述未执行完的任务的执行。
本申请还提供了一种控制服务器,所述控制服务器与流式计算中心服务器集群和流式计算单元服务器集群相连,所述流式计算中心服务器集群中预留有预设比例的计算资源;该控制服务器包括:
第一分配单元,用于响应于接收到流式计算任务,将所述流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群;
判断单元,用于在所述目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况;
第二分配单元,用于在所述判断单元的结果为是的情况下,将所述流式计算任务中未执行完的任务分配至候选流式计算中心服务器集群。
其中,该控制服务器还包括:
发送单元,用于周期性的分别向所述流式计算中心服务器集群和流式计算单元服务器集群发送心跳消息,所述心跳消息用于:检测所述控制服务器和所述流式计算中心服务器集群之间是否能够通信,以及,检测所述控制服务器和所述流式计算单元服务器集群之间是否能够通信;
相应的,所述判断单元,具体用于:判断在预设反馈时间内所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否未反馈心跳响应。
其中,所述第二分配单元包括:
获取负载子单元,用于实时获取所述流式计算中心服务器集群和流式计算单元服务器集群的负载情况;
第一分配子单元,用于依据各流式计算中心服务器集群的负载情况,将所述流式计算任务中未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
其中,所述流式计算中心服务器集群具有中心存储集群,各流式计算中心服务器集群之间的中心存储集群之间同步中间状态数据和中间结果数据,且各流式计算单元服务器集群向各流式计算中心服务器集群的中心存储集群同步中间状态数据和中间结果数据;所述服务器还包括:
存储单元,用于将各流式计算任务的执行状态和配置信息存储至控制数据库中;所述执行状态用于表示:各流式计算任务在对应的流式计算中心服务器集群或流式计算单元服务器集群上已执行部分;所述配置信息用于表示:各流式计算任务与执行该流式计算任务的流式计算中心服务器集群之间的对应关系,或,各流式计算任务与执行该流式计算任务的流式计算单元服务器集群之间的对应关系;
所述第一分配子单元,包括:
计算子单元,用于依据所述控制数据库中存储的执行状态和配置信息,计算所述流式计算任务中未执行完的任务;
第二分配子单元,用于将所述未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
本申请还提供了一种流式计算中心服务器集群,该流式计算中心服务器集群预留有预设计算资源,所述流式计算中心服务器集群与控制服务器相连,所述控制服务器还与流式计算单元服务器集群相连;所述流式计算中心服务器集群具有中心存储集群,中心存储集群之间同步中间状态数据和中间结果数据,流式计算单元服务器集群的单元存储集群向中心存储集群同步中间状态数据和中间结果数据;包括:
获取数据单元,用于响应于所述控制服务器在所述流式计算***中的其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时、重新分配的流式计算任务中未执行完的任务,从中心存储集群中获取执行所述未执行完的任务所需的中间状态数据和中间结果数据;
执行任务单元,用于利用所述预设计算资源、中间状态数据和中间结果数据执行所述未执行完的任务。
其中,该流式计算中心服务器集群还包括:
反馈单元,用于响应于所述控制服务器周期性的发送心跳消息,周期性的向所述控制服务器反馈心跳响应;所述心跳消息用于检测所述控制服务器与所述当前流式计算中心服务器集群之间是否能够通信。
其中,该流式计算中心服务集群还包括:
检测单元,用于检测向控制服务器发送心跳响应失败的连续次数是否超过预设次数阈值;
停止单元,用于在所述检测单元的结果为是的情况下,停止所述未执行完的任务的执行。
本申请还提供了一种流式计算***,所述流式计算***包括:流式计算中心服务器集群和流式计算单元服务器集群,控制服务器;以及,
与所述流式计算中心服务器集群对应的中心存储集群,与所述控制服务器对应的控制数据库,和,与所述流式计算单元服务器集群对应的单元存储集群。
本申请还提供了一种异地多活***,所述异地多活***包括:第一流式计算中心服务器集群,多个流式计算单元服务器集群,以及控制服务器;其中,所述第一流式计算中心服务器集群为前述的流式计算中心服务器集群,所述控制服务器为前述的控制服务器;以及,
所述多个流式计算单元服务器集群分别对应部署于多个第二地理位置;所述第一流式计算中心服务器集群部署于第一地理位置,所述第二地理位置与所述第一地理位置是不同的地理位置。其中,所述异地多活***还包括:第二流式计算中心服务器集群,所述第二流式计算中心服务器集群与所述第一流式计算中心服务器集群部署在不同的第一地理位置。
本申请还提供了一种异地多活***,包括:
第一流式计算中心服务器,至少用于对外提供计算资源,其中,第一流式计算中心服务器包括第一中心存储单元;
第二流式计算中心服务器,至少用于对外提供计算资源,其中,第二流式计算中心服务器包括第二中心存储单元;
其中,所述第一流式计算中心服务器和第二流式计算中心服务器基于统一的负载均衡策略完成负载均衡,所述第一中心存储单元和第二中心存储单元相互热备;
其中,对于在所述第一流式计算中心服务器上运行的第一流式计算任务,当所述第一流式计算中心服务器出现故障无法对外提供计算资源时,终止在第一流式计算中心服务器上运行,并且,基于所述第二流式计算中心服务器的第二中心存储单元的中间状态数据和中间结果数据,在所述第二流式计算中心服务器上继续运行所述第一流式计算任务。
与现有技术相比,本申请包括以下优点:
在本申请实施例中,本申请通过一个控制服务器来对部署在多地的各流式计算中心服务器集群和流式计算单元服务器集群所执行的任务进行统一分配,实现流式计算任务的统一调度和分配,并且利用各中心存储集群之间实时同步数据的方式,实现了部署在多地的流式计算中心服务器集群或流式计算单元服务器集群同时计算同一个流式计算任务的各部分或不同的流式计算任务的功能。采用本申请实施例,当一个地方的流式计算中心服务器集群或流式计算单元服务器集群出现异常时,能快速从异地的流式计算中心服务器集群恢复正在执行的流式计算任务,这样既能保证***资源平时不空置,也保证了流式计算任务的异地多活,即在本地出现异常情况下也能使流式计算任务在异地能迅速恢复从而达到流式计算服务的高可用性。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请在实际应用之后场景架构图;
图2是本申请的流式计算任务的分配方法实施例的流程图;
图3是本申请的流式计算任务的执行方法实施例的流程图;
图4是本申请的具体例子的方法流程图;
图5是本申请的控制服务器实施例的结构框图;
图6是本申请的流式计算中心服务器集群实施例的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了方便本领域技术人员对本申请中的技术术语有进一步的理解,下面将技术术语进行解释和介绍。
服务器集群,就是指将一个或多个服务器集中起来一起进行同一种服务,在客户端看来就像是只有一个服务器。服务器集群可以利用多个计算机进行并行计算从而获得很高的计算速度,也可以用多个计算机做备份,从而使得任何一个计算机坏了整个服务器集群还是能正常运行。
流式计算中心服务器集群,指的是用于执行流式计算任务的服务器集群,这些服务器集群需要预留有预设计算资源,并将执行流式计算任务过程中产生的中间结果数据和中间状态数据存储至中心存储集群中。
流式计算单元服务器集群,也指的是用于执行流式计算任务的服务器集群,并将执行流式计算任务过程中产生的中间结果数据和中间状态数据存储至单元存储集群中,只是这些服务器集群可以不预留预设计算资源。
存储集群,是将一台或多台存储设备中的存储空间聚合成一个能够给服务器集群提供统一访问接口和管理界面的存储池,服务器集群可以通过该统一访问接口透明地访问和利用所有存储设备上的磁盘,因此,存储集群可以充分发挥存储设备的性能和磁盘利用率。
中心存储集群,是用于为流式计算中心服务器集群提供存储空间的存储集群;单元存储集群,是用于为流水计算单元服务器集群提供存储空间的存储集群。
参考图1所示,为本申请中的流式计算任务的分配方法在实际应用中的场景架构图。在图1所示的一个流式计算***中,可以配置一个控制服务器101,m个流式计算中心服务器集群102和n个流式计算单元服务器集群103。其中,m和n分别为大于1的整数。优选的,流式计算中心服务器集群102可以配置两个。控制服务器101可以向各流式计算中心服务器集群102和流式计算单元服务器集群103分配流式计算任务,其中,各个流式计算中心服务器集群102上均可以预留一部分计算资源,流式计算单元服务器集群103上无需预留计算资源,基于此,当该流式计算***中的一个流式计算中心服务器集群102或流式计算单元服务器集群103异常的时候,控制服务器101可以检测到该异常进而将该异常的流式计算中心服务器集群102或流式计算单元服务器集群103未执行完的任务,重新分配给其他正常的候选流式计算中心服务器集群102执行。需要说明的是,因为各流式计算单元服务器集群103不会预留计算资源,因此,控制服务器101在重新分配未执行完的任务的时候,只会选择正常的流式计算中心服务器集群102而不会选择流式计算单元服务器集群103作为候选流式计算中心服务器集群。
此外,在图1中,为了保证流式计算任务在不同的流式计算中心服务器集群102之间或者从流式计算单元服务器集群103到流式计算中心服务器集群102切换的时候,能够同步执行,各流式计算中心服务器集群102相连的各个中心存储集群104之间需要进行中间状态数据和中间结果数据的同步,即各个中心存储集群104之间实时同步中间状态数据和中间结果数据。而流式计算单元服务器集群103各自连接的单元存储集群105需要将中间状态数据和中间结果数据同步至各个中心存储集群104上,可以不在各个单元存储集群之间进行同步,只同步至各中心存储集群104即可,这样就减少了中间状态数据和中间结果数据在各个单元存储集群105之间同步时耗费的资源。控制服务器101还连接有控制数据库,控制数据库可以存储控制服务器101在分配任务时的配置信息和执行任务时产生的执行状态。其中,执行状态可以表示出各流式计算任务在对应的流式计算中心服务器集群或流式计算单元服务器集群上执行时已经执行完成的已执行部分;所述配置信息可以表示:各流式计算任务与执行该流式计算任务的流式计算中心服务器集群之间的对应关系,或,各流式计算任务与执行该流式计算任务的流式计算单元服务器集群之间的对应关系。
可以理解的是,各流式计算中心服务器集群102可以部署在相同的第一地理位置,优选的,也可以部署在不同的第一地理位置。其中,第一地理位置可以是城市,包括直辖市、省会城市、地级市、县级市等,例如,北京,杭州,南京等。例如,一个流式计算中心服务器部署在杭州,另外一个六件中心服务器也部署在杭州,或者,一个流式计算中心服务器集群部署在杭州,另外一个流式计算中心服务器集群部署在南京或者上海等与杭州不同的地理位置。各流式计算单元服务器集群103也可以部署在不同的第二地理位置,包括直辖市、省会城市、地级市、县级市等,例如,苏州、厦门、深圳等。其中,第一地理位置用于表示流式计算中心服务器集群102部署的地理位置,而第二地理位置用于表示流式计算单元服务器集群部署的地理位置。在实际应用中,无论各流式计算中心服务器集群和流式计算单元服务器集群分别部署在哪些不同的地理位置,都由控制服务器101为其分配流式计算任务。
在介绍完应用场景之后,参考图2,示出了本申请一种基于图1所示的应用场景进行流式计算任务分配的方法实施例的流程,本实施例应用于图1中的控制服务器上,本实施例可以包括以下步骤:
步骤201:控制服务器周期性的分别向所述流式计算中心服务器集群和流式计算单元服务器集群发送心跳消息。
在本实施例中,控制服务器和各个流式计算中心服务器集群以及各流式计算单元服务器集群都相连,并且在控制服务器和各个流式计算中心服务器集群之间,以及,控制服务器和各个流式计算单元服务器集群之间建立心跳消息反馈机制。基于此,控制服务器周期性的向各个流式计算中心服务器集群和各个流式计算单元服务器集群,分别发送心跳消息,该心跳消息用于检测所述控制服务器和所述流式计算中心服务器集群之间是否能够正常通信,以及,检测所述控制服务器和所述流式计算单元服务器集群之间是否能够正常通信。通过各个流式计算中心服务器集群和各个流式计算单元服务器集群是否正常反馈了心跳响应,可以确认各流式计算中心服务器集群和流式计算单元服务器集群是否能正常通信,如果不能正常通信,通常情况下就说明流式计算中心服务器集群或流式计算单元服务器集群出现了异常情况,不能再正常执行任务。
具体的,如果控制服务器能够正常接收到各流式计算中心服务器集群或流式计算单元服务器集群反馈的心跳响应,则认为该流式计算中心服务器集群和流式计算单元服务器集群能够和控制服务器正常通信,即没有出现异常情况,反之则认为流式计算中心服务器集群和流式计算单元服务器集群不能够和控制服务器正常通信,即出现了异常情况。其中,发送心跳消息的周期可以是心跳时长,例如1秒钟。当然本领域技术人员可以自主设置心跳时长。
步骤202:响应于接收到流式计算任务,控制服务器将所述流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群。
在实际应用中,控制服务器可以由***管理员操控,控制服务器可以提供人机交互界面由***管理员输入任务指令,并按照***管理员输入的任务指令将流式计算任务发送给***管理员指定的流式计算中心服务器集群或流式计算中心(即目标流式计算中心服务器集群或目标流式计算单元服务器集群)。当然,在实际应用中,也可以采用其他方式来确定目标流式计算中心服务器集群或目标流式计算单元服务器集群,例如,控制服务器按照轮训的方式随机确定一个流式计算中心服务器集群作为目标流式计算中心服务器集群,或者随机确认一个流式计算单元服务器集群作为目标流式计算单元服务器集群。
在步骤202和步骤204之间,可选的,还可以执行步骤203:
步骤203:控制服务器将各流式计算任务的执行状态和配置信息存储至控制数据库中。
在本实施例中,可选的,控制服务器在分配流式计算任务后,可以将各个流式计算任务的配置信息存储至与其相连的控制数据库中,例如,各流式计算任务与执行该流式计算任务的流式计算中心服务器集群之间的对应关系,或,各流式计算任务与执行该流式计算任务的流式计算单元服务器集群之间的对应关系。此外,控制服务器还可以将各流式计算任务在流式计算中心服务器集群或流式计算单元服务器集群上的执行状态存储在控制数据库中,其中,执行状态可以表示:各流式计算任务在对应的流式计算中心服务器集群或流式计算单元服务器集群上执行时已经执行完成的已执行部分。
步骤204:在所述目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,如果是,则进入步骤205,如果没有,则继续执行本步骤进行判断。
控制服务器在分配了流式计算任务之后,在目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,控制服务器实时检测自己与该目标流式计算中心服务器集群或目标流式计算单元服务器集群之间的连接是否正常,如果正常则说明目标流式计算中心服务器集群或目标流式计算单元服务器集群没有出现异常情况。而如果连接不正常,例如,控制服务器在预设反馈时间内收不到目标流式计算中心服务器集群或目标流式计算单元服务器集群反馈的心跳响应,则说明连接不正常,在这种情况下,可能是目标流式计算中心服务器集群或目标流式计算单元服务器集群出现了异常情况。
可以理解的是,如果目标流式计算单元服务器集群只包括一个流式计算单元服务器,则该流式计算单元服务器出现异常就需要进入步骤205;而对于目标流式计算单元服务器集群包括多个流式计算单元服务器的情况,只有该目标流式计算单元服务器集群的所有流式计算单元服务器都出现异常的情况,控制服务器与该目标流式计算单元服务器集群的连接才会断掉,在本步骤中才会判断得到整个流式计算中心单元服务器集群都出现了异常情况。例如,在实际应用中,目标流式计算单元服务器集群所在的机房出现了断电或者火宅等情况。在实际中还有一种可能是,该目标流式计算单元服务器集群中只有一部分的流式计算单元服务器出现了异常,例如,该流式计算单元服务器出现宕机等情况,在这种情况下,该异常的流式计算单元服务器上正在执行的任务中未执行完的部分会切换到其他正常的流式计算单元服务器,以使得整个流式计算单元服务器集群所执行的任务能够顺利执行,保证流式计算单元服务器集群整体上处于正常运行状态。
当然,控制服务器可以步骤201中发送心跳消息后是否能在预设反馈时间内接收到心跳响应来判断目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,例如,在连续一分钟内都没有收到目标流式计算中心服务器集群或目标流式计算单元服务器集群反馈的心跳响应,则确定该目标流式计算中心服务器集群或目标流式计算单元服务器集群出现异常,接着可以进入步骤205;如果在一分钟内收到目标流式计算中心服务器集群或目标流式计算单元服务器集群反馈的心跳响应,则确定目标流式计算中心服务器集群或目标流式计算单元服务器集群没有出现异常,可以继续执行步骤204进行实时判断。
可以理解的是,在一个流式计算中心服务器集群或流式计算单元服务器集群出现异常的情况下,控制服务器可以向***管理员报警等进行提示,***管理员在确定某个流式计算中心服务器集群或流式计算单元服务器集群确实出现异常情况,例如,断网或者断电等,则可以进行修复操作等。待出现异常的流式计算中心服务器集群或流式计算单元服务器集群修复成功之后,还可以作为正常的流式计算中心服务器集群或流式计算单元服务器集群为其分配流式计算任务。
步骤205:将所述流式计算任务中未执行完的任务分配至候选流式计算中心服务器集群。
在本步骤中,未执行完的任务可以为:所述流式计算任务中除了所述目标流式计算中心服务器集群或目标流式计算单元服务器集群已执行任务之外的剩余任务。
具体的,为了保证流式计算任务中未执行完的任务可以快速执行,可以将该未执行完的任务分配至当前负载最小的流式计算中心服务器集群继续执行。相应的,步骤205可以包括:
步骤A1:所述控制服务器实时获取所述多个流式计算中心服务器集群的负载情况。
在步骤A1中,控制服务器可以实时获取到各流式计算中心服务器集群和各流式计算单元服务器集群的负载情况。其中,负载情况可以是,CPU的利用率,内存读取速度,磁盘输入输出I/O性能等硬件的参数值,通过硬件参数值可以确定各流式计算中心服务器集群和流式计算单元服务器集群的负载情况,从而可以在后续需要重新分配某个任务的时候,能够将任务分配给负载较小的流式计算中心服务器集群或流式计算单元服务器集群。
可以理解的是,在实际应用中,因为流式计算单元服务器集群不需要预留计算资源,而流式计算中心服务器集群需要预留计算资源。假设流式计算中心服务器集群的个数为N,其中N为大于1的整数,则预留的计算资源可以是“N*10%”,这样就可以尽量保证其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时,某个正常的流式计算中心服务器集群有足够多的计算资源可以执行控制服务器为其重新分配的任务。其中,该计算资源可以是,CPU、内存和磁盘等硬件资源。例如,在执行控制服务器分配的任务时,流式计算中心服务器集群可始终有20%的计算资源空闲,这空闲的20%的计算资源就可以用来执行其他流式计算中心服务器集群或流式计算单元服务器集群上未执行完的任务。
步骤A2:所述控制服务器将所述流式计算任务中未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
控制服务器再将未执行完的任务分配至根据步骤A1中各流式计算中心服务器集群的负载情况确定的、当前负载最小的流式计算中心服务器集群。
具体的,根据步骤203中的执行状态和配置信息,步骤A2可以包括:
步骤A21:所述控制服务器依据所述控制数据库中存储的执行状态和配置信息,计算所述流式计算任务中未执行完的任务。
控制服务器在某个目标流式计算中心服务器集群或目标流式计算单元服务器集群出现异常的时候,可以根据配置信息确定其正在执行的流式计算任务,再根据执行状态可以确定该流式计算任务已经执行完成的部分,进而可以计算出该流式计算任务中未执行完的任务。
步骤A22:所述控制服务器将所述未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
控制服务器接着将该未执行完的任务重新分配至当前负载最小的流式计算中心服务器集群进行执行。
可以理解的是,在执行步骤205重新分配了未执行完的任务之后,可以再回到步骤202由控制服务器接着分配当前接收到流式计算任务。
本实施例通过一个控制服务器,来对部署在多地的各流式计算中心服务器集群和流式计算单元服务器集群所执行的流式计算任务进行统一分配,实现流式计算任务的统一调度和分配,并且利用各中心存储集群之间实时同步数据的方式,实现了部署在多地的流式计算中心服务器集群或流式计算单元服务器集群同时计算同一个流式计算任务的不同部分或不同流式计算任务功能,当一个流式计算中心服务器集群或流式计算单元服务器集群出现异常时,能快速从异地的流式计算中心服务器集群恢复正在执行的流式计算任务,这样既能保证***资源平时不空置,也保证了在异常情况下也能流式计算任务可以从异地的流式计算中心服务器集群迅速恢复从而达到流式计算服务的高可用性。
参考图3,示出了本申请一种流式计算任务的执行方法实施例的流程图,该方法应用于图1所示的任意一个当前流式计算中心服务器集群上,所述流式计算***可以包括:多个流式计算中心服务器集群、多个流式计算单元服务器集群和控制服务器;所述流式计算中心服务器集群具有中心存储集群,各流式计算中心服务器集群之间的中心存储集群之间同步中间状态数据和中间结果数据,各流式计算单元服务器集群向各流式计算中心服务器集群的中心存储集群同步中间状态数据和中间结果数据。具体的,本实施例可以包括:
步骤301:响应于所述控制服务器在所述流式计算***中的其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时、重新分配的流式计算任务中未执行完的任务,所述当前流式计算中心服务器集群从相连的中心存储集群中,获取执行所述未执行完的任务所需的中间状态数据和中间结果数据。
在本实施例中,假设控制服务器检测到其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况了,则会按照图2所示的实施例为出现异常的流式计算中心服务器集群或流式计算单元服务器集群正在执行的任务重新分配流式计算中心服务器集群。在这种情况下,当前流式计算中心服务器集群从相连的存储集群中,获取执行未执行完的任务所需的中间状态数据和中间结果数据。其中,该中间状态数据可以为:出现异常的流式计算中心服务器集群或流式计算单元服务器集群在出现异常情况前执行流式计算任务产生的任务状态,例如,该流式计算任务已经执行了哪些部分;而中间结果数据可以为:已执行完的那部分任务产生的结果数据等。基于此,当前流式计算中心服务器集群可以不需要再重复执行该流式计算任务已经执行过的部分,而根据中间状态数据和中间结果数据执行未执行完的那部分任务即可。
步骤302:所述当前流式计算中心服务器集群利用所述中间状态数据和中间结果数据执行所述未执行完的任务。
当前流式计算中心服务器集群再参考中间状态数据和中间结果数据来执行重新分配的该未执行完的任务。
其中,在步骤302之后,还可以包括:
步骤303:响应于所述控制服务器周期性发送心跳消息,所述当前流式计算中心服务器集群周期性向所述控制服务器反馈心跳响应。
在控制服务器与流式计算中心服务器集群建立心跳机制的情况下,如果控制服务器周期性的向当前流式计算中心服务器集群发送了心跳消息,该心跳消息用于检测所述控制服务器与所述当前流式计算中心服务器集群之间是否能够通信,则当前流式计算中心服务器集群可以周期性的向控制服务器反馈心跳响应。
其中,在步骤303之后,还可以包括:
步骤304:所述当前流式计算中心服务器集群检测向控制服务器反馈心跳响应失败的连续次数是否超过预设次数阈值,如果是,则所述当前流式计算中心服务器集群停止所述流式计算任务的执行。
当前流式计算中心服务器集群也可以实时检测自己与控制服务器之间的心跳机制是否正常,例如,检测向控制服务器反馈心跳响应失败的连续次数是否超过预设次数阈值,例如,是否连续10次向控制服务器反馈心跳响应失败,如果是,则当前流式计算中心服务器集群出现了异常,则可以停止流式计算任务的执行。如果否,则说明当前流式计算中心服务器集群正常,则可以继续执行步骤303,向控制服务器接着周期性的反馈心跳响应。
可见,在本申请实施例中,通过一个控制服务器来对部署在多地的各流式计算中心服务器集群和流式计算单元服务器集群所执行的任务进行统一分配,实现流式计算任务的统一调度和分配,并且利用各中心存储集群之间实时同步数据的方式,实现了部署在多地的流式计算中心服务器集群或流式计算单元服务器集群同时计算同一个流式计算任务的不同部分或者不同流式计算任务的功能,当一个流式计算中心服务器集群或流式计算单元服务器集群出现异常时,能快速从异地的流式计算中心服务器集群恢复正在执行的流式计算任务,这样既能保证***资源平时不空置,也保证了在异常情况下也能流式计算任务能迅速恢复从而达到流式计算服务的高可用性。
为了更方便本领域技术人员对本申请的实现过程有更清楚的理解,下面举出一个具体例子来详细阐述本申请的实现,本例子可以包括以下步骤:
步骤401:控制服务器向流式计算中心服务器集群1和2,以及流式计算单元服务器集群1和2发送心跳消息。
在本例子中,假设流式计算中心服务器集群一共有两个,包括流式计算中心服务器集群1和流式计算中心服务器集群2,而流式计算单元服务器集群的个数也有两个,包括流式计算单元服务器集群1和流式计算单元服务器集群2,则控制服务器与各流式计算中心服务器集群或各流式计算单元服务器集群,都以1秒钟的心跳时长发送心跳消息。流式计算中心服务器集群1和2都可以部署在杭州市的不同地方,当然,也可以部署在不同的城市,流式计算单元服务器集群1部署在杭州,流式计算单元服务器集群2部署在南京。
步骤402:流式计算中心服务器集群1和2,以及流式计算单元服务器集群1和2分别向控制服务器反馈心跳响应。
步骤403:控制服务器将流式计算任务分配至流式计算单元服务器集群1执行。
***管理员向控制服务器触发一个流式计算任务,例如,统计杭州市在2016年8月15号的交易量,并将该流式计算任务分配至部署在杭州市的流式计算单元服务器集群1执行。则控制服务器按照***管理员的指令将该统计交易量的任务分配至流式计算单元服务器集群1并触发流式计算单元服务器集群1开始统计交易量。其中,本例子中,流式计算中心服务器集群1有自己的中心存储集群1,而流式计算中心服务器集群2有自己的中心存储集群2,流式计算单元服务器集群1有自己的单元存储集群1,流式计算单元服务器集群2有自己的单元存储集群2。在实际应用中,单元存储集群1和2之间不需要同步中间状态数据和中间结果数据,只需要将各自的中间状态数据和中间结果数据分别同步至中心存储集群1和2即可,并且中心存储集群1和2之间也需要同步中间状态数据和中间结果数据。
具体的,流式计算单元服务器集群1在执行统计交易量的过程中,可以从数据源中获取到统计交易量所需的源数据,例如,IP地址为杭州市的订单信息等,并根据源数据来统计交易量。其中,各地的本地数据源可以都同步到流式计算中心服务器集群对应的中心数据源上,流式计算中心服务器集群和各地的流式计算单元服务器集群可以都从中心数据源中拉取源数据。
步骤404:在流式计算单元服务器集群1执行流式计算任务的过程中,流式计算单元服务器集群1连接的单元存储集群1将执行过程中产生的中间状态和中间结果数据同步至中心存储集群1和中心存储集群2,同时,控制服务器将该流式计算任务的执行状态和配置信息存储至控制数据库中。
在流式计算单元服务器集群1执行任务的过程中,流式计算单元服务器集群1实时产生的中间状态数据和中间结果数据存储至单元存储集群1,并且单元存储集群1实时将产生的中间状态数据和中间结果数据同步至中心存储集群1和中心存储集群2上。同时,控制服务器可以实时获取到该任务的执行状态,并将执行状态和将该流式计算任务分配至流式计算单元服务器集群1执行的配置信息,都存储在控制数据库中。例如,执行状态可以表示出,在当前某一时刻,流式计算单元服务器集群获取到共10000条源数据信息,已经对其中的4000条源数据信息进行统计,其他6000条源数据还未进行统计,等。当然,执行状态还可以采用别的方式表示。
步骤405:流式计算单元服务器集群1检测向控制服务器反馈心跳响应失败的连续次数是否超过预设次数阈值,如果是,则所述流式计算单元服务器集群停止所述流式计算任务的执行,如果否,则执行步骤405。
在流式计算单元服务器集群1执行任务的过程中,还会实时检测自己向控制服务器反馈心跳响应是否失败,如果失败了则统计连续失败的次数,如果连续失败的次数超过预设次数阈值,例如10次,则表示流式计算单元服务器集群1和控制服务器的连接已经不能正常通信,在这种情况下,有可能是流式计算单元服务器集群1断网或断电等出现了异常情况,则流式计算单元服务器集群1退出统计交易量的流程。
步骤406:控制服务器判断流式计算单元服务器集群1是否在预设反馈时间内反馈心跳响应,如果否,则进入步骤407,如果是,则继续执行步骤406。
控制服务器也会实时判断流式计算单元服务器集群1是否在预设反馈时间,例如1分钟内,反馈心跳响应,如果未接收流式计算单元服务器集群1反馈的心跳响应,则说明流式计算单元服务器集群已经不能正常执行任务,反之则控制服务器继续监测心跳响应执行本步骤即可。
步骤407:控制服务器实时获取各流式计算中心服务器集群的负载情况,并根据执行状态和配置信息确定该流式计算任务的未执行完的任务。
控制服务器还可以实时获取到流式计算中心服务器集群1和2的负载情况,从而确定出流式计算中心服务器集群1的负载为CPU利用率为40%,而流式计算中心服务器集群2的负载为CPU利用率为60%,在这种情况下,流式计算中心服务器集群1的负载较小。同时,控制服务器还根据控制数据库中存储的执行状态和配置信息,确定出统计交易量的任务已经执行了40%,还剩余6000条的源数据未进行统计。
步骤408:控制服务器将未执行完的任务分配至当前负载最小的流式计算中心服务器集群进行执行。
步骤409:流式计算中心服务器集群1依据中心存储集群1中同步的中间状态数据和中间结果数据继续执行未执行完的任务。
则控制服务器就将剩余60%的未执行完的任务分配至流式计算中心服务器集群1执行,因为中心存储集群1中存储的中间状态数据和中心结果数据是单元存储集群1和2实时同步的,所以流式计算中心服务器集群1则可以直接从中心存储集群1中获取到统计交易量这个任务的中间状态数据和中间结果数据,进而依据该中间状态数据和中间结果数据继续执行剩余60%的任务,而不会重复执行已经执行过的那部分40%的任务。
对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
与上述本申请一种流式计算任务的分配方法实施例所提供的方法相对应,参见图5,本申请还提供了一种控制服务器实施例,控制服务器分别与多个流式计算中心服务器集群和多个流式计算单元服务器集群相连,其中,流式计算中心服务器集群中预留有预设比例的计算资源;在本实施例中,该控制服务器可以包括:
第一分配单元501,用于响应于接收到流式计算任务,将所述流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群。
判断单元502,用于在所述目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况。
第二分配单元503,用于在将所述流式计算任务中的未执行完的任务分配至候选流式计算中心服务器集群;所述未执行完的任务为:所述流式计算任务中除了所述目标流式计算中心服务器集群或目标流式计算单元服务器集群已执行任务之外的剩余任务。
其中,所述第二分配单元503具体可以包括:
获取负载子单元,用于实时获取所述多个流式计算中心服务器集群和多个流式计算单元服务器集群的负载情况;
第一分配子单元,用于依据各流式计算中心服务器集群的负载情况,将所述流式计算任务中的未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
其中,该控制服务器还可以包括:
发送单元,用于周期性的分别向所述流式计算中心服务器集群和流式计算单元服务器集群发送心跳消息,所述心跳消息用于:检测所述控制服务器和所述流式计算中心服务器集群之间是否能够通信,以及,检测所述控制服务器和所述流式计算单元服务器集群之间是否能够通信;
相应的,所述判断单元502,具体用于:判断在预设反馈时间内所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否未反馈心跳响应。
其中,所述流式计算中心服务器集群具有存储集群,各流式计算中心服务器集群之间的存储集群之间同步中间状态数据和中间结果数据,各流式计算单元服务器集群向各中心存储集群同步中间状态数据和中间结果数据;所述服务器还可以包括:
存储单元,用于将各流式计算任务的执行状态和配置信息存储至控制数据库中;所述执行状态用于表示:各流式计算任务在对应的流式计算中心服务器集群或流式计算单元服务器集群上已执行部分;所述配置信息用于表示:各流式计算任务与执行该流式计算任务的流式计算中心服务器集群之间的对应关系,或,各流式计算任务与执行该流式计算任务的流式计算单元服务器集群之间的对应关系;
相应的,所述第一分配子单元,具体可以包括:
计算子单元,用于依据所述控制数据库中存储的执行状态和配置信息,计算所述流式计算任务中未执行完的任务;
第二分配子单元,用于将所述未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
本实施例的控制服务器,可以对部署在多地的各流式计算中心服务器集群和流式计算单元服务器集群所执行的任务进行统一分配,实现流式计算任务的统一调度和分配,并且利用各中心存储集群之间实时同步数据的方式,实现了部署在多地的流式计算中心服务器集群或流式计算单元服务器集群同时计算同一个流式计算任务的不同部分或不同流式计算任务的功能,当一个流式计算中心服务器集群或流式计算单元服务器集群出现异常时,能快速从异地的流式计算中心服务器集群恢复正在执行的流式计算任务,这样既能保证***资源平时不空置,也保证了在异常情况下也能流式计算任务能迅速恢复从而达到流式计算服务的高可用性。
与上述本申请一种流式计算任务的执行方法实施例所提供的方法相对应,参考图6所示,本申请还提供了一种流式计算中心服务器集群实施例,在本实施例中,所述流式计算中心服务器集群在流式计算***中有多个且都预留有预设计算资源,多个所述流式计算中心服务器集群分别与控制服务器相连,所述控制服务器还与多个流式计算单元服务器集群相连;所述流式计算中心服务器集群具有中心存储集群,各流式计算中心服务器集群的中心存储集群之间同步中间状态数据和中间结果数据,各流式计算单元服务器集群的单元存储集群向各流式计算中心服务器集群的存储集群同步中间状态数据和中间结果数据;该流式计算中心服务器集群可以包括:
获取数据单元601,用于响应于所述控制服务器在所述流式计算***中的其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时、重新分配的流式计算任务中未执行完的任务,从中心存储集群中获取执行所述未执行完的任务所需的中间状态数据和中间结果数据。
执行任务单元602,用于利用所述预设计算资源、中间状态数据和中间结果数据执行所述未执行完的任务。
其中,该流式计算中心服务器集群还可以包括:
反馈单元,用于响应于所述控制服务器周期性的发送心跳消息,周期性的向所述控制服务器反馈心跳响应;所述心跳消息用于检测所述控制服务器与所述当前流式计算中心服务器集群之间是否能够通信。
其中,该流式计算中心服务器集群还可以包括:
检测单元,用于检测向控制服务器发送心跳响应失败的连续次数是否超过预设次数阈值;和,停止单元,用于在所述检测单元的结果为是的情况下,停止所述未执行完的任务的执行。
本实施例之后的流式计算中心服务器集群可以接收控制服务器统一分配的流式计算任务进行执行,并且利用各中心存储集群之间实时同步数据的方式,实现了部署在多地的流式计算中心服务器集群或流式计算单元服务器集群同时计算同一流计算任务的不同部分或不同的流式计算任务的功能,当一个流式计算中心服务器集群或流式计算单元服务器集群出现异常时,能快速从异地的流式计算中心服务器集群恢复正在执行的流式计算任务,这样既能保证***资源平时不空置,也保证了在异常情况下流式计算任务也能迅速恢复从而达到流式计算服务的高可用性。
本申请实施例还提供了一种流式计算任务的分配和执行***,该***可以包括图5所示的控制服务器,多个图6所示的流式计算中心服务器集群,以及多个流式计算单元服务器集群,其中,各流式计算中心服务器集群都具有各自的中心存储集群,各流式计算单元服务器集群都具有各自的单元存储集群,控制服务器具有自己的控制数据库,该***的结构框图可以参考图1所示,该***的未尽之处参考前述实施例的详细介绍即可,在此不再赘述。
本申请实施例还提供了一种异地多活***,所述异地多活***包括:第一流式计算中心服务器集群,第二流式计算中心服务器集群,多个流式计算单元服务器集群,以及控制服务器;其中,所述第一流式计算中心服务器集群和第二流式计算中心服务器集群为图6所示的流式计算中心服务器集群,所述控制服务器可以参考图5所示;以及,所述多个流式计算单元服务器集群分别对应部署于多个第二地理位置;所述第一流式计算中心服务器集群和第二流式计算中心服务器集群分别部署于相同或不同的第一地理位置。
在本实施例中,流式计算中心服务器集群和流式计算单元服务器集群分别部署于第一地理位置和第二地理位置,所以当某个流式计算单元服务器集群出现异常时,可以在异地的第一或第二流式计算中心服务器集群上恢复该出现异常的流式计算单元服务器集群正在执行的流式计算任务,将该流式计算任务中未执行完的部分在异地的流式计算中心服务器集群上继续执行,实现异地多活的功能。此外,第一流式计算中心服务器集群和第二流式计算中心服务器集群在部署在不同的第一地理位置时,其中一个流式计算中心服务器集群出现异常的时候,也可以在异地的另一个流式计算中心服务器恢复该出现异常的流式计算单元服务器正在执行的流式计算任务,同样将未执行完的部分在异地的另一个流式计算中心服务器集群上继续执行,也可以实现异地多活的功能。
本申请还提供了一种异地多活***,具体可以包括:第一流式计算中心服务器,至少用于对外提供计算资源,其中,第一流式计算中心服务器包括第一中心存储单元;第二流式计算中心服务器,至少用于对外提供计算资源,其中,第二流式计算中心服务器包括第二中心存储单元;其中,所述第一流式计算中心服务器和第二流式计算中心服务器基于统一的负载均衡策略完成负载均衡,所述第一中心存储单元和第二中心存储单元相互热备;其中,对于在所述第一流式计算中心服务器上运行的第一流式计算任务,当所述第一流式计算中心服务器出现故障无法对外提供计算资源时,终止在第一流式计算中心服务器上运行,并且,基于所述第二流式计算中心服务器的第二中心存储单元的中间状态数据和中间结果数据,在所述第二流式计算中心服务器上继续运行所述第一流式计算任务。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的流式计算任务的分配方法及控制服务器、流式计算任务的执行方法及流式计算中心服务器集群、流式计算***、异地多活***进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (13)

1.一种计算任务分配方法,其特征在于,该方法应用于与流式计算中心服务器集群和流式计算单元服务器集群相连的控制服务器上,所述流式计算中心服务器集群预留有预设比例的计算资源;该方法包括:
响应于接收到流式计算任务,将所述流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群;
在所述目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,如果是,则将所述流式计算任务中未执行完的任务,分配至候选流式计算中心服务器集群。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述控制服务器周期性的分别向所述流式计算中心服务器集群和流式计算单元服务器集群发送心跳消息,所述心跳消息用于:检测所述控制服务器和所述流式计算中心服务器集群之间是否能够通信,以及,检测所述控制服务器和所述流式计算单元服务器集群之间是否能够通信;
相应的,所述判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况,具体为:
判断在预设反馈时间内所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否未反馈心跳响应。
3.根据权利要求1所述的方法,其特征在于,所述将所述流式计算任务中的未执行完的任务分配至候选流式计算中心服务器集群,包括:
所述控制服务器实时获取所述流式计算中心服务器集群的负载情况;
所述控制服务器依据所述负载情况,将所述流式计算任务中未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
4.根据权利要求3所述的方法,其特征在于,所述流式计算中心服务器集群具有中心存储集群,各流式计算中心服务器集群之间的中心存储集群之间同步中间状态数据和中间结果数据,各流式计算单元服务器集群向各流式计算中心服务器集群的中心存储集群同步中间状态数据和中间结果数据;所述方法还包括:
控制服务器将各流式计算任务的执行状态和配置信息存储至控制数据库中;所述执行状态用于表示:各流式计算任务在对应的流式计算中心服务器集群或流式计算单元服务器集群上已执行部分;所述配置信息用于表示:各流式计算任务与执行该流式计算任务的流式计算中心服务器集群之间的对应关系,或,各流式计算任务与执行该流式计算任务的流式计算单元服务器集群之间的对应关系;
相应的,所述将所述流式计算任务中未执行完的任务分配至当前负载最小的流式计算中心服务器集群,包括:
所述控制服务器依据所述控制数据库中存储的执行状态和配置信息,计算所述流式计算任务中未执行完的任务;
所述控制服务器将所述未执行完的任务分配至当前负载最小的流式计算中心服务器集群。
5.一种流式计算任务的执行方法,其特征在于,该方法应用于流式计算***中的任意一个预留有预设计算资源的当前流式计算中心服务器集群上,所述流式计算***包括:流式计算中心服务器集群、流式计算单元服务器集群和控制服务器;所述流式计算中心服务器集群具有中心存储集群,中心存储集群之间同步中间状态数据和中间结果数据,流式计算单元服务器集群的单元存储集群向中心存储集群同步中间状态数据和中间结果数据;该方法包括:
响应于所述控制服务器在所述流式计算***中的其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时、重新分配的流式计算任务中未执行完的任务,所述当前流式计算中心服务器集群从中心存储集群中,获取执行所述未执行完的任务所需的中间状态数据和中间结果数据;
所述当前流式计算中心服务器集群利用所述预设计算资源、中间状态数据和中间结果数据执行所述未执行完的任务。
6.根据权利要求5所述的方法,其特征在于,还包括:
响应于所述控制服务器周期性发送心跳消息,所述当前流式计算中心服务器集群周期性向所述控制服务器反馈心跳响应;所述心跳消息用于检测所述控制服务器与所述当前流式计算中心服务器集群之间是否能够通信。
7.根据权利要求6所述的方法,其特征在于,还包括:
所述当前流式计算中心服务器集群检测向控制服务器反馈心跳响应失败的连续次数是否超过预设次数阈值,如果是,则所述当前流式计算中心服务器集群停止所述未执行完的任务的执行。
8.一种控制服务器,其特征在于,所述控制服务器与流式计算中心服务器集群和流式计算单元服务器集群相连,所述流式计算中心服务器集群中预留有预设比例的计算资源;该控制服务器包括:
第一分配单元,用于响应于接收到流式计算任务,将所述流式计算任务分配至目标流式计算中心服务器集群或目标流式计算单元服务器集群;
判断单元,用于在所述目标流式计算中心服务器集群或目标流式计算单元服务器集群执行所述流式计算任务的过程中,判断所述目标流式计算中心服务器集群或目标流式计算单元服务器集群是否出现异常情况;
第二分配单元,用于在所述判断单元的结果为是的情况下,将所述流式计算任务中未执行完的任务分配至候选流式计算中心服务器集群。
9.一种流式计算中心服务器集群,其特征在于,所述流式计算中心服务器集群预留有预设计算资源,所述流式计算中心服务器集群与控制服务器相连,所述控制服务器还与流式计算单元服务器集群相连;所述流式计算中心服务器集群具有中心存储集群,中心存储集群之间同步中间状态数据和中间结果数据;所述流式计算单元服务器具有单元存储集群,单元存储集群向中心存储集群同步中间状态数据和中间结果数据;包括:
获取数据单元,用于响应于所述控制服务器在所述流式计算***中的其他流式计算中心服务器集群或流式计算单元服务器集群出现异常情况时、重新分配的流式计算任务中未执行完的任务,从中心存储集群中获取执行所述未执行完的任务所需的中间状态数据和中间结果数据;
执行任务单元,用于利用所述预设计算资源、中间状态数据和中间结果数据执行所述未执行完的任务。
10.一种流式计算***,其特征在于,所述流式计算***包括:权利要求9所述的流式计算中心服务器集群和流式计算单元服务器集群,权利要求8所述的控制服务器;以及,
与所述流式计算中心服务器集群对应的中心存储集群,与所述控制服务器对应的控制数据库,和,与所述流式计算单元服务器集群对应的单元存储集群。
11.一种异地多活***,其特征在于,所述异地多活***包括:第一流式计算中心服务器集群,多个流式计算单元服务器集群,以及控制服务器;其中,所述第一流式计算中心服务器集群为权利要求9所述的流式计算中心服务器集群,所述控制服务器为权利要求8所述的控制服务器;
以及,
所述多个流式计算单元服务器集群分别对应部署于多个第二地理位置;所述第一流式计算中心服务器集群部署于第一地理位置。
12.根据权利要求11所述的***,其特征在于,所述异地多活***还包括:第二流式计算中心服务器集群,所述第二流式计算中心服务器集群与所述第一流式计算中心服务器集群部署在不同的第一地理位置。
13.一种异地多活***,其特征在于,包括:
第一流式计算中心服务器,至少用于对外提供计算资源,其中,第一流式计算中心服务器包括第一中心存储单元;
第二流式计算中心服务器,至少用于对外提供计算资源,其中,第二流式计算中心服务器包括第二中心存储单元;
其中,所述第一流式计算中心服务器和第二流式计算中心服务器基于统一的负载均衡策略完成负载均衡,所述第一中心存储单元和第二中心存储单元相互热备;
其中,对于在所述第一流式计算中心服务器上运行的第一流式计算任务,当所述第一流式计算中心服务器出现故障无法对外提供计算资源时,终止在第一流式计算中心服务器上运行,并且,基于所述第二流式计算中心服务器的第二中心存储单元的中间状态数据和中间结果数据,在所述第二流式计算中心服务器上继续运行所述第一流式计算任务。
CN201610908946.7A 2016-10-18 2016-10-18 流式计算任务的分配方法和控制服务器 Active CN107959705B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610908946.7A CN107959705B (zh) 2016-10-18 2016-10-18 流式计算任务的分配方法和控制服务器
TW106127334A TWI755417B (zh) 2016-10-18 2017-08-11 計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統
PCT/CN2017/105360 WO2018072618A1 (zh) 2016-10-18 2017-10-09 流式计算任务的分配方法和控制服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610908946.7A CN107959705B (zh) 2016-10-18 2016-10-18 流式计算任务的分配方法和控制服务器

Publications (2)

Publication Number Publication Date
CN107959705A true CN107959705A (zh) 2018-04-24
CN107959705B CN107959705B (zh) 2021-08-20

Family

ID=61954266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610908946.7A Active CN107959705B (zh) 2016-10-18 2016-10-18 流式计算任务的分配方法和控制服务器

Country Status (3)

Country Link
CN (1) CN107959705B (zh)
TW (1) TWI755417B (zh)
WO (1) WO2018072618A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737270A (zh) * 2018-05-07 2018-11-02 北京京东尚科信息技术有限公司 一种服务器集群的资源管理方法和装置
CN109358983A (zh) * 2018-09-04 2019-02-19 深圳市宝德计算机***有限公司 服务器数据处理方法、装置以及存储介质
CN109656782A (zh) * 2018-12-24 2019-04-19 成都四方伟业软件股份有限公司 可视化调度监控方法、装置及服务器
CN111092931A (zh) * 2019-11-15 2020-05-01 中国科学院计算技术研究所 电力***在线超实时仿真的流式数据快速分发方法及***
CN112148439A (zh) * 2019-06-28 2020-12-29 浙江宇视科技有限公司 任务处理方法、装置、设备及存储介质
CN113190364A (zh) * 2021-04-30 2021-07-30 平安壹钱包电子商务有限公司 远程调用管理方法、装置、计算机设备及可读存储介质
CN113391902A (zh) * 2021-06-22 2021-09-14 未鲲(上海)科技服务有限公司 一种任务调度方法及设备、存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090502B (zh) * 2018-10-24 2024-05-17 阿里巴巴集团控股有限公司 一种流数据任务调度方法和装置
CN111124812A (zh) * 2019-12-02 2020-05-08 深圳市智微智能软件开发有限公司 服务器的监测方法及***
CN112732491B (zh) * 2021-01-22 2024-03-12 中国人民财产保险股份有限公司 数据处理***、基于数据处理***的业务数据处理方法
CN113283803B (zh) * 2021-06-17 2024-04-23 金蝶软件(中国)有限公司 一种物资需求计划的制定方法、相关装置及存储介质
CN113472662B (zh) * 2021-07-09 2022-10-04 武汉绿色网络信息服务有限责任公司 路径重分配方法和网络业务***
WO2023077451A1 (zh) * 2021-11-05 2023-05-11 中国科学院计算技术研究所 一种基于列存数据库的流式数据处理方法及***
CN114884946B (zh) * 2022-04-28 2024-01-16 抖动科技(深圳)有限公司 基于人工智能的异地多活实现方法及相关设备
CN115242648B (zh) * 2022-07-19 2024-05-28 北京百度网讯科技有限公司 扩缩容判别模型训练方法和算子扩缩容方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158387A (zh) * 2010-02-12 2011-08-17 华东电网有限公司 基于动态负载均衡与互相热备的保护故障信息处理***
CN103763378A (zh) * 2014-01-24 2014-04-30 中国联合网络通信集团有限公司 基于分布式流式计算***的任务处理方法、***及节点
US20160081103A1 (en) * 2013-05-31 2016-03-17 Huawei Technologies Co., Ltd. Method and apparatus for adjusting physical resource, and controller

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6779016B1 (en) * 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
WO2007044230A2 (en) * 2005-10-07 2007-04-19 Citrix Systems, Inc. Methods for selecting between a predetermined number of execution methods for an application program
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
CN101483673B (zh) * 2009-02-20 2013-02-13 杭州华三通信技术有限公司 异地热备实现方法及***
CN103973725B (zh) * 2013-01-28 2018-08-24 阿里巴巴集团控股有限公司 一种分布式协同方法和协同器
US9785480B2 (en) * 2015-02-12 2017-10-10 Netapp, Inc. Load balancing and fault tolerant service in a distributed data system
CN104683488B (zh) * 2015-03-31 2018-03-30 百度在线网络技术(北京)有限公司 流式计算***及其调度方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158387A (zh) * 2010-02-12 2011-08-17 华东电网有限公司 基于动态负载均衡与互相热备的保护故障信息处理***
US20160081103A1 (en) * 2013-05-31 2016-03-17 Huawei Technologies Co., Ltd. Method and apparatus for adjusting physical resource, and controller
CN103763378A (zh) * 2014-01-24 2014-04-30 中国联合网络通信集团有限公司 基于分布式流式计算***的任务处理方法、***及节点

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737270A (zh) * 2018-05-07 2018-11-02 北京京东尚科信息技术有限公司 一种服务器集群的资源管理方法和装置
CN108737270B (zh) * 2018-05-07 2021-01-26 北京京东尚科信息技术有限公司 一种服务器集群的资源管理方法和装置
CN109358983A (zh) * 2018-09-04 2019-02-19 深圳市宝德计算机***有限公司 服务器数据处理方法、装置以及存储介质
CN109656782A (zh) * 2018-12-24 2019-04-19 成都四方伟业软件股份有限公司 可视化调度监控方法、装置及服务器
CN112148439A (zh) * 2019-06-28 2020-12-29 浙江宇视科技有限公司 任务处理方法、装置、设备及存储介质
CN112148439B (zh) * 2019-06-28 2024-03-08 浙江宇视科技有限公司 任务处理方法、装置、设备及存储介质
CN111092931A (zh) * 2019-11-15 2020-05-01 中国科学院计算技术研究所 电力***在线超实时仿真的流式数据快速分发方法及***
CN113190364A (zh) * 2021-04-30 2021-07-30 平安壹钱包电子商务有限公司 远程调用管理方法、装置、计算机设备及可读存储介质
CN113391902A (zh) * 2021-06-22 2021-09-14 未鲲(上海)科技服务有限公司 一种任务调度方法及设备、存储介质

Also Published As

Publication number Publication date
TW201816616A (zh) 2018-05-01
CN107959705B (zh) 2021-08-20
TWI755417B (zh) 2022-02-21
WO2018072618A1 (zh) 2018-04-26

Similar Documents

Publication Publication Date Title
CN107959705A (zh) 流式计算任务的分配方法和控制服务器
CN108712464A (zh) 一种面向集群微服务高可用的实现方法
CN105245373B (zh) 一种容器云平台***的搭建及运行方法
CN105630589A (zh) 分布式流程调度***及流程调度、执行方法
CN106817408B (zh) 一种分布式服务器集群调度方法及装置
CN105095008B (zh) 一种适用于集群***的分布式任务故障冗余方法
CN101605092A (zh) 一种基于内容的负载均衡***
CN108833462A (zh) 一种面向微服务的自注册服务发现的***及方法
CN105765938B (zh) 通信***架构
CN106603696A (zh) 一种基于超融合基础框架的高可用***
CN104980693A (zh) 媒体服务备份方法及***
CN104123183B (zh) 集群作业调度方法和装置
CN106790092A (zh) 远程过程调用服务端控制***及方法
CN106850269A (zh) 一种云平台的管理***
JP5647561B2 (ja) 電力系統の監視制御システム
CN109558239A (zh) 一种任务调度方法、装置、***、计算机设备和存储介质
CN102916830B (zh) 一种资源服务优化配置容错管理实现***
CN104484228A (zh) 基于Intelli-DSC的分布式并行任务处理***
CN106452899B (zh) 一种分布式数据挖掘***及方法
CN109617831A (zh) 用于分布式***的流量管理方法和装置以及计算设备
CN110046064A (zh) 一种基于故障漂移的云服务器容灾实现方法
CN104486447A (zh) 基于Big-Cluster的大平台集群***
CN107682888A (zh) 一种云ac冗余备份***和方法
CN107040388A (zh) 计费***及方法
CN104462581B (zh) 基于微通道内存映射和Smart‑Slice的极速文件指纹提取***及方法

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211110

Address after: Room 507, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Zhejiang tmall Technology Co., Ltd

Address before: P.O. Box 847, 4th floor, capital building, Grand Cayman, British Cayman Islands

Patentee before: Alibaba Group Holdings Limited