分布式應用程序的管理方法和分布式系統的制作方法
【技術領域】
[0001] 本發明涉及計算機技術領域,尤其涉及一種分布式應用程序的管理方法和分布式 系統。
【背景技術】
[0002] 分布式應用是將應用程序分布在不同的計算機上,通過網絡來共同完成一項任務 的工作方式。由于分布式應用可以提高應用程序的運行速度,進而可以提升用戶的感知和 滿意度,因此,越來越多的應用程序都被開發成了分布式應用程序。
[0003] 目前,市面上有許多通用的分布式框架,用戶可以通過任一通用的分布式框架開 發各種類型的分布式應用程序,并通過通用的分布式框架所對應的分布式系統運行分布式 應用程序。為了使分布式系統在運行分布式應用程序時,可以自動將分布式應用程序分布 在網絡中的計算機上,用戶需要在開發分布式應用程序時,結合分布式系統的資源信息設 定分布式應用程序在分布式系統的分布位置。
[0004] 但是,在采用上述方式實現分布式系統自動分布分布式應用程序時,用戶需要耗 費大量的時間去設定分布式應用程序在分布式系統中的分布位置。
【發明內容】
[0005] 本發明提供一種分布式應用程序的管理方法和分布式系統,用以解決現有技術中 為了使分布式系統能夠自動分布分布式應用程序,用戶在使用通用的分布式框架開發分布 式應用程序時,需要耗費大量的時間去設定分布式應用程序在分布式系統中的分布位置的 問題。
[0006] 為達到上述目的,本發明的實施例采用如下技術方案:
[0007] 第一方面,本發明提供一種分布式應用程序的管理方法,包括:
[0008] 根據分布式應用程序中各進程的邏輯關系,建立所述分布式應用程序的進程樹;
[0009] 確定所述進程樹中的每個父進程和每個所述父進程的子進程;
[0010] 在每個所述父進程中加入所述父進程的子進程的分布策略;其中,所述父進程的 子進程的分布策略用于指示所述父進程的子進程在分布式系統中的分布方式;
[0011] 根據所述進程樹從上到下的順序依次創建每個所述父進程,并根據每個所述父進 程的子進程的分布策略和所述分布式系統的資源信息,確定分布每個所述父進程的子進程 的目標設備;
[0012] 在分布每個所述父進程的子進程的目標設備中創建每個所述父進程的子進程。
[0013] 結合第一方面,在第一方面的第一種可能的實施方式中,所述方法還包括:
[0014] 在每個所述父進程中加入所述父進程的子進程的異常處理策略;其中,所述父進 程的子進程的異常處理策略用于指示當所述父進程的子進程異常時,對所述父進程的子進 程的處理方式。
[0015] 結合第一方面的第一種可能的實施方式,在第一方面的第二種可能的實施方式 中,所述父進程的子進程的異常處理策略至少包括以下一種:忽略異常處理策略,重啟處理 策略,退出處理策略;
[0016] 其中,所述忽略異常處理策略為,忽略所述父進程的子進程上報的異常消息的處 理策略;
[0017] 所述重啟處理策略為,將上報異常消息的所述父進程的子進程重啟的處理策略;
[0018] 所述退出處理策略為,將上報異常消息的所述父進程的子進程退出運行的處理策 略。
[0019] 結合第一方面的第一種可能的實施方式或第一方面的第二種可能的實施方式,在 第一方面的第三種可能的實施方式中,所述父進程的子進程的異常處理策略還用于指示當 所述父進程的子進程異常時,對所述父進程的其他子進程的處理規則。
[0020] 結合第一方面的第三種可能的實施方式,在第一方面的第四種可能的實施方式 中,所述父進程的子進程的異常處理策略還至少包括以下一種:單獨處理規則,全部處理規 則;
[0021] 其中,所述單獨處理規則為,對所述父進程的其他子進程不做處理的處理規則;所 述全部處理規則為,對所述父進程的全部子進程使用同一種異常處理策略處理的處理規 則。
[0022] 結合第一方面至第一方面的第二種可能的實施方式中的任一項,在第一方面的第 五種可能的實施方式中,所述父進程的子進程的分布策略至少包括以下一種:本地分布策 略,集中分布策略,任意分布策略;
[0023] 其中,所述本地分布策略為,所述父進程和所述父進程的子進程分布在同一目標 設備中的分布策略;
[0024] 所述集中分布策略為,所述父進程的所有子進程分布在同一目標設備中的分布策 略;
[0025] 所述任意分布策略為,所述父進程和所述父進程的子進程根據所述分布式系統的 資源信息任意分布的分布策略。
[0026] 結合第一方面至第一方面的第二種可能的實施方式中的任一項,在第一方面的第 六種可能的實施方式中,所述方法還包括:
[0027] 在每個所述父進程和每個所述父進程的子進程中分別添加監控策略;所述監控策 略用于指示每個所述父進程和每個所述父進程的子進程之間的監控關系。
[0028] 結合第一方面的第六種可能的實施方式,在第一方面的第七種可能的實施方式 中,在分布每個所述父進程的子進程的目標設備中創建每個所述父進程的子進程時,所述 方法還包括:
[0029] 根據所述監控策略,建立每個所述父進程和每個所述父進程的子進程的監控連 接,以使得所述父進程和所述父進程的子進程通過所述監控連接互相發送周期性的心跳信 息。
[0030] 第二方面,本發明提供一種分布式系統,包括:多個資源設備和分布式平臺;其 中,所述分布式平臺用于執行如權利要求1-8任一所述的分布式應用程序的管理方法;所 述多個資源設備用于運行所述分布式應用程序。
[0031] 本發明提供的分布式應用程序的管理方法和分布式系統,通過預設的多個通用的 分布策略,使得用戶在使用通用的分布式框架開發各種類型的分布式應用程序時,均可以 根據每個分布式應用程序的程序邏輯,在每個分布式應用程序的進程樹中的每個父進程中 加入為每個父進程的子進程選擇的分布策略,使得分布式系統在根據分布式應用程序的進 程樹從上到下的順序依次創建分布式應用程序的每個父進程時,可以根據每個父進程中的 父進程的子進程的分布策略和分布式系統的資源信息,選擇合適的目標設備創建每個父進 程的子進程,使分布式系統實現了自動分布分布式應用程序。與現有技術中用戶在使用通 用的分布式框架開發每個分布式應用程序時,需要結合分布式系統的資源信息,耗費大量 的時間去設定每個分布式應用程序在分布式系統中的分布位置,即,需要耗費大量的時間 為每個分布式應用程序編寫代碼,以實現分布式應用程序在分布式系統中的自動分布相 比,本發明實施例所提供的分布式應用程序的管理方法和分布式系統,可以節省用戶開發 分布式應用程序的時間,提高了分布式應用程序開發的效率。
【附圖說明】
[0032] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以 根據這些附圖獲得其他的附圖。
[0033] 圖1為本發明實施例所提供的分布式應用程序的管理方法實施例一的流程圖;
[0034] 圖2為本發明實施例所提供的分布式應用程序的進程樹的結構示意圖;
[0035] 圖3為本發明實施例所提供的分布式應用程序的管理方法實施例二的流程圖;
[0036] 圖4為本發明實施例所提供的分布式應用程序的管理方法實施例三的流程圖;
[0037] 圖5為本發明實施例所提供的分布式應用程序的管理方法實施例四的流程圖;
[0038] 圖6為本發明實施例所提供的父進程和父進程的子進程采用本地分布策略的分 布示意圖;
[0039] 圖7為本發明實施例所提供的父進程和父進程的子進程采用集中分布策略的分 布示意圖;
[0040] 圖8為本發明實施例所提供的父進程和父進程的子進程采用任意分布策略的分 布示意圖;
[0041] 圖9為本發明實施例所提供的父進程和父進程的子進程采用集中分布策略加松 弛分布策略的分布不意圖;
[0042] 圖10為本發明實施例所提供的分布式應用程序的管理方法實施例五的流程圖;
[0043] 圖11為本發明實施例所提供的分布式應用程序的管理方法實施例六的流程圖; [0044]圖12為本發明實施例所提供的分布式系統的結構示意圖。
【具體實施方式】
[0045] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0046] 本發明實施例可以適用于通用的分布式框架所對應的分布式系統中,其可以實現 自動管理運行在分布式系統中的分布式應用程序。因此,本發明實施例提供的分布式應用 程序的管理方法和分布式系統,旨在解決現有技術中為了使分布式系統能夠自動分布分布 式應用程序,用戶在使用通用的分布式框架開發分布式應用程序時,需要耗費大量的時間 去設定分布式應用程序在分布式系統中的分布位置的問題。
[0047] 需要說明的是,當分布式應用程序在分布式系統中運行時,進程為分布式應用程 序在分布式系統中的執行實體,其可以申請