一種分布式數據處理協調方法及系統的制作方法
【專利摘要】本發明公開一種分布式數據處理協調方法及協調,方法包括:任務調度器對任務調度數據庫中的任務進行分類,為每個任務關聯批次,同一批次關聯一個或多個任務,并將每個批次與一個處理器關聯;處理器從任務調度數據庫中獲取關聯的批次;處理器對關聯的批次所關聯的任務進行處理;任務調度器定時檢查處理器的在線狀態,將在線狀態為下線的處理器作為下線處理器,將在線狀態為在線的處理器作為在線處理器,獲取與所述下線處理器關聯的批次作為待分配批次,將所述待分配批次重新與一個在線處理器關聯。本發明當處理器出現故障下線時,任務調度器對任務進行重新分配,使得分布式處理器能對任務進行協調處理。
【專利說明】一種分布式數據處理協調方法及系統
【技術領域】
[0001] 本發明涉及分布式數據處理相關【技術領域】,特別是一種分布式數據處理協調方法 及系統。
【背景技術】
[0002] 當今互聯網發展相當迅速,尤其是大數據時代到來,如何快速處理這些數據是所 有公司面臨的一大挑戰,普遍采用的有以下幾種方法,
[0003] 一、采用單實例多線程處理,
[0004] 這樣的缺點是有單點的風險,一旦實例崩潰,所有數據將無法處理,對于大數據處 理相對較慢,處理不及時,現在已經基本不用。
[0005] 二、采用多實例
[0006] 根據數據進行取模,取模后將不同的數據分給不同的實例,這樣解決了系統的單 點問題,然而其存在的問題為:當某個實例崩潰掉,相應的系統無法得到通知,就會造成數 據無法得到處理。
【發明內容】
[0007] 基于此,有必要針對現有技術在對分布式數據處理系統方面存在的問題,提供一 種分布式數據處理協調方法及系統。
[0008] -種分布式數據處理協調方法,包括:
[0009] 任務調度器分類步驟,任務調度器對任務調度數據庫中的任務進行分類,為每個 任務關聯批次,同一批次關聯一個或多個任務,并將每個批次與一個處理器關聯;
[0010] 處理器獲取批次步驟,處理器從任務調度數據庫中獲取關聯的批次;
[0011] 處理器處理任務步驟,處理器對關聯的批次所關聯的任務進行處理;
[0012] 任務調度器重分配步驟,任務調度器定時檢查處理器的在線狀態,將在線狀態為 下線的處理器作為下線處理器,將在線狀態為在線的處理器作為在線處理器,獲取與所述 下線處理器關聯的批次作為待分配批次,將所述待分配批次重新與一個在線處理器關聯。
[0013] -種分布式數據處理協調系統,包括:
[0014] 協調分類模塊,用于任務調度器對任務調度數據庫中的任務進行分類,為每個任 務關聯批次,同一批次關聯一個或多個任務,并將每個批次與一個處理器關聯;
[0015] 處理器獲取批次模塊,用于處理器從任務調度數據庫中獲取關聯的批次;
[0016] 處理器處理任務模塊,用于處理器對關聯的批次所關聯的任務進行處理;
[0017] 任務調度器重分配模塊,用于任務調度器定時檢查處理器的在線狀態,將在線狀 態為下線的處理器作為下線處理器,將在線狀態為在線的處理器作為在線處理器,獲取與 所述下線處理器關聯的批次作為待分配批次,將所述待分配批次重新與一個在線處理器關 聯。
[0018] 本發明由任務調度器對任務進行分類,由處理器對與其關聯的批次所關聯的任務 進行處理,由于采用了任務調度器進行協調,因此,當處理器出現故障下線時,任務調度器 對任務進行重新分配,使得分布式處理器能對任務進行協調處理。
【專利附圖】
【附圖說明】
[0019] 圖1為本發明一種分布式數據處理協調方法的工作流程圖;
[0020] 圖2為本發明最佳實施例的系統結構圖;
[0021] 圖3為本發明最佳實施例的工作流程圖;
[0022] 圖4為本發明一種分布式數據處理協調系統的結構模塊圖。
【具體實施方式】
[0023] 下面結合附圖和具體實施例對本發明做進一步詳細的說明。
[0024] 如圖1所示為本發明一種分布式數據處理協調方法的工作流程圖,包括:
[0025] 步驟S101,任務調度器對任務調度數據庫中的任務進行分類,為每個任務關聯批 次,同一批次關聯一個或多個任務,并將每個批次與一個處理器關聯;
[0026] 步驟S102,處理器從任務調度數據庫中獲取關聯的批次;
[0027] 步驟S103,處理器對關聯的批次所關聯的任務進行處理;
[0028] 步驟S104,任務調度器定時檢查處理器的在線狀態,將在線狀態為下線的處理器 作為下線處理器,將在線狀態為在線的處理器作為在線處理器,獲取與所述下線處理器關 聯的批次作為待分配批次,將所述待分配批次重新與一個在線處理器關聯。
[0029] 其中,在任務調度器執行完步驟SlOl后,處理器會持續執行步驟S102和步驟S103 以更新其所關聯的批次,從而知道其所需要執行的任務。同時,任務調度器也會持續執行步 驟S104以便定時檢查處理器的在線狀態。
[0030] 上述步驟S102、S103和S104均長期執行直到接收到停止運行命令。
[0031] 通過任務調度器執行步驟S104,使得下線處理器所處理的任務,能夠由其他在線 處理器及時處理。
[0032] 本發明采用的是任務調度器專門進行對任務進行分配,使得處理器無需自行管理 協調任務,提高了處理器的處理速度。
[0033] 其中的批次,是由任務調度器對任務進行分配所預設的編號,將多個任務設定為 同一批次,使得任務調度器能減少分配任務的工作量。將多少個任務或者哪些任務設定為 同一批次,可以由用戶通過配置文件進行設定。而將哪些批次分配給哪些處理器,也可以采 用現有的各種算法實現。最簡單的一種方式,是平均分配方法,即將多個批次平均分配給多 個處理器。
[0034] 在其中一個實施例中,還包括:
[0035] 處理器心跳發送步驟,處理器定時向任務調度數據庫發送心跳信息;
[0036] 所述步驟S104中,任務調度器將超過預設時間內沒有向任務調度數據庫發送心 跳信息的處理器的在線狀態設為下線狀態,將在預設時間內向任務調度數據庫發送心跳信 息的處理器的在線狀態設為在線狀態。
[0037] 處理器定時向任務調度數據庫發送心跳信息,則任務調度器可以根據該心跳信息 判斷處理器是否在線。優選地,一般設定五分鐘內未更新心跳信息就表示對應的處理器已 經下線。心跳信息可以與獲取批次的信息一起共同發送。
[0038] 下線,既可以是處理器與任務調度數據庫之間的網絡連接斷掉,也可以是處理器 宕機。無論針對那種情況,處理器均無法對任務調度數據庫中的任務進行處理,因此其所關 聯的任務將由其他的在線處理器處理。
[0039] 在其中一個實施例中:
[0040] 所述任務調度器重分配步驟中,當任務調度器將所述待分配批次重新與一個在 線處理器關聯前,設定任務調度數據庫的狀態為正在重新分配批次狀態,當任務調度器將 所述待分配批次重新與一個在線處理器關聯后,設定任務調度數據庫的狀態為正常工作狀 態;
[0041] 所述處理器獲取批次步驟,具體包括:
[0042] 處理器檢查任務調度數據庫的狀態:
[0043] 如果任務調度數據庫的狀態為正在重新分配批次狀態,則處理器間隔預設時間后 重新執行所述處理器獲取批次步驟;
[0044] 如果任務調度數據庫的狀態為正常工作狀態,則處理器從任務調度數據庫中獲取 關聯的批次,對關聯的批次所關聯的任務進行處理。
[0045] 本實施例增加了任務調度數據庫的狀態,在任務調度器對任務調度數據庫中的任 務進行重新分配時,禁止處理器獲取批次,從而避免數據沖突或者臟數據問題的出現。
[0046] 在其中一個實施例中,還包括:
[0047] 處理器注冊步驟,處理器向任務調度數據庫發送注冊信息,任務調度數據庫保存 所述注冊信息,并將處理器記錄為已注冊的處理器;
[0048] 所述協調分類步驟中,任務調度器將每個批次與一個在任務調度數據庫中已注冊 的處理器關聯。
[0049] 優選地:
[0050] 所述處理器注冊步驟,具體包括:處理器向任務調度數據庫發送包括處理類型的 注冊信息,任務調度數據庫保存所述注冊信息,并將處理器記錄為已注冊的處理器,注冊信 息中的處理類型作為該已注冊的處理器的處理類型;
[0051] 所述協調分類步驟中,任務調度器對任務調度數據庫中的任務進行分類,為每個 任務關聯批次,同一批次關聯一個或多個相同處理類型的任務,并將每個批次與一個在任 務調度數據庫中已注冊且具有相同處理類型的處理器關聯。
[0052] 不同的處理器的可處理類型可能會不同,或者即使不同的處理器的可處理類型相 同,但為了處理效率的考慮,將不同的處理器設定為不同的用途,從而處理不同的處理類 型,以提高處理效率。
[0053] 如圖2所示為本發明最佳實施例的系統結構圖,具體包括三個處理器21、22、23, 以及任務調度器24,以及任務調度數據庫25。其中三個處理器21、22、23,以及任務調度器 24均與任務調度數據庫25連接以訪問任務調度數據庫25中的數據。
[0054] 其中,任務調度器24與任務調度數據庫24作為數據協調系統(分配者角色)
[0055] 該系統充當現實生活的任務協調,數據分配的工作,該系統會維護與工作者之間 的通信,隨時發現是否有新的工作者加入,是否有工作者中途退出,合時重新分配任務等工 作,該系統中主要有以下幾個關鍵點:
[0056] 任務分類:
[0057] 在處理數據上把數據歸類,比如對賬數據,訂單上架提醒,商品降價提醒,會員生 日祝福等,任務分類不能重復,作為一個例子,定義一個生日祝福這樣一個任務類型,為了 方便后續說明,將其命名"birthdayType",如表1所示為偽數據:
[0058] 表 1
[0059]
【權利要求】
1. 一種分布式數據處理協調方法,其特征在于,包括: 任務調度器分類步驟,任務調度器對任務調度數據庫中的任務進行分類,為每個任務 關聯批次,同一批次關聯一個或多個任務,并將每個批次與一個處理器關聯; 處理器獲取批次步驟,處理器從任務調度數據庫中獲取關聯的批次; 處理器處理任務步驟,處理器對關聯的批次所關聯的任務進行處理; 任務調度器重分配步驟,任務調度器定時檢查處理器的在線狀態,將在線狀態為下線 的處理器作為下線處理器,將在線狀態為在線的處理器作為在線處理器,獲取與所述下線 處理器關聯的批次作為待分配批次,將所述待分配批次重新與一個在線處理器關聯。
2. 根據權利要求1所述的分布式數據處理協調方法,其特征在于,還包括: 處理器屯、跳發送步驟,處理器定時向任務調度數據庫發送屯、跳信息; 所述任務調度器重分配步驟中,任務調度器將超過預設時間內沒有向任務調度數據庫 發送屯、跳信息的處理器的在線狀態設為下線狀態,將在預設時間內向任務調度數據庫發送 屯、跳信息的處理器的在線狀態設為在線狀態。
3. 根據權利要求1所述的分布式數據處理協調方法,其特征在于: 所述任務調度器重分配步驟中,當任務調度器將所述待分配批次重新與一個在線處理 器關聯前,設定任務調度數據庫的狀態為正在重新分配批次狀態,當任務調度器將所述待 分配批次重新與一個在線處理器關聯后,設定任務調度數據庫的狀態為正常工作狀態; 所述處理器獲取批次步驟,具體包括: 處理器檢查任務調度數據庫的狀態: 如果任務調度數據庫的狀態為正在重新分配批次狀態,則處理器間隔預設時間后重新 執行所述處理器獲取批次步驟; 如果任務調度數據庫的狀態為正常工作狀態,則處理器從任務調度數據庫中獲取關聯 的批次,對關聯的批次所關聯的任務進行處理。
4. 根據權利要求1所述的分布式數據處理協調方法,其特征在于,還包括: 處理器注冊步驟,處理器向任務調度數據庫發送注冊信息,任務調度數據庫保存所述 注冊信息,并將處理器記錄為已注冊的處理器; 所述協調分類步驟中,任務調度器將每個批次與一個在任務調度數據庫中已注冊的處 理器關聯。
5. 根據權利要求4所述的分布式數據處理協調方法,其特征在于: 所述處理器注冊步驟,具體包括;處理器向任務調度數據庫發送包括處理類型的注冊 信息,任務調度數據庫保存所述注冊信息,并將處理器記錄為已注冊的處理器,注冊信息中 的處理類型作為該已注冊的處理器的處理類型; 所述協調分類步驟中,任務調度器對任務調度數據庫中的任務進行分類,為每個任務 關聯批次,同一批次關聯一個或多個相同處理類型的任務,并將每個批次與一個在任務調 度數據庫中已注冊且具有相同處理類型的處理器關聯。
6. -種分布式數據處理協調系統,其特征在于,包括: 協調分類模塊,用于任務調度器對任務調度數據庫中的任務進行分類,為每個任務關 聯批次,同一批次關聯一個或多個任務,并將每個批次與一個處理器關聯; 處理器獲取批次模塊,用于處理器從任務調度數據庫中獲取關聯的批次; 處理器處理任務模塊,用于處理器對關聯的批次所關聯的任務進行處理; 任務調度器重分配模塊,用于任務調度器定時檢查處理器的在線狀態,將在線狀態為 下線的處理器作為下線處理器,將在線狀態為在線的處理器作為在線處理器,獲取與所述 下線處理器關聯的批次作為待分配批次,將所述待分配批次重新與一個在線處理器關聯。
7. 根據權利要求6所述的分布式數據處理協調系統,其特征在于,還包括: 處理器屯、跳發送模塊,用于處理器定時向任務調度數據庫發送屯、跳信息; 所述任務調度器重分配模塊中,任務調度器將超過預設時間內沒有向任務調度數據庫 發送屯、跳信息的處理器的在線狀態設為下線狀態,將在預設時間內向任務調度數據庫發送 屯、跳信息的處理器的在線狀態設為在線狀態。
8. 根據權利要求6所述的分布式數據處理協調系統,其特征在于: 所述任務調度器重分配模塊中,當任務調度器將所述待分配批次重新與一個在線處理 器關聯前,設定任務調度數據庫的狀態為正在重新分配批次狀態,當任務調度器將所述待 分配批次重新與一個在線處理器關聯后,設定任務調度數據庫的狀態為正常工作狀態; 所述處理器獲取批次模塊,具體用于: 處理器檢查任務調度數據庫的狀態: 如果任務調度數據庫的狀態為正在重新分配批次狀態,則處理器間隔預設時間后重新 執行所述處理器獲取批次模塊; 如果任務調度數據庫的狀態為正常工作狀態,則處理器從任務調度數據庫中獲取關聯 的批次,對關聯的批次所關聯的任務進行處理。
9. 根據權利要求6所述的分布式數據處理協調系統,其特征在于,還包括: 處理器注冊模塊,用于處理器向任務調度數據庫發送注冊信息,任務調度數據庫保存 所述注冊信息,并將處理器記錄為已注冊的處理器; 所述協調分類模塊中,任務調度器將每個批次與一個在任務調度數據庫中已注冊的處 理器關聯。
10. 根據權利要求9所述的分布式數據處理協調系統,其特征在于: 所述處理器注冊模塊,具體用于;處理器向任務調度數據庫發送包括處理類型的注冊 信息,任務調度數據庫保存所述注冊信息,并將處理器記錄為已注冊的處理器,注冊信息中 的處理類型作為該已注冊的處理器的處理類型; 所述協調分類模塊中,任務調度器對任務調度數據庫中的任務進行分類,為每個任務 關聯批次,同一批次關聯一個或多個相同處理類型的任務,并將每個批次與一個在任務調 度數據庫中已注冊且具有相同處理類型的處理器關聯。
【文檔編號】G06F9/48GK104462302SQ201410710691
【公開日】2015年3月25日 申請日期:2014年11月28日 優先權日:2014年11月28日
【發明者】凡紅恩 申請人:北京京東尚科信息技術有限公司, 北京京東世紀貿易有限公司