本發(fā)明涉及云計算領域,尤其涉及一種調度方法及裝置。
背景技術:
:云計算(英文:cloudcomputing)是基于互聯(lián)網(wǎng)的相關服務的增加、使用和交付模式,通過互聯(lián)網(wǎng)提供動態(tài)、易擴展、虛擬化的資源?,F(xiàn)有的云計算領域中,已經(jīng)實現(xiàn)了對基礎設施資源的集中調度和發(fā)放,例如,可以通過虛擬化軟件的調度器對虛擬機資源實現(xiàn)統(tǒng)一調度。基礎設施資源以節(jié)點資源的方式存在,節(jié)點資源包括物理服務器資源、虛擬機、容器或類似的邏輯計算資源。每個節(jié)點資源上均部署應用或者中間件,應用或中間件以進程資源的方式存在,進程資源可以為數(shù)據(jù)庫進程、應用的組件進程或者任何以進程方式存在運行的其他資源。對于節(jié)點資源和進程資源而言,某一資源的變化會導致另一資源的變化,也就是說,節(jié)點資源的調度和進程資源的調度存在雙向聯(lián)動。例如,在新增一個節(jié)點資源時,需要在新增的節(jié)點資源上部署和啟動某些進程資源,以運行業(yè)務;在某個應用的進程資源發(fā)生故障,且該進程無法修復時,需要重啟該進程所歸屬的節(jié)點資源或重新為該進程分配節(jié)點資源。但是,現(xiàn)有技術中,節(jié)點資源與進程資源之間的雙向聯(lián)動需要手動操作,無法實現(xiàn)云場景下資源調度的自動化需求。技術實現(xiàn)要素:本發(fā)明提供一種調度方法及裝置,能夠解決無法實現(xiàn)云場景下資源調度的自動化需求的問題。第一方面,提供一種調度裝置,該調度裝置包括第一調度器適配器、第二調度器適配器以及調度引擎,上述第一調度器適配器和上述第二調度器適配器分別與上述調度引擎連接,且上述第一調度器適配器與上述第二調度器適配器為不同類型的調度器適配器。具體的,上述第一調度器適配器,用于接收與其對應的第一調度器發(fā)送的包括已發(fā)生事件以及與已發(fā)生事件對應的對象的標識的事件通知,并向上述調度引擎發(fā)送該事件通知;上述調度引擎,用于接收上述第一調度器適配器發(fā)送的事件通知,并從策略庫中獲取分別與已發(fā)生事件對應的待執(zhí)行調度操作以及第二調度器的標識,再向上述第二調度器適配器發(fā)送待執(zhí)行調度操作、對象的標識以及第二調度器的標識,策略庫存儲有已發(fā)生事件、待執(zhí)行調度操作與第二調度器的標識之間的對應關系,待執(zhí)行調度操作與上述第二調度器適配器對應;上述第二調度器適配器,用于接收上述調度引擎發(fā)送的待執(zhí)行調度操作、對象的標識以及第二調度器的標識,并根據(jù)第二調度器的標識,向第二調度器發(fā)送攜帶待執(zhí)行調度操作和對象的標識的通知消息,以通知第二調度器根據(jù)對象的標識完成待執(zhí)行調度操作。由于本發(fā)明實施例的調度引擎中包括存儲有已發(fā)生事件、待執(zhí)行調度操作與第二調度器的標識之間的對應關系的策略庫,且待執(zhí)行調度操作與第二調度器適配器對應,因此,調度引擎在接收到攜帶已發(fā)生事件的事件通知后,能夠根據(jù)該策略庫獲取到與該已發(fā)生事件對應的待執(zhí)行調度操作,并通知第二調度器適配器觸發(fā)第二調度器完成待執(zhí)行調度操作,實現(xiàn)了資源調度的雙向聯(lián)動,且無需手動操作,滿足了云場景下資源調度的自動化需求??蛇x的,在本發(fā)明實施例的一種可能的實現(xiàn)方式中,上述第一調度器適配器為節(jié)點調度器適配器,上述第一調度器為節(jié)點調度器,上述第二調度器適配器為進程調度器適配器,上述第二調度器為進程調度器;或者,上述第一調度器適配器為進程調度器適配器,上述第一調度器為進程調度器,上述第二調度器適配器為節(jié)點調度器適配器,上述第二調度器為節(jié)點調度器??梢钥闯?,第一調度器適配器可以為進程調度器適配器,也可以為節(jié)點調度器適配器,因此,本發(fā)明實施例提供的調度裝置可以實現(xiàn)進程資源的變化引發(fā)節(jié)點資源的變化,也可以實現(xiàn)節(jié)點資源的變化引發(fā)進程資源的變化,實現(xiàn)了節(jié)點資源的調度與進程資源的調度的雙向聯(lián)動??蛇x的,在本發(fā)明實施例的另一種可能的實現(xiàn)方式中,上述第一調度器適配器,還用于獲取第一注冊信息,并向上述調度引擎發(fā)送第一注冊信息,第一注冊信息包括第一可執(zhí)行事件、第一可執(zhí)行調度操作以及第一設備的特征之間的對應關系,第一可執(zhí)行事件為第一調度器待執(zhí)行的事件,且第一可執(zhí)行事件觸發(fā)第一設備完成第一可執(zhí)行調度操作,第一設備的特征包括第二調度器的標識;上述第二調度器適配器,還用于獲取第二注冊信息,并向上述調度引擎發(fā)送第二注冊信息,第二注冊信息包括第二可執(zhí)行事件、第二可執(zhí)行調度操作以及第二設備的特征之間的對應關系,第二可執(zhí)行事件為第二調度器待執(zhí)行的事件,且第二可執(zhí)行事件觸發(fā)第二設備完成第二可執(zhí)行調度操作,第二設備的特征包括第一調度器的標識;上述調度引擎,用于接收并存儲上述第一調度器適配器發(fā)送的第一注冊信息,以及接收并存儲上述第二調度器適配器發(fā)送的第二注冊信息,以生成策略庫。本發(fā)明實施例中的調度器適配器動態(tài)注冊與該調度器適配器對應的調度器可實現(xiàn)的資源的調度,因此,本發(fā)明實施例提供的調度裝置與調度器之間無需技術耦合,只需接口調用即可實現(xiàn)資源的動態(tài)調度??蛇x的,在本發(fā)明實施例的另一種可能的實現(xiàn)方式中,第一設備的特征還包括上述第二調度器適配器的標識,第二設備的特征還包括上述第一調度器適配器的標識。若第一設備的特征還包括第二調度器適配器的標識,第二設備的特征還包括上述第一調度器適配器的標識,則調度引擎中的策略庫中存儲的對應關系包括有第一調度器適配器的標識或第二調度器適配器的標識,利于調度引擎準確確定與哪個調度器適配器通信。第二方面,提供一種調度方法,該調度方法應用于如上述第一方面及其各種可能的實現(xiàn)方式中任意一項所述的調度裝置。具體的,首先,第一調度器適配器接收與其對應的第一調度器發(fā)送的事件通知,并向調度引擎發(fā)送事件通知,事件通知包括已發(fā)生事件以及與已發(fā)生事件對應的對象的標識;然后,調度引擎從策略庫中獲取分別與已發(fā)生事件對應的待執(zhí)行調度操作以及第二調度器的標識,并向第二調度器適配器發(fā)送待執(zhí)行調度操作、對象的標識以及第二調度器的標識,策略庫存儲有已發(fā)生事件與待執(zhí)行調度操作之間的對應關系,待執(zhí)行調度操作與第二調度器適配器對應;最后,第二調度器適配器根據(jù)第二調度器的標識,向第二調度器發(fā)送攜帶待執(zhí)行調度操作和對象的標識的通知消息,以通知第二調度器根據(jù)對象的標識完成待執(zhí)行調度操作。進一步地,在本發(fā)明實施例的一種實現(xiàn)方式中,第一調度器適配器接收第一調度器發(fā)送的事件通知之前,第一調度適配器還獲取第一注冊信息,并向調度引擎發(fā)送第一注冊信息,第一注冊信息包括第一可執(zhí)行事件、第一可執(zhí)行調度操作以及第一設備的特征之間的對應關系,第一可執(zhí)行事件為第一調度器待執(zhí)行的事件,且第一可執(zhí)行事件觸發(fā)第一設備完成第一可執(zhí)行調度操作,第一設備的特征包括第二調度器的標識;第二調度器適配器還獲取第二注冊信息,并向調度引擎發(fā)送第二注冊信息,第二注冊信息包括第二可執(zhí)行事件、第二可執(zhí)行調度操作以及第二設備的特征之間的對應關系,第二可執(zhí)行事件為第二調度器待執(zhí)行的事件,且第二可執(zhí)行事件觸發(fā)第二設備完成第二可執(zhí)行調度操作,第二設備的特征包括第一調度器的標識;調度引擎還存儲第一注冊信息和第二注冊信息,以生成策略庫。進一步地,在本發(fā)明實施例的一種實現(xiàn)方式中,第一設備的特征還包括第二調度器適配器的標識,第二設備的特征還包括第一調度器適配器的標識。進一步地,在本發(fā)明實施例的一種實現(xiàn)方式中,第一調度器適配器為節(jié)點調度器適配器,第一調度器為節(jié)點調度器,第二調度器適配器為進程調度器適配器,第二調度器為進程調度器;或者,第一調度器適配器為進程調度器適配器,第一調度器為進程調度器,第二調度器適配器為節(jié)點調度器適配器,第二調度器為節(jié)點調度器。在本發(fā)明實施例中,上述調度裝置的名字對設備或功能模塊本身不構成限定,在實際實現(xiàn)中,這些設備或功能模塊可以以其他名稱出現(xiàn)。只要各個設備或功能模塊的功能和本發(fā)明實施例類似,屬于本發(fā)明權利要求及其等同技術的范圍之內。本發(fā)明實施例第二方面及其各種實現(xiàn)方式的具體描述,可以參考第一方面及其各種實現(xiàn)方式中的詳細描述;并且,第二方面及其各種實現(xiàn)方式的有益效果,可以參考第一方面及其各種實現(xiàn)方式中的有益效果分析,此處不再贅述。本發(fā)明實施例的這些方面或其他方面在以下的描述中會更加簡明易懂。附圖說明為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明實施例的一些實施例。圖1為現(xiàn)有技術中節(jié)點資源與進程資源的結構示意圖;圖2為節(jié)點資源的調度影響進程資源的調度的流程示意圖;圖3為進程資源的調度影響節(jié)點資源的調度的流程示意圖;圖4為本發(fā)明實施例提供的調度系統(tǒng)的結構示意圖;圖5為本發(fā)明實施例提供的調度方法的流程示意圖一;圖6為本發(fā)明實施例提供的調度方法的流程示意圖二;圖7為本發(fā)明實施例中擴展MongoDB的結構示意圖;圖8為本發(fā)明實施例在擴展MongoDB中執(zhí)行調度方法的流程示意圖一;圖9為本發(fā)明實施例在擴展MongoDB中執(zhí)行調度方法的流程示意圖二;圖10為本發(fā)明實施例提供的調度裝置的結構示意圖。具體實施方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行詳細地描述。以下描述中,為了說明而不是為了限定,提出了諸如特定系統(tǒng)結構、接口、技術之類的具體細節(jié),以便透切理解本發(fā)明實施例。然而,本領域的技術人員應當清楚,在沒有這些具體細節(jié)的其它實施例中也可以實現(xiàn)本發(fā)明實施例。在其它情況中,省略對眾所周知的裝置、電路以及方法的詳細說明,以免不必要的細節(jié)妨礙本發(fā)明實施例的描述。其中,本發(fā)明實施例中術語“和/或”,僅僅是一種描述關聯(lián)對象的關聯(lián)關系,表示可以存在三種關系,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。本發(fā)明的說明書和權利要求書及上述附圖中的術語“第一”和“第二”等是用于區(qū)別不同對象,而不是用于限定特定順序。為了方便理解本發(fā)明實施例,首先在此介紹本發(fā)明實施例中會引入的相關要素。節(jié)點資源是指如物理服務器資源、虛擬機、容器或類似的邏輯計算資源。節(jié)點級調度是指通過虛擬化軟件的調度器對節(jié)點資源的調度,包括創(chuàng)建、查詢、啟動、停止、銷毀等。其中,用以實現(xiàn)調度節(jié)點資源的調度器稱為節(jié)點調度器。進程資源是指節(jié)點資源上部署的應用或者中間件,例如數(shù)據(jù)庫進程、應用的組件進程或者任何以進程方式存在運行的其他資源。進程級調度是指通過虛擬化軟件的調度器對進程資源的調度,包括創(chuàng)建、查詢、啟動、停止、銷毀等。其中,用以實現(xiàn)調度進程資源的調度器稱為進程調度器。調度是指在特定的資源環(huán)境下,根據(jù)一定的資源使用規(guī)則進行資源配給、放置(英文:placement)和配置的過程。事件是指節(jié)點調度器或進程調度器完成的某一調度,例如節(jié)點調度器新建一個節(jié)點資源、進程調度器終止某一進程資源。調度操作是指事件觸發(fā)的相關調度,例如,若事件為新建節(jié)點資源,則該事件觸發(fā)在新建節(jié)點資源上部署和啟動某些進程資源,這里,在新建節(jié)點資源上部署和啟動某些進程資源為調度操作。如圖1所示,現(xiàn)有的云計算領域中,每個節(jié)點資源上部署有至少一個進程資源,節(jié)點調度器可以統(tǒng)一調度節(jié)點資源,進程調度器可統(tǒng)一調度進程資源。節(jié)點級調度和進程級調度存在雙向聯(lián)動,也就是說,某一資源的變化會導致另一資源的變化。例如,結合圖1,如圖2所示,節(jié)點調度器新增一個節(jié)點資源時,進程調度器需要在新增的節(jié)點資源上部署和啟動某些進程資源,以運行業(yè)務。結合圖1,如圖3所示,在某個應用的進程故障,且進程調度器無法修復時,節(jié)點調度器需要重啟該進程所歸屬的節(jié)點資源或重新為該進程分配節(jié)點資源。現(xiàn)有技術中,存在節(jié)點級調度到進程級調度的單向聯(lián)動,但并不存在支持進程級調度到節(jié)點級調度的聯(lián)動。例如,阿帕奇(英文:ApacheHTTPServer,簡稱:Apache)開源的著名DCOS框架Mesos僅支持從節(jié)點級調度到進程級調度的單向聯(lián)動,并不支持從進程級調度到節(jié)點級調度的反向聯(lián)動。目前,節(jié)點級調度和進程級調度之間的雙向聯(lián)動需要手動操作才能實現(xiàn),這樣導致無法實現(xiàn)云場景下資源調度的自動化需求。為了解決現(xiàn)有技術中無法實現(xiàn)云場景下資源調度的自動化需求的問題,本發(fā)明實施例提供一種調度方法,在現(xiàn)有的云場景中引入了包括第一調度器適配器、第二調度器適配器和調度引擎的調度裝置,且第一調度器適配器與第二調度器適配器屬于不同類型,該調度引擎包括存儲有事件、調度操作以及完成調度操作的設備的特征之間的對應關系的策略庫,這樣,調度引擎能夠根據(jù)策略庫獲取到與某一已發(fā)生事件對應的待執(zhí)行調度操作和設備的特征,進而觸發(fā)該設備完成待執(zhí)行調度操作。由于第一調度器適配器與第二調度器適配器屬于不同類型,因此,第一調度器適配器可以為節(jié)點調度器適配器和進程調度器適配器中的其中一個,第二調度器為節(jié)點調度器適配器和進程調度器適配器中的另外一個。這樣,本發(fā)明實施例提供的調度方法能夠實現(xiàn)進程級調度和節(jié)點級調度之間的雙向聯(lián)動,且無需手動操作,滿足了云場景下資源調度的自動化需求。本發(fā)明實施例提供的調度方法應用于調度系統(tǒng)。圖4是本發(fā)明實施例提供的調度系統(tǒng)的結構示意圖。參見圖4,該調度系統(tǒng)包括調度裝置40、至少一個第一調度器41以及至少一個第二調度器42。其中,調度裝置40包括第一調度器適配器401、調度引擎402和第二調度器適配器403,第一調度器適配器401與第二調度器適配器403屬于不同類型,每個第一調度器41均與第一調度器適配器401連接,每個第二調度器42均與第二調度器適配器403連接。第一調度器適配器401用于和與該第一調度器適配器401相連接的第一調度器41通信,還用于和與該第一調度器適配器401相連接的調度引擎402通信。第二調度器適配器403用于和與該第二調度器適配器403相連接的第二調度器42通信,還用于和與該第二調度器適配器403相連接的調度引擎102通信。調度引擎402包括接收單元4020、存儲單元4021、處理單元4022以及發(fā)送單元4023。接收單元4020用于接收第一調度器適配器401或第二調度器適配器403發(fā)送的事件、調度操作以及完成調度操作的設備的特征之間的對應關系,存儲單元4021用于存儲接收單元4020接收到的對應關系,處理單元4022用于獲取與某一已發(fā)生事件對應的調度操作,發(fā)送單元4023用于發(fā)送處理單元獲取到的調度操作。存儲單元4021包括策略庫4024,該策略庫4024包括事件、調度操作以及完成調度操作的設備的特征之間的對應關系。其中,事件可以為第一調度器41待執(zhí)行的事件,也可以為第二調度器42待執(zhí)行的事件,本發(fā)明實施例對此不作具體限定。策略庫4024可以以表格的形式在調度引擎402中存儲。示例性的,若完成調度操作的設備的特征為調度器的標識,則包括事件、調度操作以及完成調度操作的調度器的標識之間的對應關系的策略庫1024的格式如表1所示。表1事件調度操作調度器的標識新建節(jié)點在新建節(jié)點上創(chuàng)建進程AII進程B故障重新啟動節(jié)點CXX………………表1中,若事件為新建節(jié)點,則需要設備II在新建節(jié)點上創(chuàng)建進程A;若進程B故障,則需要設備XX觸發(fā)節(jié)點C重啟。需要說明的是,表1只是以表格的形式示意事件、調度操作以及完成調度操作的調度器的標識之間的對應關系在調度引擎402中的存儲形式,并不是對事件、調度操作以及完成調度操作的調度器的標識之間的對應關系在調度引擎402中的存儲形式的限定,當然,上述對應關系在調度引擎402中的存儲形式還可以以其他的形式存儲,本發(fā)明實施例對此不做限定。可選的,完成調度操作的設備的標識還可以包括調度器適配器的標識。這樣,調度引擎402根據(jù)該策略庫1024可以更加方便、迅速的確定出與哪一調度器適配器通信。示例性的,結合表1,若完成調度操作的設備的特征還可以包括調度器適配器的標識,則策略庫1024的格式如表2所示。表2其中,本發(fā)明實施例中的調度器的標識可以為調度器的地址,還可以為其他用于唯一表示調度器的信息,本發(fā)明實施例對此不作具體限定。同理,本發(fā)明實施例中的調度器適配器的標識可以為調度器適配器的地址,還可以為其他用于唯一表示調度器適配器的信息,本發(fā)明實施例對此不作具體限定??蛇x的,圖4中的第一調度器41為節(jié)點調度器,第二調度器42為進程調度器,相應的,第一調度器適配器401為節(jié)點調度器適配器,第二調度器適配器403為進程調度器適配器;或者,第一調度器41為進程調度器,第二調度器42為節(jié)點調度器,相應的,第一調度器適配器401為進程調度器適配器,第二調度器適配器403為節(jié)點調度器適配器。圖5為本發(fā)明實施例提供的一種調度方法的流程示意圖,該調度方法可以應用在圖4所示的調度系統(tǒng)中。參見圖5,該調度方法包括:S500、第一調度器向調度裝置中的第一調度器適配器發(fā)送包括該第一調度器完成的已發(fā)生事件以及與已發(fā)生事件對應的對象的標識的事件通知。S501、第一調度器適配器向調度裝置中的調度引擎發(fā)送事件通知。S502、調度引擎從策略庫中獲取分別與已發(fā)生事件對應的待執(zhí)行調度操作以及第二調度器的標識。策略庫存儲有已發(fā)生事件、待執(zhí)行調度操作與第二調度器的標識之間的對應關系,待執(zhí)行調度操作與第二調度器適配器對應。S503、調度引擎向調度裝置中的第二調度器適配器發(fā)送待執(zhí)行調度操作、對象的標識以及第二調度器的標識。S504、第二調度器適配器向第二調度器發(fā)送攜帶待執(zhí)行調度操作和對象的標識的通知消息,以通知第二調度器根據(jù)對象的標識完成待執(zhí)行調度操作。本發(fā)明實施例中的第一調度器在完成已發(fā)生事件后,向調度裝置中的第一調度器適配器發(fā)送已發(fā)生事件以及與該已發(fā)生事件對應的對象的標識,便于調度裝置中的第一調度器適配器與該調度裝置中的調度引擎通信,觸發(fā)與該已發(fā)生事件對應的待執(zhí)行調度操作的完成,即執(zhí)行S500。可選的,若已發(fā)生事件與某一節(jié)點對應,則與該已發(fā)生事件對應的對象的標識為該節(jié)點的標識;若已發(fā)生事件與某一進程對應,則與該已發(fā)生事件對應的對象的標識為該進程的標識。示例性的,若第一調度器為節(jié)點調度器,該節(jié)點調度器在新建節(jié)點A后,向節(jié)點調度器適配器發(fā)送包括新建節(jié)點和新建節(jié)點的標識A的事件通知。第一調度器適配器在接收到事件通知后,會向調度引擎轉發(fā)該事件通知,便于調度引擎從策略庫中獲取分別與事件通知中的已發(fā)生事件對應的待執(zhí)行調度操作以及第二調度器的標識,即執(zhí)行S501和S502。本發(fā)明實施例的調度引擎中存儲有策略庫,該策略庫的格式可以參考上述表1或表2,此處不再對此進行詳細贅述。結合上述描述可知,策略庫中存儲有事件、調度操作以及完成調度操作的設備的特征,本發(fā)明實施例中的已發(fā)生事件為策略庫中至少一個事件中的其中一個。從上面描述可知,策略庫中的調度操作為與其對應的事件觸發(fā)的調度,由于進程級調度和節(jié)點級調度存在雙向聯(lián)動,因此,若某一事件與節(jié)點資源對應,則與該事件對應的調度操作與進程資源對應。相應的,若某一事件與進程資源對應,則與該事件對應的調度操作與節(jié)點資源對應。因此,與第一調度器完成的已發(fā)生事件對應的調度操作與第二調度器適配器對應。這樣,即使策略庫中完成調度操作的設備的特征不包括調度器適配器的標識,調度引擎也可確定出待執(zhí)行調度操作與第二調度器適配器對應。調度引擎在獲取到待執(zhí)行調度操作以及第二調度器的標識后,向第二調度器適配器發(fā)送待執(zhí)行調度操作、對象的標識以及第二調度器的標識,便于第二調度器適配器觸發(fā)第二調度器根據(jù)對象的標識完成待執(zhí)行調度操作,即執(zhí)行S503和S504。由于本發(fā)明實施例的調度引擎中包括存儲有已發(fā)生事件、待執(zhí)行調度操作與第二調度器的標識之間的對應關系的策略庫,且待執(zhí)行調度操作與第二調度器適配器對應,因此,調度引擎在接收到攜帶已發(fā)生事件的事件通知后,能夠根據(jù)該策略庫獲取到與該已發(fā)生事件對應的待執(zhí)行調度操作,并通知第二調度器適配器觸發(fā)第二調度器完成待執(zhí)行調度操作,實現(xiàn)了資源調度的雙向聯(lián)動,且無需手動操作,滿足了云場景下資源調度的自動化需求。進一步地,在第一調度器向第一調度器適配器發(fā)送事件通知之前,第一調度器適配器和第二調度器適配器還分別與調度引擎通信,便于調度引擎生成策略庫,以實現(xiàn)資源調度的雙向聯(lián)動。具體的,結合圖5,如圖6所示,在S500之前,本發(fā)明實施例提供的調度方法還包括:S505、第一調度器適配器獲取第一注冊信息,并向調度引擎發(fā)送該第一注冊信息。第一注冊信息包括第一可執(zhí)行事件、第一可執(zhí)行調度操作以及第一設備的特征之間的對應關系,第一可執(zhí)行事件為第一調度器待執(zhí)行的事件,且第一可執(zhí)行事件觸發(fā)第一設備完成第一可執(zhí)行調度操作,所述第一設備的特征包括第二調度器的標識。S506、第二調度器適配器獲取第二注冊信息,并向調度引擎發(fā)送第二注冊信息。第二注冊信息包括第二可執(zhí)行事件、第二可執(zhí)行調度操作以及第二設備的特征之間的對應關系,第二可執(zhí)行事件為第二調度器待執(zhí)行的事件,且第二可執(zhí)行事件觸發(fā)第二設備完成第二可執(zhí)行調度操作,第二設備的特征包括第一調度器的標識。S507、調度引擎存儲第一注冊信息和第二注冊信息,以生成策略庫。其中,本發(fā)明實施例中可以先執(zhí)行S505,后執(zhí)行S506,也可以先執(zhí)行S506,后執(zhí)行S507,還可以同時執(zhí)行S505和S506,本發(fā)明實施例對此不作具體限定??梢钥闯?,本發(fā)明實施例中的第一調度器適配器動態(tài)注冊與第一調度器可實現(xiàn)的資源的調度,第二調度器適配器也可動態(tài)注冊與第二調度器可實現(xiàn)的資源的調度,因此,本發(fā)明實施例中的調度裝置與第一調度器或者與第二調度器之間無需技術耦合,只需接口調用即可實現(xiàn)資源的動態(tài)調度。為了更加方便理解本發(fā)明實施例提供的調度方法,本發(fā)明實施例以在MongoDB(分布式文檔存儲數(shù)據(jù)庫)中實現(xiàn)資源調度為例進行說明。本發(fā)明實施例在現(xiàn)有的MongoDB中添加包括節(jié)點調度器適配器、進程調度器適配器以及調度引擎的調度裝置。圖7是本發(fā)明實施例中擴展之后的MongoDB的結構示意圖。圖7中的Nova為私有云場景下虛擬機(英文:VirtualMachine,簡稱:VM)調度器,連接有至少一個VM,Nova對應本發(fā)明實施例中的節(jié)點調度器,每個VM對應本發(fā)明實施例中的節(jié)點資源;OpsManager是MongoDB的運維工具,可監(jiān)控和運維MongoDB,并調度配置MongoDB的進程,對應本發(fā)明實施例中的進程調度器;Shard是MongoDB中的數(shù)據(jù)節(jié)點;MongoConfig是MongoDB的元數(shù)據(jù)服務,負責管理數(shù)據(jù)節(jié)點的數(shù)據(jù)分布視圖,數(shù)據(jù)節(jié)點的分布信息;Master是MongoDB的主節(jié)點,負責讀寫數(shù)據(jù)節(jié)點的數(shù)據(jù),但不管理數(shù)據(jù)節(jié)點的位置信息,需要通過MongoConfig讀取數(shù)據(jù)節(jié)點的位置。Shard、MongoConfig以及Master對應本發(fā)明實施例中的進程資源。結合圖7,如圖8所示,若第一調度器為Nova,第二調度器為OpsManager,調度引擎的策略庫中與新建VM對應的調度操作為部署Shard2進程,并同步Shard2進程的數(shù)據(jù)給MongoConfig,則適用于該場景中的調度方法流程為:S800、節(jié)點調度器適配器獲取第一注冊信息,并向調度引擎發(fā)送該第一注冊信息。第一注冊信息包括第一可執(zhí)行事件、第一可執(zhí)行調度操作以及第一設備的特征之間的對應關系,第一可執(zhí)行事件為Nova待執(zhí)行的事件,且第一可執(zhí)行事件觸發(fā)第一設備完成第一可執(zhí)行調度操作,第一設備的特征包括OpsManager的標識??蛇x的,第一設備的特征還可以包括第二調度器適配器的標識,其中,第二調度器適配器的標識可以為包括第二調度器適配器中服務應用程序編程接口(英文:ApplicationProgrammingInterface,簡稱:API)的互聯(lián)網(wǎng)協(xié)議地址(英文:InternetProtocolAddress,簡稱:IP)地址和端口的統(tǒng)一資源定位符(英文:UniformResourceLocator,簡稱:URL)。S801、進程調度器適配器獲取第二注冊信息,并向調度引擎發(fā)送第二注冊信息。第二注冊信息包括第二可執(zhí)行事件、第二可執(zhí)行調度操作以及第二設備的特征之間的對應關系,第二可執(zhí)行事件為OpsManager待執(zhí)行的事件,且第二可執(zhí)行事件觸發(fā)第二設備完成第二可執(zhí)行調度操作,第二設備的特征包括Nova的標識??蛇x的,第二設備的特征還可以包括第一調度器適配器的標識,其中,第一調度器適配器的標識可以為包括第一調度器適配器中服務API的IP地址和端口的URL。S802、調度引擎存儲第一注冊信息和第二注冊信息,以生成策略庫。S803、Nova新建VM1。S804、Nova向給節(jié)點調度器適配器發(fā)送事件通知,用以通知節(jié)點調度器適配器Nova新建了VM1。其中,事件通知包括新建VM這一事件以及新建的VM的標識。S805、節(jié)點調度器適配器向調度引擎發(fā)送其接收到的事件通知。S806、調度引擎從策略庫中獲取與新建VM對應的調度操作,該調度操作為部署Shard2進程,并同步Shard2進程的數(shù)據(jù)給MongoConfig。S807、調度引擎通知進程調度器適配器觸發(fā)OpsManager在VM1上部署Shard2進程,并同步Shard2進程的數(shù)據(jù)給MongoConfig,即觸發(fā)進程級調度。S808、進程調度器適配器通知OpsManager在VM1上部署Shard2進程,并同步Shard2進程的數(shù)據(jù)給MongoConfig,即執(zhí)行進程級調度。S809、OpsManager在VM1上部署Shard2進程,并同步Shard2進程的數(shù)據(jù)給MongoConfig。其中,OpsManager在VM1上部署Shard2進程的方法可以參考現(xiàn)有技術中在某一節(jié)點上部署進程的方法,本發(fā)明實施例對此不作具體限定。可以看出,采用本發(fā)明實施例提供的調度方法,Nova在新建VM后,成功觸發(fā)OpsManager在新建的NM上部署Shard2進程,并同步Shard2進程的數(shù)據(jù)給MongoConfig,實現(xiàn)了從節(jié)點級調度到進程級調度的單向聯(lián)動。結合圖7,如圖9所示,若第一調度器為OpsManager,第二調度器為Nova,調度引擎的策略庫中與Shard2進程故障對應的調度操作為重啟VM,則適用于該場景中的調度方法流程為:S900、節(jié)點調度器適配器獲取第一注冊信息,并向調度引擎發(fā)送該第一注冊信息。S901、進程調度器適配器獲取第二注冊信息,并向調度引擎發(fā)送第二注冊信息。S902、調度引擎存儲第一注冊信息和第二注冊信息,以生成策略庫。本發(fā)明實施例中的S900-S902與上述S800-S802相同,此處不再進行詳細贅述。S903、OpsManager確定VM1中的Shard2進程出現(xiàn)故障。具體的,OpsManager在檢測到VM1中的Shard2進程出現(xiàn)故障時,嘗試重啟該Shard2進程,若重啟該Shard2進程的過程中,該Shard2進程依舊出現(xiàn)故障,則該OpsManager確定該Shard2進程出現(xiàn)故障。S904、OpsManager向進程調度器適配器發(fā)送事件通知,用以通知進程調度器適配器VM1中的Shard2進程出現(xiàn)故障。其中,事件通知包括VM1中的Shard進程出現(xiàn)故障這一事件、VM1的標識以及Shard2進程的標識。S905:進程級調度器適配器向調度引擎發(fā)送其接收到的事件通知。S906、調度引擎從策略庫中獲取與Shard進程出現(xiàn)故障對應的調度操作,該調度操作為重啟VM。S907、調度引擎通知節(jié)點調度器適配器觸發(fā)Nova重啟VM1,即觸發(fā)節(jié)點級調度。S908、節(jié)點調度器適配器通知Nova重啟VM1,即執(zhí)行節(jié)點級調度。S909、Nova重啟VM1??梢钥闯觯捎帽景l(fā)明實施例提供的調度方法,OpsManager在確定Shard2進程出現(xiàn)故障后,成功觸發(fā)Nova重啟VM1,實現(xiàn)了從進程級調度到節(jié)點級調度的單向聯(lián)動。綜上所述,采用本發(fā)明實施例提供的調度方法能夠實現(xiàn)進程級調度與節(jié)點級調度的雙向聯(lián)動,且無需手動操作,滿足了云場景下資源調度的自動化需求。本發(fā)明實施例提供一種調度裝置,該調度裝置用于執(zhí)行以上調度方法中的第一調度器適配器、第二調度器適配器以及調度引擎所執(zhí)行的步驟。如圖10所示,該調度裝置包括:第一調度器適配器100、第二調度器適配器101以及調度引擎102。第一調度器適配器100和第二調度器適配器101分別與調度引擎102連接。第一調度器適配器100用于支持調度裝置執(zhí)行圖6中的S501和S505;第二調度器適配器用于支持調度裝置執(zhí)行圖6中的S504和S506;調度引擎102用于支持調度裝置執(zhí)行圖6中的S502、S503和S507。本發(fā)明實施例提供一種調度裝置,該調度裝置包括第一調度器適配器、第二調度器適配器以及調度引擎,且調度引擎中包括存儲有已發(fā)生事件、待執(zhí)行調度操作與第二調度器的標識之間的對應關系的策略庫,由于策略庫中待執(zhí)行調度操作與第二調度器適配器對應,因此,調度引擎在接收到攜帶已發(fā)生事件的事件通知后,能夠根據(jù)該策略庫獲取到與該已發(fā)生事件對應的待執(zhí)行調度操作,并通知第二調度器適配器觸發(fā)第二調度器完成待執(zhí)行調度操作,實現(xiàn)了資源調度的雙向聯(lián)動,且無需手動操作,滿足了云場景下資源調度的自動化需求。通過以上的實施方式的描述,所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。在本發(fā)明所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng)。所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中?;谶@樣的理解,本發(fā)明實施例的技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來。該計算機軟件產(chǎn)品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)或處理器執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。存儲介質例如為:通用串行總線閃存盤(英文:UniversalSerialBusflashdisk,U盤)、移動硬盤、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。顯然,本領域的技術人員可以對本發(fā)明實施例進行各種改動和變型而不脫離本發(fā)明的范圍。這樣,倘若本發(fā)明實施例的這些修改和變型屬于本發(fā)明權利要求的范圍之內,則本發(fā)明實施例也意圖包含這些改動和變型在內。當前第1頁1 2 3