TWI755417B - 計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統 - Google Patents

計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統 Download PDF

Info

Publication number
TWI755417B
TWI755417B TW106127334A TW106127334A TWI755417B TW I755417 B TWI755417 B TW I755417B TW 106127334 A TW106127334 A TW 106127334A TW 106127334 A TW106127334 A TW 106127334A TW I755417 B TWI755417 B TW I755417B
Authority
TW
Taiwan
Prior art keywords
stream computing
server cluster
cluster
server
center server
Prior art date
Application number
TW106127334A
Other languages
English (en)
Other versions
TW201816616A (zh
Inventor
張釗
名浩 李
胡四海
陳友林
汪光煉
Original Assignee
香港商阿里巴巴集團服務有限公司
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 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201816616A publication Critical patent/TW201816616A/zh
Application granted granted Critical
Publication of TWI755417B publication Critical patent/TWI755417B/zh

Links

Images

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服務系統也是一個挑戰。由於流計算系統處理的實時計算和讀取的資料量巨大,流計算任務分佈在多個地方時有很多困難,例如,去重統計結果的異地實時合併,如何保證多個地方的資料一致性,資料來源的地域不可控,等等,因此,如何實現對流計算的多地域協同,且實時容災是非常必要的。
現有技術在進行流式任務分配的時候,通常採用異地冷備的方式進行,即在另外一個地域部署一個閒置伺服器,以便在一個地域的服務不可用時,臨時把流計算任務恢復到另外一個地域的閒置伺服器上。但是該閒置伺服器平時的大量時間都處於空轉狀態,這就造成大量的系統資源浪費的問題。還有另外一種方式,可以將伺服器部署在單個機房或者同地域的多個機房,多個機房資料同時儲存在一個儲存系統來實現流計算。但是這也會導致一旦這個地域的網路不可用(例如出現意外情況,光纜被工程機械挖斷),該地域的儲存系統不可用,或者,該地域的機器資源已經到了擴容上限無法繼續擴容,等等,都會導致流計算系統不可用,無法保證流計算任務的順利分配和後續執行。
基於此,本發明提供了一種流計算任務的分配方法和一種流計算任務的執行方法,用以採用一個控制伺服器來對各流計算任務進行統一分配的方式,由部署在多地的各流計算中心伺服器集群和各流計算單元伺服器集群來執行不同的流計算任務,各流計算中心伺服器集群預留有預設計算資源,且各中心儲存集群之間進行資料同步,並且,各流計算單元伺服器集群的單元儲存集群中的資料也分別同步至各中心儲存集群上。基於此,在某個流計算單元伺服器集群或流計算中心伺服器集群出現異常的時候,能夠將正在執行的流計算任務還未執行完的那部分任務重新分配至其他地方的某個流計算中心伺服器集群上執行,以實現流計算任務能夠在異地快速的恢復和正常執行,並且不需要配置閒置伺服器,也節省了系統資源。
本發明還提供了一種控制伺服器、一種流計算中心伺服器集群和一種流計算系統,用以保證上述方法在實際中的實現及應用。
為了解決上述問題,本發明公開了一種計算任務分配方法,該方法應用於與流計算中心伺服器集群和流計算單元伺服器集群相連的控制伺服器上,所述流計算中心伺服器集群預留有預設比例的計算資源;該方法包括:響應於接收到流計算任務,將所述流計算任務分配至目標流計算中心伺服器集群或目標流計算單元伺服器集群;在所述目標流計算中心伺服器集群或目標流計算單元伺服器集群執行所述流計算任務的過程中,判斷所述目標流計算中心伺服器集群或目標流計算單元伺服器集群是否出現異常情況,如果是,則將所述流計算任務中未執行完的任務,分配至候選流計算中心伺服器集群。
其中,該方法還包括:所述控制伺服器週期性的分別向所述流計算中心伺服器集群和流計算單元伺服器集群發送心跳消息,所述心跳消息用於:檢測所述控制伺服器和所述流計算中心伺服器集群之間是否能夠通訊,以及,檢測所述控制伺服器和所述流計算單元伺服器集群之間是否能夠通訊; 相應的,所述判斷所述目標流計算中心伺服器集群或目標流計算單元伺服器集群是否出現異常情況,具體為:判斷在預設反饋時間內所述目標流計算中心伺服器集群或目標流計算單元伺服器集群是否未反饋心跳響應。
其中,所述將所述流計算任務中的未執行完的任務分配至候選流計算中心伺服器集群,包括:所述控制伺服器實時獲取所述流計算中心伺服器集群的負載情況;所述控制伺服器依據所述負載情況,將所述流計算任務中未執行完的任務分配至當前負載最小的流計算中心伺服器集群。
其中,所述流計算中心伺服器集群具有中心儲存集群,各流計算中心伺服器集群之間的中心儲存集群之間同步中間狀態資料和中間結果資料,各流計算單元伺服器集群向各流計算中心伺服器集群的中心儲存集群同步中間狀態資料和中間結果資料;所述方法還包括:控制伺服器將各流計算任務的執行狀態和配置資訊儲存至控制資料庫中;所述執行狀態用於表示:各流計算任務在對應的流計算中心伺服器集群或流計算單元伺服器集群上已執行部分;所述配置資訊用於表示:各流計算任務與執行該流計算任務的流計算中心伺服器集群之間的對應關係,或,各流計算任務與執行該流計算任務的流計算單元伺服器集群之間的對應關係;相應的,所述將所述流計算任務中未執行完的任務分 配至當前負載最小的流計算中心伺服器集群,包括:所述控制伺服器依據所述控制資料庫中儲存的執行狀態和配置資訊,計算所述流計算任務中未執行完的任務;所述控制伺服器將所述未執行完的任務分配至當前負載最小的流計算中心伺服器集群。
本發明還提供了一種流計算任務的執行方法,該方法應用於流計算系統中的任意一個預留有預設計算資源的當前流計算中心伺服器集群上,所述流計算系統包括:流計算中心伺服器集群、流計算單元伺服器集群和控制伺服器;所述流計算中心伺服器集群具有中心儲存集群,各中心儲存集群之間同步中間狀態資料和中間結果資料,各流計算單元伺服器集群的單元儲存集群向各中心儲存集群同步中間狀態資料和中間結果資料;該方法包括:響應於所述控制伺服器在所述流計算系統中的其他流計算中心伺服器集群或流計算單元伺服器集群出現異常情況時、重新分配的流計算任務中未執行完的任務,所述當前流計算中心伺服器集群從中心儲存集群中,獲取執行所述未執行完的任務所需的中間狀態資料和中間結果資料;所述當前流計算中心伺服器集群利用所述預設計算資源、中間狀態資料和中間結果資料執行所述未執行完的任務。
其中,該方法還包括:響應於所述控制伺服器週期性發送心跳消息,所述當前流計算中心伺服器集群週期性向所述控制伺服器反饋心 跳響應;所述心跳消息用於檢測所述控制伺服器與所述當前流計算中心伺服器集群之間是否能夠通訊。
其中,該方法還包括:所述當前流計算中心伺服器集群檢測向控制伺服器反饋心跳響應失敗的連續次數是否超過預設次數閾值,如果是,則所述當前流計算中心伺服器集群停止所述未執行完的任務的執行。
本發明還提供了一種控制伺服器,所述控制伺服器與流計算中心伺服器集群和流計算單元伺服器集群相連,所述流計算中心伺服器集群中預留有預設比例的計算資源;該控制伺服器包括:第一分配單元,用於響應於接收到流計算任務,將所述流計算任務分配至目標流計算中心伺服器集群或目標流計算單元伺服器集群;判斷單元,用於在所述目標流計算中心伺服器集群或目標流計算單元伺服器集群執行所述流計算任務的過程中,判斷所述目標流計算中心伺服器集群或目標流計算單元伺服器集群是否出現異常情況;第二分配單元,用於在所述判斷單元的結果為是的情況下,將所述流計算任務中未執行完的任務分配至候選流計算中心伺服器集群。
其中,該控制伺服器還包括:發送單元,用於週期性的分別向所述流計算中心伺服器集群和流計算單元伺服器集群發送心跳消息,所述心跳 消息用於:檢測所述控制伺服器和所述流計算中心伺服器集群之間是否能夠通訊,以及,檢測所述控制伺服器和所述流計算單元伺服器集群之間是否能夠通訊;相應的,所述判斷單元,具體用於:判斷在預設反饋時間內所述目標流計算中心伺服器集群或目標流計算單元伺服器集群是否未反饋心跳響應。
其中,所述第二分配單元包括:獲取負載子單元,用於實時獲取所述流計算中心伺服器集群和流計算單元伺服器集群的負載情況;第一分配子單元,用於依據各流計算中心伺服器集群的負載情況,將所述流計算任務中未執行完的任務分配至當前負載最小的流計算中心伺服器集群。
其中,所述流計算中心伺服器集群具有中心儲存集群,各流計算中心伺服器集群之間的中心儲存集群之間同步中間狀態資料和中間結果資料,且各流計算單元伺服器集群向各流計算中心伺服器集群的中心儲存集群同步中間狀態資料和中間結果資料;所述伺服器還包括:儲存單元,用於將各流計算任務的執行狀態和配置資訊儲存至控制資料庫中;所述執行狀態用於表示:各流計算任務在對應的流計算中心伺服器集群或流計算單元伺服器集群上已執行部分;所述配置資訊用於表示:各流計算任務與執行該流計算任務的流計算中心伺服器集群之間的對應關係,或,各流計算任務與執行該流計算任務的流計算單元伺服器集群之間的對應關係; 所述第一分配子單元,包括:計算子單元,用於依據所述控制資料庫中儲存的執行狀態和配置資訊,計算所述流計算任務中未執行完的任務;第二分配子單元,用於將所述未執行完的任務分配至當前負載最小的流計算中心伺服器集群。
本發明還提供了一種流計算中心伺服器集群,該流計算中心伺服器集群預留有預設計算資源,所述流計算中心伺服器集群與控制伺服器相連,所述控制伺服器還與流計算單元伺服器集群相連;所述流計算中心伺服器集群具有中心儲存集群,中心儲存集群之間同步中間狀態資料和中間結果資料,流計算單元伺服器集群的單元儲存集群向中心儲存集群同步中間狀態資料和中間結果資料;包括:獲取資料單元,用於響應於所述控制伺服器在所述流計算系統中的其他流計算中心伺服器集群或流計算單元伺服器集群出現異常情況時、重新分配的流計算任務中未執行完的任務,從中心儲存集群中獲取執行所述未執行完的任務所需的中間狀態資料和中間結果資料;執行任務單元,用於利用所述預設計算資源、中間狀態資料和中間結果資料執行所述未執行完的任務。
其中,該流計算中心伺服器集群還包括:反饋單元,用於響應於所述控制伺服器週期性的發送心跳消息,週期性的向所述控制伺服器反饋心跳響應;所述心跳消息用於檢測所述控制伺服器與所述當前流計算中 心伺服器集群之間是否能夠通訊。
其中,該流計算中心服務集群還包括:檢測單元,用於檢測向控制伺服器發送心跳響應失敗的連續次數是否超過預設次數閾值;停止單元,用於在所述檢測單元的結果為是的情況下,停止所述未執行完的任務的執行。
本發明還提供了一種流計算系統,所述流計算系統包括:流計算中心伺服器集群和流計算單元伺服器集群,控制伺服器;以及,與所述流計算中心伺服器集群對應的中心儲存集群,與所述控制伺服器對應的控制資料庫,和,與所述流計算單元伺服器集群對應的單元儲存集群。
本發明還提供了一種異地多活系統,所述異地多活系統包括:第一流計算中心伺服器集群,多個流計算單元伺服器集群,以及控制伺服器;其中,所述第一流計算中心伺服器集群為前述的流計算中心伺服器集群,所述控制伺服器為前述的控制伺服器;以及,所述多個流計算單元伺服器集群分別對應部署於多個第二地理位置;所述第一流計算中心伺服器集群部署於第一地理位置,所述第二地理位置與所述第一地理位置是不同的地理位置。其中,所述異地多活系統還包括:第二流計算中心伺服器集群,所述第二流計算中心伺服器集群與所述第一流計算中心伺服器集群部署在不同的第一地理位置。
本發明還提供了一種異地多活系統,包括:第一流計算中心伺服器,至少用於對外提供計算資源,其中,第一流計算中心伺服器包括第一中心儲存單元;第二流計算中心伺服器,至少用於對外提供計算資源,其中,第二流計算中心伺服器包括第二中心儲存單元;其中,所述第一流計算中心伺服器和第二流計算中心伺服器基於統一的負載均衡策略完成負載均衡,所述第一中心儲存單元和第二中心儲存單元相互熱備援;其中,對於在所述第一流計算中心伺服器上運行的第一流計算任務,當所述第一流計算中心伺服器出現故障無法對外提供計算資源時,終止在第一流計算中心伺服器上運行,並且,基於所述第二流計算中心伺服器的第二中心儲存單元的中間狀態資料和中間結果資料,在所述第二流計算中心伺服器上繼續運行所述第一流計算任務。
與現有技術相比,本發明包括以下優點:
在本發明實施例中,本發明透過一個控制伺服器來對部署在多地的各流計算中心伺服器集群和流計算單元伺服器集群所執行的任務進行統一分配,實現流計算任務的統一調度和分配,並且利用各中心儲存集群之間實時同步資料的方式,實現了部署在多地的流計算中心伺服器集群或流計算單元伺服器集群同時計算同一個流計算任務的各部分或不同的流計算任務的功能。採用本發明實施例,當一 個地方的流計算中心伺服器集群或流計算單元伺服器集群出現異常時,能快速從異地的流計算中心伺服器集群恢復正在執行的流計算任務,這樣既能保證系統資源平時不空置,也保證了流計算任務的異地多活,即在本地出現異常情況下也能使流計算任務在異地能迅速恢復從而達到流計算服務的高可用性。
當然,實施本發明的任一產品並不一定需要同時達到以上所述的所有優點。
101‧‧‧控制伺服器
102‧‧‧流計算中心伺服器集群
103‧‧‧流計算單元伺服器集群
104‧‧‧中心儲存集群
105‧‧‧單元儲存集群
201~205‧‧‧步驟
301~304‧‧‧步驟
401~406‧‧‧步驟
501‧‧‧第一分配單元
502‧‧‧判斷單元
503‧‧‧第二分配單元
601‧‧‧獲取資料單元
602‧‧‧執行任務單元
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的圖式作簡單地介紹,顯而易見地,下面描述中的圖式僅僅是本發明的一些實施例,對於本領域具有通常知識者來講,在不付出創造性勞動性的前提下,還可以根據這些圖式獲得其他的圖式。
圖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所示;以及,所述多個流計算單元伺服器集群分別對應部署於多個第二地理位 置;所述第一流計算中心伺服器集群和第二流計算中心伺服器集群分別部署於相同或不同的第一地理位置。
在本實施例中,流計算中心伺服器集群和流計算單元伺服器集群分別部署於第一地理位置和第二地理位置,所以當某個流計算單元伺服器集群出現異常時,可以在異地的第一或第二流計算中心伺服器集群上恢復該出現異常的流計算單元伺服器集群正在執行的流計算任務,將該流計算任務中未執行完的部分在異地的流計算中心伺服器集群上繼續執行,實現異地多活的功能。此外,第一流計算中心伺服器集群和第二流計算中心伺服器集群在部署在不同的第一地理位置時,其中一個流計算中心伺服器集群出現異常的時候,也可以在異地的另一個流計算中心伺服器恢復該出現異常的流計算單元伺服器正在執行的流計算任務,同樣將未執行完的部分在異地的另一個流計算中心伺服器集群上繼續執行,也可以實現異地多活的功能。
本發明還提供了一種異地多活系統,具體可以包括:第一流計算中心伺服器,至少用於對外提供計算資源,其中,第一流計算中心伺服器包括第一中心儲存單元;第二流計算中心伺服器,至少用於對外提供計算資源,其中,第二流計算中心伺服器包括第二中心儲存單元;其中,所述第一流計算中心伺服器和第二流計算中心伺服器基於統一的負載均衡策略完成負載均衡,所述第一中心儲存單元和第二中心儲存單元相互熱備援;其中,對於在所述第一流計算中心伺服器上運行的第一流計算任務,當所述第一 流計算中心伺服器出現故障無法對外提供計算資源時,終止在第一流計算中心伺服器上運行,並且,基於所述第二流計算中心伺服器的第二中心儲存單元的中間狀態資料和中間結果資料,在所述第二流計算中心伺服器上繼續運行所述第一流計算任務。
需要說明的是,本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對於裝置類實施例而言,由於其與方法實施例基本相似,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
最後,還需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本發明所提供的流計算任務的分配方法及控制伺服器、流計算任務的執行方法及流計算中心伺服器集 群、流計算系統、異地多活系統進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。
101:控制伺服器
102:流計算中心伺服器集群
103:流計算單元伺服器集群
104:中心儲存集群
105:單元儲存集群

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. 一種異地多活系統,其特徵在於,包括:第一流計算中心伺服器,至少用於對外提供計算資 源,其中,第一流計算中心伺服器包括第一中心儲存單元;第二流計算中心伺服器,至少用於對外提供計算資源,其中,第二流計算中心伺服器包括第二中心儲存單元;其中,該第一流計算中心伺服器和第二流計算中心伺服器基於統一的負載均衡策略完成負載均衡,該第一中心儲存單元和第二中心儲存單元相互熱備援;其中,對於在該第一流計算中心伺服器上運行的第一流計算任務,當該第一流計算中心伺服器出現故障無法對外提供計算資源時,終止在第一流計算中心伺服器上運行,並且,基於該第二流計算中心伺服器的第二中心儲存單元的中間狀態資料和中間結果資料,在該第二流計算中心伺服器上繼續運行該第一流計算任務。
TW106127334A 2016-10-18 2017-08-11 計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統 TWI755417B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
TW201816616A TW201816616A (zh) 2018-05-01
TWI755417B true TWI755417B (zh) 2022-02-21

Family

ID=61954266

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106127334A TWI755417B (zh) 2016-10-18 2017-08-11 計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統

Country Status (3)

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

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737270B (zh) * 2018-05-07 2021-01-26 北京京东尚科信息技术有限公司 一种服务器集群的资源管理方法和装置
CN109358983A (zh) * 2018-09-04 2019-02-19 深圳市宝德计算机***有限公司 服务器数据处理方法、装置以及存储介质
CN111090502B (zh) * 2018-10-24 2024-05-17 阿里巴巴集团控股有限公司 一种流数据任务调度方法和装置
CN109656782A (zh) * 2018-12-24 2019-04-19 成都四方伟业软件股份有限公司 可视化调度监控方法、装置及服务器
CN112148439B (zh) * 2019-06-28 2024-03-08 浙江宇视科技有限公司 任务处理方法、装置、设备及存储介质
CN111092931B (zh) * 2019-11-15 2021-08-06 中国科学院计算技术研究所 电力***在线超实时仿真的流式数据快速分发方法及***
CN111124812A (zh) * 2019-12-02 2020-05-08 深圳市智微智能软件开发有限公司 服务器的监测方法及***
CN112732491B (zh) * 2021-01-22 2024-03-12 中国人民财产保险股份有限公司 数据处理***、基于数据处理***的业务数据处理方法
CN113190364A (zh) * 2021-04-30 2021-07-30 平安壹钱包电子商务有限公司 远程调用管理方法、装置、计算机设备及可读存储介质
CN113283803B (zh) * 2021-06-17 2024-04-23 金蝶软件(中国)有限公司 一种物资需求计划的制定方法、相关装置及存储介质
CN113391902B (zh) * 2021-06-22 2023-03-31 未鲲(上海)科技服务有限公司 一种任务调度方法及设备、存储介质
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 (4)

* 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
CN102158387A (zh) * 2010-02-12 2011-08-17 华东电网有限公司 基于动态负载均衡与互相热备的保护故障信息处理***
CN103197936A (zh) * 2005-10-07 2013-07-10 茨特里克斯***公司 用于在应用程序的预定数量的执行方法之间选择的方法
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101483673B (zh) * 2009-02-20 2013-02-13 杭州华三通信技术有限公司 异地热备实现方法及***
CN103973725B (zh) * 2013-01-28 2018-08-24 阿里巴巴集团控股有限公司 一种分布式协同方法和协同器
CN103703830B (zh) * 2013-05-31 2017-11-17 华为技术有限公司 一种物理资源调整方法、装置及控制器
CN103763378A (zh) * 2014-01-24 2014-04-30 中国联合网络通信集团有限公司 基于分布式流式计算***的任务处理方法、***及节点
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 (4)

* 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
CN103197936A (zh) * 2005-10-07 2013-07-10 茨特里克斯***公司 用于在应用程序的预定数量的执行方法之间选择的方法
TWI476610B (zh) * 2008-04-29 2015-03-11 Maxiscale Inc 同級間冗餘檔案伺服器系統及方法
CN102158387A (zh) * 2010-02-12 2011-08-17 华东电网有限公司 基于动态负载均衡与互相热备的保护故障信息处理***

Also Published As

Publication number Publication date
TW201816616A (zh) 2018-05-01
WO2018072618A1 (zh) 2018-04-26
CN107959705B (zh) 2021-08-20
CN107959705A (zh) 2018-04-24

Similar Documents

Publication Publication Date Title
TWI755417B (zh) 計算任務分配方法、流計算任務的執行方法、控制伺服器、流計算中心伺服器集群、流計算系統及異地多活系統
US11249815B2 (en) Maintaining two-site configuration for workload availability between sites at unlimited distances for products and services
US11307943B2 (en) Disaster recovery deployment method, apparatus, and system
US10609159B2 (en) Providing higher workload resiliency in clustered systems based on health heuristics
WO2017067484A1 (zh) 一种虚拟化数据中心调度***和方法
US10084858B2 (en) Managing continuous priority workload availability and general workload availability between sites at unlimited distances for products and services
CN102404390B (zh) 高速实时数据库的智能化动态负载均衡方法
CN103414712B (zh) 一种分布式虚拟桌面管理***和方法
CN105159769A (zh) 一种适用于计算能力异构集群的分布式作业调度方法
CN105939389A (zh) 负载均衡方法及装置
WO2020119060A1 (zh) 容器资源调度方法和***、服务器及计算机可读存储介质
CN109802986B (zh) 设备管理方法、***、装置及服务器
CN105069152B (zh) 数据处理方法及装置
CN111459642B (zh) 一种分布式***中故障处理和任务处理方法及装置
CN112631764A (zh) 任务调度方法、装置、计算机设备和计算机可读介质
CN111131445B (zh) Dhcp集群的调度方法和dhcp集群***
CN115080436A (zh) 测试指标确定方法、装置、电子设备及存储介质
CN104484228A (zh) 基于Intelli-DSC的分布式并行任务处理***
WO2023109062A1 (zh) 云灾备***、方法、电子设备及存储介质
CN103973811A (zh) 一种可动态迁移的高可用集群管理方法
CN104486447A (zh) 基于Big-Cluster的大平台集群***
CN114338670A (zh) 一种边缘云平台和具有其的网联交通三级云控平台
CN106844021B (zh) 计算环境资源管理***及其管理方法
US20230236897A1 (en) On-demand clusters in container computing environment
CN105591780B (zh) 集群监测方法和设备