一種提供應(yīng)用業(yè)務(wù)的方法、裝置及電子設(shè)備的制造方法
【專利摘要】本發(fā)明的實施例公開一種提供應(yīng)用業(yè)務(wù)的方法、裝置及電子設(shè)備。方法包括:在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。應(yīng)用本發(fā)明,可以提升提供應(yīng)用業(yè)務(wù)的應(yīng)用程序的可用性。
【專利說明】
一種提供應(yīng)用業(yè)務(wù)的方法、裝置及電子設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機通信可靠性技術(shù),尤其涉及一種提供應(yīng)用業(yè)務(wù)的方法、裝置及電子設(shè)備。
【背景技術(shù)】
[0002]隨著計算機通信以及互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,電子設(shè)備的應(yīng)用越來越普遍,例如,智能移動電話、個人數(shù)字助理、掌上電腦以及臺式機電腦得到了越來越廣泛的應(yīng)用,安裝在電子設(shè)備中的各類計算機應(yīng)用程序(APP,AppliCat1n)也越來越多。但是,隨著應(yīng)用程序在電子設(shè)備部署上線的運行過程中,會因為各種因素,例如,代碼bug、磁盤空間不足、宕機、應(yīng)用程序漏洞等導致應(yīng)用程序中止運行或退出,造成基于該應(yīng)用程序提供的應(yīng)用業(yè)務(wù)中斷,從而給應(yīng)用業(yè)務(wù)的使用者帶來不便,降低了用戶的應(yīng)用業(yè)務(wù)體驗,也影響了應(yīng)用程序營運商的口碑和形象。
[0003]為了保證計算機應(yīng)用程序在異常時能夠不中斷應(yīng)用業(yè)務(wù)的連續(xù)性,提升應(yīng)用程序的可用性以及應(yīng)用業(yè)務(wù)的連續(xù)性,目前,一般在電子設(shè)備中采用主/備應(yīng)用程序備份的方式來提供應(yīng)用業(yè)務(wù),從而保障應(yīng)用業(yè)務(wù)的高可用性。具體來說,通過在電子設(shè)備中為提供應(yīng)用業(yè)務(wù)的同一應(yīng)用程序部署兩個實例,用以設(shè)置主應(yīng)用程序以及備份應(yīng)用程序,主應(yīng)用程序?qū)?yīng)主進程(應(yīng)用程序主節(jié)點),備份應(yīng)用程序?qū)?yīng)備份進程(應(yīng)用程序備份節(jié)點),應(yīng)用程序主節(jié)點與應(yīng)用程序備份節(jié)點通過心跳包進行心跳檢測,其中,心跳包是在主節(jié)點與備份節(jié)點之間定時通知對方自己狀態(tài)的一自定義的命令字,按照一定的時間間隔發(fā)送。當應(yīng)用程序備份節(jié)點通過心跳檢測監(jiān)測到應(yīng)用程序主節(jié)點因異常退出,應(yīng)用程序備份節(jié)點自動成為應(yīng)用程序主節(jié)點,用以接管應(yīng)用程序主節(jié)點的所有應(yīng)用業(yè)務(wù),從而使得該應(yīng)用程序仍然可以對外提供應(yīng)用業(yè)務(wù)服務(wù)。
[0004]但該利用主/備應(yīng)用程序提供應(yīng)用業(yè)務(wù)的方法,在應(yīng)用程序主節(jié)點因異常退出,應(yīng)用程序備份節(jié)點自動成為應(yīng)用程序主節(jié)點后,需要手動重新啟動因異常退出的應(yīng)用程序主節(jié)點,使之成為應(yīng)用程序備份節(jié)點,以便在當前提供應(yīng)用業(yè)務(wù)的節(jié)點發(fā)生異常后,能夠及時接管因異常退出的節(jié)點。由于需要通過手動方式重啟異常退出的節(jié)點(應(yīng)用程序),因而,需要配備專門的運營維護人員,使得維護應(yīng)用程序高可用性的代價大、成本較高;進一步地,如果運營維護人員未能及時重新啟動因異常退出的節(jié)點(應(yīng)用程序),在當前運行的節(jié)點也因異常退出時,將導致提供的應(yīng)用業(yè)務(wù)中斷,從而降低應(yīng)用程序的可用性。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例提供一種提供應(yīng)用業(yè)務(wù)的方法、裝置及電子設(shè)備,提升提供應(yīng)用業(yè)務(wù)的應(yīng)用程序的可用性。
[0006]為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0007]第一方面,本發(fā)明實施例提供一種提供應(yīng)用業(yè)務(wù)的方法,包括:
[0008]在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;
[0009]啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;
[0010]在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)占.V ,
[0011]調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。
[0012]可選的,所述在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點包括:
[0013]構(gòu)建包含故障控制器、定時任務(wù)監(jiān)控器、管理器以及監(jiān)控節(jié)點器的管理集群系統(tǒng),所述故障控制器、定時任務(wù)監(jiān)控器以及監(jiān)控節(jié)點器的數(shù)量為2,所述管理器的數(shù)量為I;
[0014]分別在兩個監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建一應(yīng)用程序節(jié)點;
[0015]分別在兩個故障控制器中配置用于啟動應(yīng)用程序節(jié)點的命令行;
[0016]分別在兩個定時任務(wù)監(jiān)控器中配置用于啟動故障控制器的命令行。
[0017]可選的,每一應(yīng)用程序節(jié)點對應(yīng)一故障控制器、一定時任務(wù)監(jiān)控器以及一監(jiān)控節(jié)點器,兩份應(yīng)用程序節(jié)點共享管理器。
[0018]可選的,所述分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點包括:
[0019]兩個故障控制器分別獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令;
[0020]管理器接收選舉通知指令,分別為兩份應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序節(jié)點路徑以進行選舉,將選舉結(jié)果信息分別通知兩個故障控制器;
[0021 ]故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0022]監(jiān)控節(jié)點器將包含的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑上,如果選舉結(jié)果信息為選舉成功,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序主節(jié)點;如果選舉結(jié)果信息為選舉失敗,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0023]可選的,所述故障控制器包括:活躍備份選舉器子模塊,其中,在活躍備份選舉器子模塊中配置用于啟動應(yīng)用程序節(jié)點的命令行。
[0024]可選的,所述故障控制器還包括:健康監(jiān)視器子模塊以及心跳服務(wù)器子模塊,所述監(jiān)控節(jié)點器包括:健康子模塊、心跳客戶端子模塊以及應(yīng)用程序節(jié)點,所述獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令包括:
[0025]健康子模塊定期查詢應(yīng)用程序節(jié)點狀態(tài),存儲查詢得到的應(yīng)用程序節(jié)點狀態(tài);
[0026]健康監(jiān)視器子模塊與健康子模塊交互,獲取健康子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài),與自身存儲的應(yīng)用程序節(jié)點狀態(tài)進行比較,當滿足預先設(shè)置的選舉策略時,向活躍備份選舉器子模塊輸出選舉通知指令;
[0027]活躍備份選舉器子模塊接收健康監(jiān)視器子模塊輸出的選舉通知指令,向管理器輸出。
[0028]可選的,所述應(yīng)用程序節(jié)點狀態(tài)包括:未啟動狀態(tài)、啟動成功未選舉狀態(tài)、應(yīng)用程序主節(jié)點狀態(tài)以及應(yīng)用程序備份節(jié)點狀態(tài)。
[0029]可選的,所述滿足預先設(shè)置的選舉策略包括:
[0030]如果健康監(jiān)視器子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài)為未啟動狀態(tài),獲取的應(yīng)用程序節(jié)點狀態(tài)為啟動成功未選舉狀態(tài),滿足預先設(shè)置的選舉策略。
[0031]可選的,所述滿足預先設(shè)置的選舉策略包括:
[0032]如果健康監(jiān)視器子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài)或應(yīng)用程序備份節(jié)點狀態(tài),獲取的應(yīng)用程序節(jié)點狀態(tài)為未啟動狀態(tài),滿足預先設(shè)置的選舉策略。
[0033]可選的,所述在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點包括:
[0034]故障控制器監(jiān)測監(jiān)控節(jié)點器中應(yīng)用程序主節(jié)點的狀態(tài),如果監(jiān)聽到應(yīng)用程序主節(jié)點狀態(tài)發(fā)生變化,向管理器輸出選舉切換指令;
[0035]管理器接收選舉切換指令,刪除管理器中為所述應(yīng)用程序主節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑,將存儲的應(yīng)用程序備份節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,并將包含選舉成功的選舉結(jié)果信息通知另一故障控制器;
[0036]所述另一故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0037]監(jiān)控節(jié)點器更新對應(yīng)的應(yīng)用程序節(jié)點狀態(tài)。
[0038]可選的,所述設(shè)置為應(yīng)用程序備份節(jié)點包括:
[0039]重新啟動的應(yīng)用程序節(jié)點對應(yīng)的故障控制器獲取應(yīng)用程序節(jié)點重新啟動,向管理器輸出備份指令;
[0040]管理器接收備份指令,為重新啟動的應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序備份節(jié)點路徑,將備份結(jié)果信息通知故障控制器;
[0041 ]故障控制器接收備份結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0042]監(jiān)控節(jié)點器將重新啟動的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序備份節(jié)點路徑上,所述重新啟動的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0043]可選的,所述方法還包括:
[0044]在定時任務(wù)監(jiān)控器監(jiān)測到對應(yīng)的故障控制器發(fā)生異常后,通過所述管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0045]定時任務(wù)監(jiān)控器調(diào)用預先設(shè)置的用于啟動所述故障控制器的命令行,啟動異常的故障控制器。
[0046]可選的,所述在定時任務(wù)監(jiān)控器監(jiān)測到對應(yīng)的故障控制器發(fā)生異常后,通過所述管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點包括:
[0047]心跳客戶端子模塊從健康子模塊獲取應(yīng)用程序節(jié)點狀態(tài),向心跳服務(wù)器子模塊發(fā)送包含應(yīng)用程序節(jié)點狀態(tài)的心跳包;
[0048]心跳服務(wù)器子模塊獲取活躍備份選舉器子模塊狀態(tài),接收心跳客戶端子模塊發(fā)送的心跳包,向心跳客戶端子模塊返回包含活躍備份選舉器子模塊狀態(tài)的心跳包響應(yīng);
[0049]心跳客戶端子模塊接收心跳包響應(yīng),獲取活躍備份選舉器子模塊狀態(tài),如果獲取的活躍備份選舉器子模塊處于未啟動狀態(tài),而應(yīng)用程序節(jié)點狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài),觸發(fā)將應(yīng)用程序節(jié)點的當前狀態(tài)修改為應(yīng)用程序備份節(jié)點狀態(tài);
[0050]定時任務(wù)監(jiān)控器監(jiān)控活躍備份選舉器子模塊,如果活躍備份選舉器子模塊處于未啟動狀態(tài),通過管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點。
[0051]第二方面,本發(fā)明實施例提供一種提供應(yīng)用業(yè)務(wù)的裝置,包括:應(yīng)用程序節(jié)點構(gòu)建模塊、配置模塊、異常處理模塊以及重啟模塊,其中,
[0052]應(yīng)用程序節(jié)點構(gòu)建模塊,用于在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;
[0053]配置模塊,用于啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;
[0054]異常處理模塊,用于在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0055]重啟模塊,用于調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。
[0056]可選的,所述應(yīng)用程序節(jié)點構(gòu)建模塊包括:管理集群系統(tǒng)構(gòu)建單元、應(yīng)用程序節(jié)點構(gòu)建單元、第一命令行配置單元以及第二命令行配置單元,其中,
[0057]管理集群系統(tǒng)構(gòu)建單元,用于構(gòu)建包含故障控制器、定時任務(wù)監(jiān)控器、管理器以及監(jiān)控節(jié)點器的管理集群系統(tǒng),所述故障控制器、定時任務(wù)監(jiān)控器以及監(jiān)控節(jié)點器的數(shù)量為2,所述管理器的數(shù)量為I;
[0058]應(yīng)用程序節(jié)點構(gòu)建單元,用于分別在兩個監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建一應(yīng)用程序節(jié)點;
[0059]第一命令行配置單元,用于分別在兩個故障控制器中配置用于啟動應(yīng)用程序節(jié)點的命令行;
[0060]第二命令行配置單元,用于分別在兩個定時任務(wù)監(jiān)控器中配置用于啟動故障控制器的命令行。
[0061]可選的,每一應(yīng)用程序節(jié)點對應(yīng)一故障控制器、一定時任務(wù)監(jiān)控器以及一監(jiān)控節(jié)點器,兩份應(yīng)用程序節(jié)點共享管理器。
[0062]可選的,所述分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點包括:
[0063]兩個故障控制器分別獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令;
[0064]管理器接收選舉通知指令,分別為兩份應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序節(jié)點路徑以進行選舉,將選舉結(jié)果信息分別通知兩個故障控制器;
[0065]故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0066]監(jiān)控節(jié)點器將包含的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑上,如果選舉結(jié)果信息為選舉成功,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序主節(jié)點;如果選舉結(jié)果信息為選舉失敗,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0067]可選的,所述故障控制器包括:活躍備份選舉器子模塊,其中,在活躍備份選舉器子模塊中配置用于啟動應(yīng)用程序節(jié)點的命令行。
[0068]可選的,所述故障控制器還包括:健康監(jiān)視器子模塊以及心跳服務(wù)器子模塊,所述監(jiān)控節(jié)點器包括:健康子模塊、心跳客戶端子模塊以及應(yīng)用程序節(jié)點,所述獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令包括:
[0069 ]健康子模塊定期查詢應(yīng)用程序節(jié)點狀態(tài),存儲查詢得到的應(yīng)用程序節(jié)點狀態(tài);
[0070]健康監(jiān)視器子模塊與健康子模塊交互,獲取健康子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài),與自身存儲的應(yīng)用程序節(jié)點狀態(tài)進行比較,當滿足預先設(shè)置的選舉策略時,向活躍備份選舉器子模塊輸出選舉通知指令;[0071 ]活躍備份選舉器子模塊接收健康監(jiān)視器子模塊輸出的選舉通知指令,向管理器輸出。
[0072]可選的,所述應(yīng)用程序節(jié)點狀態(tài)包括:未啟動狀態(tài)、啟動成功未選舉狀態(tài)、應(yīng)用程序主節(jié)點狀態(tài)以及應(yīng)用程序備份節(jié)點狀態(tài)。
[0073]可選的,所述滿足預先設(shè)置的選舉策略包括:
[0074]如果健康監(jiān)視器子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài)為未啟動狀態(tài),獲取的應(yīng)用程序節(jié)點狀態(tài)為啟動成功未選舉狀態(tài),滿足預先設(shè)置的選舉策略。
[0075]可選的,所述滿足預先設(shè)置的選舉策略包括:
[0076]如果健康監(jiān)視器子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài)或應(yīng)用程序備份節(jié)點狀態(tài),獲取的應(yīng)用程序節(jié)點狀態(tài)為未啟動狀態(tài),滿足預先設(shè)置的選舉策略。
[0077]可選的,所述異常處理模塊包括:監(jiān)聽單元、切換單元、通知單元以及更新單元,其中,
[0078]監(jiān)聽單元,用于通知故障控制器監(jiān)測監(jiān)控節(jié)點器中應(yīng)用程序主節(jié)點的狀態(tài),如果監(jiān)聽到應(yīng)用程序主節(jié)點狀態(tài)發(fā)生變化,向管理器輸出選舉切換指令;
[0079]切換單元,用于通知管理器接收選舉切換指令,刪除管理器中為所述應(yīng)用程序主節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑,將存儲的應(yīng)用程序備份節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,并將包含選舉成功的選舉結(jié)果信息通知另一故障控制器;
[0080]通知單元,用于通知所述另一故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0081]更新單元,用于通知監(jiān)控節(jié)點器更新對應(yīng)的應(yīng)用程序節(jié)點狀態(tài)。
[0082]可選的,所述重啟模塊包括:調(diào)用單元、重啟監(jiān)測單元、創(chuàng)建單元、信息通知單元以及重配置單元,其中,
[0083]調(diào)用單元,用于調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點;
[0084]重啟監(jiān)測單元,用于重新啟動的應(yīng)用程序節(jié)點對應(yīng)的故障控制器獲取應(yīng)用程序節(jié)點重新啟動,向管理器輸出備份指令;
[0085]創(chuàng)建單元,用于通知管理器接收備份指令,為重新啟動的應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序備份節(jié)點路徑,將備份結(jié)果信息通知故障控制器;
[0086]信息通知單元,用于通知故障控制器接收備份結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0087]重配置單元,用于通知監(jiān)控節(jié)點器將重新啟動的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序備份節(jié)點路徑上,所述重新啟動的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0088]可選的,所述重啟模塊還包括:異常監(jiān)測單元以及異?;謴蛦卧渲?,
[0089]異常監(jiān)測單元,用于在定時任務(wù)監(jiān)控器監(jiān)測到對應(yīng)的故障控制器發(fā)生異常后,通過所述管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0090]異常恢復單元,用于通知定時任務(wù)監(jiān)控器調(diào)用預先設(shè)置的用于啟動所述故障控制器的命令行,啟動異常的故障控制器。
[0091]可選的,所述異常監(jiān)測單元包括:心跳包子單元、心跳包響應(yīng)子單元、解析子單元以及監(jiān)控子單元,其中,
[0092]心跳包子單元,用于通知心跳客戶端子模塊從健康子模塊獲取應(yīng)用程序節(jié)點狀態(tài),向心跳服務(wù)器子模塊發(fā)送包含應(yīng)用程序節(jié)點狀態(tài)的心跳包;
[0093]心跳包響應(yīng)子單元,用于通知心跳服務(wù)器子模塊獲取活躍備份選舉器子模塊狀態(tài),接收心跳客戶端子模塊發(fā)送的心跳包,向心跳客戶端子模塊返回包含活躍備份選舉器子模塊狀態(tài)的心跳包響應(yīng);
[0094]解析子單元,用于通知心跳客戶端子模塊接收心跳包響應(yīng),獲取活躍備份選舉器子模塊狀態(tài),如果獲取的活躍備份選舉器子模塊處于未啟動狀態(tài),而應(yīng)用程序節(jié)點狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài),觸發(fā)將應(yīng)用程序節(jié)點的當前狀態(tài)修改為應(yīng)用程序備份節(jié)點狀態(tài);
[0095]監(jiān)控子單元,用于定時任務(wù)監(jiān)控器監(jiān)控活躍備份選舉器子模塊,如果活躍備份選舉器子模塊處于未啟動狀態(tài),通過管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點。
[0096]第三方面,本發(fā)明實施例提供一種電子設(shè)備,所述電子設(shè)備包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內(nèi)部,處理器和存儲器設(shè)置在電路板上;電源電路,用于為上述電子設(shè)備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一所述的提供應(yīng)用業(yè)務(wù)的方法。
[0097]本發(fā)明實施例提供的提供應(yīng)用業(yè)務(wù)的方法、裝置及電子設(shè)備,通過在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。這樣,通過在Zookeeper集群系統(tǒng)注入用于啟動應(yīng)用程序節(jié)點的命令行,從而在應(yīng)用程序主節(jié)點發(fā)生異常退出后,能夠自動重啟異常退出的應(yīng)用程序節(jié)點,無需配備專門的運營維護人員,使得維護應(yīng)用程序高可用性的代價小、成本較低,不會導致提供的應(yīng)用業(yè)務(wù)中斷,從而提升應(yīng)用程序的可用性。
【附圖說明】
[0098]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0099]圖1為本發(fā)明實施例提供應(yīng)用業(yè)務(wù)的方法流程示意圖;
[0100]圖2為本發(fā)明實施例在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點的流程示意圖;
[0101]圖3為本發(fā)明實施例分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點的流程示意圖;
[0102]圖4為本發(fā)明實施例在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點的流程示意圖;
[0103]圖5為本發(fā)明實施例設(shè)置為應(yīng)用程序備份節(jié)點的流程示意圖;
[0104]圖6為本發(fā)明實施例提供應(yīng)用業(yè)務(wù)的裝置結(jié)構(gòu)示意圖;
[0105]圖7為本發(fā)明實施例的管理集群系統(tǒng)結(jié)構(gòu)示意圖;
[0106]圖8為本發(fā)明實施例的管理集群系統(tǒng)另一結(jié)構(gòu)示意圖;
[0107]圖9為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)不意圖。
【具體實施方式】
[0108]下面結(jié)合附圖對本發(fā)明實施例進行詳細描述。
[0109]應(yīng)當明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0110]圖1為本發(fā)明實施例提供應(yīng)用業(yè)務(wù)的方法流程示意圖。參見圖1,該方法包括:
[0111]步驟11,在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;
[0?12]本步驟中,作為一可選實施例,管理集群系統(tǒng)為Zookeeper集群系統(tǒng)。Zookeeper集群系統(tǒng)是一個分布式、開放源碼的分布式應(yīng)用程序高可用協(xié)調(diào)服務(wù),可以為分布式應(yīng)用提供包括配置維護、名字服務(wù)、分布式同步、組服務(wù)等一致性服務(wù),通過封裝復雜易出錯的關(guān)鍵服務(wù),為計算機應(yīng)用程序提供自動且及時的高可用性保證,配置簡單,具有很好的通用性,從而可以將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶,使得用戶能夠基于Zookeeper實現(xiàn)通用的高可用性。
[0113]本發(fā)明實施例中,作為一可選實施例,圖2為本發(fā)明實施例在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點的流程示意圖。參見圖2,該流程包括:
[0114]步驟21,構(gòu)建包含故障控制器、定時任務(wù)監(jiān)控器、管理器以及監(jiān)控節(jié)點器的管理集群系統(tǒng),所述故障控制器、定時任務(wù)監(jiān)控器以及監(jiān)控節(jié)點器的數(shù)量為2,所述管理器的數(shù)量為I;
[0115]本步驟中,管理集群系統(tǒng)包括:第一故障控制器、第一定時任務(wù)監(jiān)控器、第一監(jiān)控節(jié)點器、第二故障控制器、第二定時任務(wù)監(jiān)控器、第二監(jiān)控節(jié)點器以及管理器,其中,
[0116]管理器分別與第一故障控制器以及第二故障控制器相連,第一故障控制器還分別與第一定時任務(wù)監(jiān)控器、第一監(jiān)控節(jié)點器相連,第二故障控制器還分別與第二定時任務(wù)監(jiān)控器以及第二監(jiān)控節(jié)點器相連。
[0117]步驟22,分別在兩個監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建一應(yīng)用程序節(jié)點;
[0118]本步驟中,在第一監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建第一應(yīng)用程序節(jié)點,在第二監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建第二應(yīng)用程序節(jié)點。
[0119]本發(fā)明實施例中,每一應(yīng)用程序節(jié)點對應(yīng)一故障控制器、一定時任務(wù)監(jiān)控器以及一監(jiān)控節(jié)點器,兩份應(yīng)用程序節(jié)點共享管理器。
[0120]步驟23,分別在兩個故障控制器中配置用于啟動應(yīng)用程序節(jié)點的命令行;
[0121 ] 本步驟中,作為一可選實施例,故障控制器(HAFai1verControlIer)包括:活躍備份選舉器子模塊(ActiveStandbyElector)、健康監(jiān)視器子模塊(HealthMonitor)以及心跳服務(wù)器子模塊(HeartbeatRPCServer),其中,在ActiveStandbyElector中配置用于啟動應(yīng)用程序節(jié)點的命令行。
[0122]本發(fā)明實施例中,HAFailoverController監(jiān)控當前運行的應(yīng)用程序(應(yīng)用程序主節(jié)點)的健康狀態(tài)。在電子設(shè)備啟動時,參與選舉當前運行的應(yīng)用程序(應(yīng)用程序節(jié)點),并通知選舉的應(yīng)用程序進行啟動以提供應(yīng)用業(yè)務(wù);以及,預先配置用于啟動應(yīng)用程序節(jié)點的命令行,在應(yīng)用程序節(jié)點因異常退出后,調(diào)用用于啟動應(yīng)用程序節(jié)點的命令行,啟動應(yīng)用程序節(jié)點。
[0123]步驟24,分別在兩個定時任務(wù)監(jiān)控器中配置用于啟動故障控制器的命令行。
[0124]本步驟中,定時任務(wù)監(jiān)控器(CrontabMonitor)中配置用于啟動ActiveStandbyElector 的命令行。
[0125]步驟12,啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;
[0126]本步驟中,利用故障控制器、監(jiān)控節(jié)點器(MonitoredNode)以及管理器(Zooke印er),配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點。
[0127]作為一可選實施例,圖3為本發(fā)明實施例分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點的流程示意圖。參見圖3,該流程包括:
[0128]步驟31,兩個故障控制器分別獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令;
[0129]本步驟中,作為一可選實施例,監(jiān)控節(jié)點器(MonitoredNode)包括:健康子模塊(Heal thRPCServer)、心跳客戶端子模塊(HeartbeatRPCClient)以及應(yīng)用程序節(jié)點(FreezablefforkeNode)。
[0130]作為一可選實施例,獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令包括:
[0131 ] Heal thRPCServer定期查詢Freezab I eWorkerNode狀態(tài),存儲查詢得到的FreezableWorkerNode 狀態(tài);
[0132]Hea IthMon it or 與 Hea I thRPCServer 交互,獲取 HealthRPCServer 中存儲的FreezabI eWorkerNode狀態(tài),與自身存儲的Freezabl eWorkerNode狀態(tài)進行比較,當滿足預先設(shè)置的選舉策略時,向ActiveStandbyElector輸出選舉通知指令;
[0133]ActiveStandbyElector接收HealthMonitor輸出的選舉通知指令,向Zookeeper輸出。
[0134]本發(fā)明實施例中,作為一可選實施例,F(xiàn)reezableWorkerNode狀態(tài)包括:未啟動狀態(tài)(N0T_AL IVE )、啟動成功未選舉狀態(tài)(AL I VE_UNKNWON)、應(yīng)用程序主節(jié)點狀態(tài)(AL I VE_ACTIVE)以及應(yīng)用程序備份節(jié)點狀態(tài)(ALIVE_STANDBY)。
[0135]本發(fā)明實施例中,未啟動狀態(tài)包括但不限于異常退出狀態(tài),例如,啟動失敗、應(yīng)用程序主節(jié)點終止運行、應(yīng)用程序備份節(jié)點終止運行、啟動但未進行選舉的應(yīng)用程序節(jié)點終止運行等。
[0136]本發(fā)明實施例中,作為一可選實施例,如果電子設(shè)備啟動應(yīng)用程序節(jié)點失敗,進入N0T_ALIVE ;或者,處于ALIVE_UNKNWON的應(yīng)用程序節(jié)點終止運行(stop),進入N0T_ALIVE ;或者,處于ALIVE_UNKNWON的應(yīng)用程序節(jié)點終止運行,進入N0T_ALIVE ;或者,處于ALIVE_STANDBY的應(yīng)用程序備份節(jié)點終止運行,進入N0T_ALIVE;
[0137]如果電子設(shè)備啟動應(yīng)用程序節(jié)點成功,從N0T_ALIVE進入ALIVE_UNKNWON,如果處于ALIVE_UNKNWON的應(yīng)用程序節(jié)點選舉成功,進入ALIVE_ACTIVE ;如果選舉失敗,進入ALIVE_STANDBY;
[0138]在應(yīng)用程序備份節(jié)點處于ALIVE_STANDBY的情形下,如果處于ALIVE_ACTIVE的應(yīng)用程序主節(jié)點終止運行,該應(yīng)用程序備份節(jié)點進入ALIVE_ACTIVE;在ALIVE_ACTIVE,如果故障控制器終止運行dead),進入ALIVE_STANDBY。
[0139]作為一可選實施例,如果HealthMonitor中存儲的FreezableWorkerNode狀態(tài)為未啟動狀態(tài),獲取的FreezableWorkerNode狀態(tài)為啟動成功未選舉狀態(tài),滿足預先設(shè)置的選舉策略,從兩個Freezab I eWorkerNode中,選舉出一應(yīng)用程序主節(jié)點以及一應(yīng)用程序備份節(jié)點。
[0140]作為另一可選實施例,如果HealthMoni tor中存儲的Freezabl eWorkerNode狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài)或應(yīng)用程序備份節(jié)點狀態(tài),獲取的FreezableWorkerNode狀態(tài)為未啟動狀態(tài),滿足預先設(shè)置的選舉策略,將應(yīng)用程序備份節(jié)點選舉成為應(yīng)用程序主節(jié)點。
[0141 ] 本發(fā)明實施例中,在ActiveStandbyEIector接收HeaIthMonitor輸出的選舉通知指令之后,與Zookeeper交互創(chuàng)建應(yīng)用程序節(jié)點路徑以進行選舉之前,還可以用于查詢存儲的選舉狀態(tài)標識,如果已存儲的選舉狀態(tài)標識為非選舉標識,執(zhí)行所述與Zookeeper交互創(chuàng)建應(yīng)用程序節(jié)點路徑以進行選舉。
[0142]本發(fā)明實施例中,當FreezableWokrerNode已經(jīng)處于啟動成功未選舉狀態(tài)(ALIVE_UNKNOWN),如果ActiveStandbyElector保存的選舉狀態(tài)標識為非選舉標識,觸發(fā)發(fā)起應(yīng)用程序主節(jié)點/應(yīng)用程序備份節(jié)點選舉。
[0143]步驟32,管理器接收選舉通知指令,分別為兩份應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序節(jié)點路徑以進行選舉,將選舉結(jié)果信息分別通知兩個故障控制器;
[0144]本步驟中,作為一可選實施例,管理器采用爭搶方式進行選舉,即在管理器中,第一故障控制器以及第二故障控制器相互爭搶創(chuàng)建應(yīng)用程序節(jié)點路徑,管理器確認先完成創(chuàng)建應(yīng)用程序節(jié)點路徑對應(yīng)的故障控制器選舉成功,相應(yīng)創(chuàng)建的應(yīng)用程序節(jié)點路徑為應(yīng)用程序主節(jié)點路徑;則另一故障控制器選舉失敗,為該另一故障控制器相應(yīng)創(chuàng)建的應(yīng)用程序節(jié)點路徑為應(yīng)用程序備份節(jié)點路徑。
[0145]本發(fā)明實施例中,Zookeeper接收第一ActiveStandbyElector、和/或,第二ActiveStandbyElector輸出的選舉通知指令,分別為第一ActiveStandbyElector、和/或,第二 ActiveStandbyElector創(chuàng)建對應(yīng)的應(yīng)用程序節(jié)點路徑以進行選舉,將選舉結(jié)果信息分別通知第一Act iveStandbyEl ector、和/或,第二 Acti veStandbyElector。
[0146]本發(fā)明實施例中,作為一可選實施例,Zookeeper采用爭搶方式進行選舉,S卩第一Act iveStandbyEl ector以及第二 Act iveStandbyEl ector相互爭搶創(chuàng)建應(yīng)用程序節(jié)點路徑,確認先完成創(chuàng)建應(yīng)用程序節(jié)點路徑對應(yīng)的ActiveStandbyElector選舉成功,相應(yīng)創(chuàng)建的應(yīng)用程序節(jié)點路徑為應(yīng)用程序主節(jié)點路徑;則另一 Acti veStandbyElector選舉失敗,相應(yīng)創(chuàng)建的應(yīng)用程序節(jié)點路徑為應(yīng)用程序備份節(jié)點路徑。
[0147]步驟33,故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0148]步驟34,監(jiān)控節(jié)點器將包含的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑上,如果選舉結(jié)果信息為選舉成功,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序主節(jié)點;如果選舉結(jié)果信息為選舉失敗,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0149]本步驟中,ActiveStandbyElector接收Zookeeper輸出的選舉結(jié)果信息,通知HealthRPCServer,如果選舉結(jié)果信息為選舉成功,HealthRPCServer將Freezab I eWorkerNode置于Zookeeper 中為該Act iveStandbyEl ector創(chuàng)建的應(yīng)用程序主節(jié)點路徑上,以使FreezableWorkerNode成為應(yīng)用程序主節(jié)點,如果選舉結(jié)果信息為選舉失敗,將Freezab I eWorkerNode 置于 Zookeeper 中為該 Act iveStandbyEl ector 創(chuàng)建的應(yīng)用程序備份節(jié)點路徑上,以使FreezableWorkerNode成為應(yīng)用程序備份節(jié)點。
[0150]步驟13,在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0151]本步驟中,作為一可選實施例,圖4為本發(fā)明實施例在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點的流程示意圖。參見圖4,該流程包括:
[0152]步驟41,故障控制器監(jiān)測監(jiān)控節(jié)點器中應(yīng)用程序主節(jié)點的狀態(tài),如果監(jiān)聽到應(yīng)用程序主節(jié)點狀態(tài)發(fā)生變化,向管理器輸出選舉切換指令;
[0153]本步驟中,HealthMonitor定期獲取 HealthRPCServer 存儲的Freezab I eWorkerNode狀態(tài),如果獲取的Freezab I eWorkerNode狀態(tài)為未啟動狀態(tài),向ActiveStandbyElector輸出選舉切換指令;
[0154]Act iveStandbyEl ector接收 HealthMoni tor輸出的選舉切換指令,向 Zookeeper 輸出。
[0155]步驟42,管理器接收選舉切換指令,刪除管理器中為所述應(yīng)用程序主節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑,將存儲的應(yīng)用程序備份節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,并將包含選舉成功的選舉結(jié)果信息通知另一故障控制器;
[0156]本步驟中,Zookeeper如果接收到第一 ActiveStandbyElector 或第二Acti veStandbyElector輸出的選舉切換指令、和/或,監(jiān)控到ActiveStandbyElector狀態(tài)為未啟動狀態(tài),刪除Zookeeper中為第一 ActiveStandbyElector或第二Act iveStandbyEl ector創(chuàng)建的應(yīng)用程序節(jié)點路徑,將存儲的為第二 Acti veStandbyElector或第一 Acti veStandbyElector創(chuàng)建的應(yīng)用程序節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,并將包含選舉成功的選舉結(jié)果信息通知第二ActiveStandbyElector或第一ActiveStandbyElector;
[0157]本發(fā)明實施例中,作為一可選實施例,在刪除創(chuàng)建的應(yīng)用程序節(jié)點路徑后,如果該創(chuàng)建應(yīng)用程序節(jié)點路徑對應(yīng)的Acti veStandbyElector重新啟動,則觸發(fā)再次進行選舉,與前述爭搶方式不同的是,在當前有應(yīng)用程序主節(jié)點路徑情況下,為該ActiveStandbyElector創(chuàng)建應(yīng)用程序備份節(jié)點路徑,以在應(yīng)用程序主節(jié)點路徑被刪除時,接替被刪除的應(yīng)用程序主節(jié)點路徑。
[0158]步驟43,所述另一故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0159]步驟44,監(jiān)控節(jié)點器更新對應(yīng)的應(yīng)用程序節(jié)點狀態(tài)。
[0160]步驟14,調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。
[0161 ]本步驟中,ActiveStandbyElector調(diào)用預先配置的FreezableWorkerNode啟動命令行,啟動FreezableWorkerNode ο
[0162]作為一可選實施例,圖5為本發(fā)明實施例設(shè)置為應(yīng)用程序備份節(jié)點的流程示意圖。參見圖5,該流程包括:
[0163]步驟51,重新啟動的應(yīng)用程序節(jié)點對應(yīng)的故障控制器獲取應(yīng)用程序節(jié)點重新啟動,向管理器輸出備份指令;
[0164]步驟52,管理器接收備份指令,為重新啟動的應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序備份節(jié)點路徑,將備份結(jié)果信息通知故障控制器;
[0165]步驟53,故障控制器接收備份結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0166]步驟54,監(jiān)控節(jié)點器將重新啟動的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序備份節(jié)點路徑上,所述重新啟動的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0167]本發(fā)明實施例中,如果FreezableWorkerNode發(fā)生異常,例如,掛掉,HealthMonitor獲知該信息,向ActiveStandbyElector輸出節(jié)點路徑刪除通知指令(選舉切換指令),Act iveStandbyEl ector通知Zookeeper刪除對應(yīng)的應(yīng)用程序節(jié)點路徑,Zookeeper在刪除對應(yīng)的應(yīng)用程序節(jié)點路徑后,將存儲的為另一 Acti veStandbyElector創(chuàng)建的應(yīng)用程序節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,通知另一 ActiveStandbyElector。舉例來說,假設(shè)第一FreezableWorkerNode處于應(yīng)用程序備份節(jié)點狀態(tài)(ALIVE_STANDBY),當處于應(yīng)用程序主節(jié)點狀態(tài)(ALI VE_ACT IVE)的第二 Freezab I eWorkerNode掛掉,第二 Act iveStandbyEl ector通知Zookeeper ,Zookeeper刪除第二 Act iveStandbyEl ector對應(yīng)的應(yīng)用程序節(jié)點路徑,進行選舉,將為第一 Acti veStandbyElector創(chuàng)建的應(yīng)用程序節(jié)點路徑設(shè)置為應(yīng)用程序主節(jié)點路徑,并通知第一ActiveStandbyElector,第一ActiveStandbyElector 接收通知后,將第一Freezab I eWorkerNode設(shè)置為ALI VE_ACT IVE,即將第一Freezab I eWorkerNode 的狀態(tài)從ALIVE_STANDBY 更新為 ALIVE_ACTIVE,從而接管掛掉的第二 FreezableWorkerNode 0
[0168]作為一可選實施例,該方法還可以包括:
[0169]在定時任務(wù)監(jiān)控器監(jiān)測到對應(yīng)的故障控制器發(fā)生異常后,通過所述管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0170]定時任務(wù)監(jiān)控器調(diào)用預先設(shè)置的用于啟動所述故障控制器的命令行,啟動異常的故障控制器。
[0171]本發(fā)明實施例中,作為一可選實施例,在定時任務(wù)監(jiān)控器監(jiān)測到對應(yīng)的故障控制器發(fā)生異常后,通過所述管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點包括:
[0172]HeartbeatRPCCl ient從HeaI thRPCServer 獲取Freezab I eWorkerNode狀態(tài),向HeartbeatRPCServer 發(fā)送包含 FreezableWorkerNode 狀態(tài)的心跳包;
[0173]HeartbeatRPCServer 獲取 Acti veStandbyElector 狀態(tài),接收 HeartbeatRPCClient發(fā)送的心跳包,向HeartbeatRPCClient返回包含Act iveStandbyEl ector狀態(tài)的心跳包響應(yīng);
[0174]HeartbeatRPCClient 接收心跳包響應(yīng),獲取 ActiveStandbyElector 狀態(tài),如果獲取的ActiveStandbyElector處于未啟動狀態(tài),而FreezableWorkerNode狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài),觸發(fā)將Fr eezab I eWorkerNode的當前狀態(tài)修改為應(yīng)用程序備份節(jié)點狀態(tài);
[0175]CrontabMoni tor監(jiān)控 Acti veStandbyElector,如果 Act iveStandbyEl ector處于未啟動狀態(tài),通過Zooke印er將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點。
[0176]本發(fā)明實施例中,CrontabMoni tor調(diào)用所述用于啟動Act iveStandbyEl ector的命令行,啟動 ActiveStandbyElector ο
[ΟΙ77] 本發(fā)明實施例中,F(xiàn)reezableWorkerNode在處于應(yīng)用程序主節(jié)點狀態(tài)時,提供應(yīng)用程序服務(wù)。
[0178]本發(fā)明實施例中,通過在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。這樣,基于Zookeeper集群系統(tǒng)通用的高可用性,通過在Zookeeper集群系統(tǒng)注入用于啟動應(yīng)用程序節(jié)點的命令行,從而在應(yīng)用程序主節(jié)點發(fā)生異常退出后,能夠自動重啟異常退出的應(yīng)用程序節(jié)點,無需配備專門的運營維護人員,使得維護應(yīng)用程序高可用性的代價小、成本較低,能為計算機應(yīng)用程序提供自動且及時的高可用性保證,部署上線成本很低,配置簡單,具有很好的通用性;進一步地,由于能夠及時重新啟動因異常退出的節(jié)點(應(yīng)用程序),在當前運行的節(jié)點也因異常退出時,不會導致提供的應(yīng)用業(yè)務(wù)中斷,從而提升應(yīng)用程序的可用性。
[0179]圖6為本發(fā)明實施例提供應(yīng)用業(yè)務(wù)的裝置結(jié)構(gòu)示意圖。參見圖6,該裝置包括:應(yīng)用程序節(jié)點構(gòu)建模塊61、配置模塊62、異常處理模塊63以及重啟模塊64,其中,
[0180]應(yīng)用程序節(jié)點構(gòu)建模塊61,用于在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點;
[0181]本發(fā)明實施例中,作為一可選實施例,應(yīng)用程序節(jié)點構(gòu)建模塊61包括:管理集群系統(tǒng)構(gòu)建單元、應(yīng)用程序節(jié)點構(gòu)建單元、第一命令行配置單元以及第二命令行配置單元(圖中未示出),其中,
[ΟΙ82] 管理集群系統(tǒng)構(gòu)建單元,用于構(gòu)建包含故障控制器(HAFailoverController)、定時任務(wù)監(jiān)控器(CrontabMoni tor)、管理器(Zookeeper)以及監(jiān)控節(jié)點器(MonitoredNode)的管理集群系統(tǒng),所述故障控制器、定時任務(wù)監(jiān)控器以及監(jiān)控節(jié)點器的數(shù)量為2,所述管理器的數(shù)量為I;
[0183]圖7為本發(fā)明實施例的管理集群系統(tǒng)結(jié)構(gòu)示意圖。參見圖7,該管理集群系統(tǒng)包括:第一故障控制器71、第一定時任務(wù)監(jiān)控器72、第一監(jiān)控節(jié)點器73、第二故障控制器74、第二定時任務(wù)監(jiān)控器75、第二監(jiān)控節(jié)點器76以及管理器77,其中,
[0184]管理器77分別與第一故障控制器71以及第二故障控制器74相連,第一故障控制器71還分別與第一定時任務(wù)監(jiān)控器72、第一監(jiān)控節(jié)點器73相連,第二故障控制器74還分別與第二定時任務(wù)監(jiān)控器75以及第二監(jiān)控節(jié)點器76相連。
[0185]本發(fā)明實施例中,HAFailoverController監(jiān)控當前運行的應(yīng)用程序(應(yīng)用程序主節(jié)點)的健康狀態(tài)。在電子設(shè)備啟動時,參與選舉當前運行的應(yīng)用程序(應(yīng)用程序節(jié)點),并通知選舉的應(yīng)用程序進行啟動以提供應(yīng)用業(yè)務(wù);以及,預先配置用于啟動應(yīng)用程序節(jié)點的命令行,在應(yīng)用程序節(jié)點因異常退出后,調(diào)用用于啟動應(yīng)用程序節(jié)點的命令行,啟動應(yīng)用程序節(jié)點。
[0186]應(yīng)用程序節(jié)點構(gòu)建單元,用于分別在兩個監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建一應(yīng)用程序節(jié)點;
[0187]本發(fā)明實施例中,在第一監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建第一應(yīng)用程序節(jié)點,在第二監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建第二應(yīng)用程序節(jié)點。
[0188]第一命令行配置單元,用于分別在兩個故障控制器中配置用于啟動應(yīng)用程序節(jié)點的命令行;
[0189]第二命令行配置單元,用于分別在兩個定時任務(wù)監(jiān)控器中配置用于啟動故障控制器的命令行。
[0190]本發(fā)明實施例中,作為一可選實施例,每一應(yīng)用程序節(jié)點對應(yīng)一故障控制器、一定時任務(wù)監(jiān)控器以及一監(jiān)控節(jié)點器,兩份應(yīng)用程序節(jié)點共享管理器。
[0191]配置模塊62,用于啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點;
[0192]本發(fā)明實施例中,所述分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點包括:
[0193]兩個故障控制器分別獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令;
[0194]管理器接收選舉通知指令,分別為兩份應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序節(jié)點路徑以進行選舉,將選舉結(jié)果信息分別通知兩個故障控制器;
[0195]故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0196]監(jiān)控節(jié)點器將包含的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑上,如果選舉結(jié)果信息為選舉成功,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序主節(jié)點;如果選舉結(jié)果信息為選舉失敗,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0197]本發(fā)明實施例中,作為一可選實施例,管理器采用爭搶方式進行選舉,即在管理器中,第一故障控制器以及第二故障控制器相互爭搶創(chuàng)建應(yīng)用程序節(jié)點路徑,管理器確認先完成創(chuàng)建應(yīng)用程序節(jié)點路徑對應(yīng)的故障控制器選舉成功,相應(yīng)創(chuàng)建的應(yīng)用程序節(jié)點路徑為應(yīng)用程序主節(jié)點路徑;則另一故障控制器選舉失敗,為該另一故障控制器相應(yīng)創(chuàng)建的應(yīng)用程序節(jié)點路徑為應(yīng)用程序備份節(jié)點路徑。
[0198]本發(fā)明實施例中,作為一可選實施例,圖8為本發(fā)明實施例的管理集群系統(tǒng)另一結(jié)構(gòu)示意圖。參見圖8,該管理集群系統(tǒng)除包含圖7所述的結(jié)構(gòu)外,其中,故障控制器包括:活躍備份選舉器子模塊(ActiveStandbyElector)81,其中,在活躍備份選舉器子模塊81中配置用于啟動應(yīng)用程序節(jié)點的命令行。
[0199]作為另一可選實施例,故障控制器還包括:健康監(jiān)視器子模塊(HealthMonitor)82以及心跳服務(wù)器子模塊(HeartbeatRPCServer) 83,監(jiān)控節(jié)點器包括:健康子模塊(HealthRPCServer )84、心跳客戶端子模塊(HeartbeatRPCClient )85以及應(yīng)用程序節(jié)點(FreezableWorkerNode )86,所述獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令包括:
[0200]HealthRPCServer定期查詢FreezabIeWorkerNode狀態(tài),存儲查詢得到的FreezableWorkerNode 狀態(tài);
[0201 ] Hea IthMon it or 與 Hea IthRPCServer 交互,獲取 HealthRPCServer 中存儲的FreezabI eWorkerNode狀態(tài),與自身存儲的Freezabl eWorkerNode狀態(tài)進行比較,當滿足預先設(shè)置的選舉策略時,向ActiveStandbyElector輸出選舉通知指令;
[0202]ActiveStandbyElector接收HealthMoni tor輸出的選舉通知指令,向Zookeeper輸出。
[0203]本發(fā)明實施例中,作為一可選實施例,F(xiàn)reezableWorkerNode狀態(tài)包括:未啟動狀態(tài)、啟動成功未選舉狀態(tài)、應(yīng)用程序主節(jié)點狀態(tài)以及應(yīng)用程序備份節(jié)點狀態(tài)。
[0204]本發(fā)明實施例中,作為一可選實施例,如果HealthMonitor中存儲的FreezableWorkerNode狀態(tài)為未啟動狀態(tài),獲取的FreezableWorkerNode狀態(tài)為啟動成功未選舉狀態(tài),滿足預先設(shè)置的選舉策略;或者,
[0205]如果HealthMoni tor中存儲的Freezabl eWorkerNode狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài)或應(yīng)用程序備份節(jié)點狀態(tài),獲取的FreezableWorkerNode狀態(tài)為未啟動狀態(tài),滿足預先設(shè)置的選舉策略。
[0206]異常處理模塊63,用于在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0207]本發(fā)明實施例中,作為一可選實施例,異常處理模塊63包括:監(jiān)聽單元、切換單元、通知單元以及更新單元(圖中未示出),其中,
[0208]監(jiān)聽單元,用于通知故障控制器監(jiān)測監(jiān)控節(jié)點器中應(yīng)用程序主節(jié)點的狀態(tài),如果監(jiān)聽到應(yīng)用程序主節(jié)點狀態(tài)發(fā)生變化,向管理器輸出選舉切換指令;
[0209]切換單元,用于通知管理器接收選舉切換指令,刪除管理器中為所述應(yīng)用程序主節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑,將存儲的應(yīng)用程序備份節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,并將包含選舉成功的選舉結(jié)果信息通知另一故障控制器;
[0210]通知單元,用于通知所述另一故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0211]更新單元,用于通知監(jiān)控節(jié)點器更新對應(yīng)的應(yīng)用程序節(jié)點狀態(tài)。
[0212]重啟模塊64,用于調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。
[0213]本發(fā)明實施例中,ActiveStandbvEIector調(diào)用預先配置的FreezabI eWorkerNode啟動命令行,啟動FreezableWorkerNode ο
[0214]本發(fā)明實施例中,作為一可選實施例,重啟模塊64包括:調(diào)用單元、重啟監(jiān)測單元、創(chuàng)建單元、信息通知單元以及重配置單元(圖中未示出),其中,
[0215]調(diào)用單元,用于調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點;
[0216]重啟監(jiān)測單元,用于重新啟動的應(yīng)用程序節(jié)點對應(yīng)的故障控制器獲取應(yīng)用程序節(jié)點重新啟動,向管理器輸出備份指令;
[0217]創(chuàng)建單元,用于通知管理器接收備份指令,為重新啟動的應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序備份節(jié)點路徑,將備份結(jié)果信息通知故障控制器;
[0218]信息通知單元,用于通知故障控制器接收備份結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器;
[0219]重配置單元,用于通知監(jiān)控節(jié)點器將重新啟動的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序備份節(jié)點路徑上,所述重新啟動的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。
[0220]本發(fā)明實施例中,作為另一可選實施例,重啟模塊64還包括:異常監(jiān)測單元以及異?;謴蛦卧?,其中,
[0221 ]異常監(jiān)測單元,用于在定時任務(wù)監(jiān)控器監(jiān)測到對應(yīng)的故障控制器發(fā)生異常后,通過所述管理器將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點;
[0222]異?;謴蛦卧糜谕ㄖ〞r任務(wù)監(jiān)控器調(diào)用預先設(shè)置的用于啟動所述故障控制器的命令行,啟動異常的故障控制器。
[0223]本發(fā)明實施例中,作為一可選實施例,異常監(jiān)測單元包括:心跳包子單元、心跳包響應(yīng)子單元、解析子單元以及監(jiān)控子單元,其中,
[0224]心跳包子單元,用于通知HeartbeatRPCClient從HealthRPCServer獲取Freezab I eWorkerNode狀態(tài),向 HeartbeatRPCServer 發(fā)送包含F(xiàn)reezabl eWorkerNode狀態(tài)的心跳包;
[0225]心跳包響應(yīng)子單元,用于通知HeartbeatRPCServer獲取ActiveStandbyElector狀態(tài),接收HeartbeatRPCClient發(fā)送的心跳包,向HeartbeatRPCClient返回包含ActiveStandbyElector狀態(tài)的心跳包響應(yīng);
[0226]解析子單元,用于通知HeartbeatRPCCl ient接收心跳包響應(yīng),獲取ActiveStandbyEIector狀態(tài),如果獲取的ActiveStandbyEIector處于未啟動狀態(tài),而FreezableWorkerNode狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài),觸發(fā)將FreezableWorkerNode的當前狀態(tài)修改為應(yīng)用程序備份節(jié)點狀態(tài);
[0227]監(jiān)控子單元,用于CrontabMonitor監(jiān)控 ActiveStandbyElector,如果ActiveStandbyElector處于未啟動狀態(tài),通過Zookeeper將所述應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點。
[0228]本發(fā)明實施例還提供一種電子設(shè)備,所述電子設(shè)備包含前述任一實施例所述的裝置。
[0229]圖9為本發(fā)明電子設(shè)備一個實施例的結(jié)構(gòu)示意圖,可以實現(xiàn)本發(fā)明圖1-8所示實施例的流程,如圖9所示,上述電子設(shè)備可以包括:殼體91、處理器92、存儲器93、電路板94和電源電路95,其中,電路板94安置在殼體91圍成的空間內(nèi)部,處理器92和存儲器93設(shè)置在電路板94上;電源電路95,用于為上述電子設(shè)備的各個電路或器件供電;存儲器93用于存儲可執(zhí)行程序代碼;處理器92通過讀取存儲器93中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應(yīng)的程序,用于執(zhí)行前述任一實施例所述的提供應(yīng)用業(yè)務(wù)的方法。
[0230]處理器92對上述步驟的具體執(zhí)行過程以及處理器92通過運行可執(zhí)行程序代碼來進一步執(zhí)行的步驟,可以參見本發(fā)明圖1-8所示實施例的描述,在此不再贅述。
[0231]該電子設(shè)備以多種形式存在,包括但不限于:
[0232](I)移動通信設(shè)備:這類設(shè)備的特點是具備移動通信功能,并且以提供話音、數(shù)據(jù)通信為主要目標。這類終端包括:智能手機(例如iPhone)、多媒體手機、功能性手機,以及低端手機等。
[0233](2)超移動個人計算機設(shè)備:這類設(shè)備屬于個人計算機的范疇,有計算和處理功能,一般也具備移動上網(wǎng)特性。這類終端包括:PDA、MID和UMPC設(shè)備等,例如iPad。
[0234](3)便攜式娛樂設(shè)備:這類設(shè)備可以顯示和播放多媒體內(nèi)容。該類設(shè)備包括:音頻、視頻播放器(例如iPod),掌上游戲機,電子書,以及智能玩具和便攜式車載導航設(shè)備。
[0235](4)服務(wù)器:提供計算服務(wù)的設(shè)備,服務(wù)器的構(gòu)成包括處理器、硬盤、內(nèi)存、系統(tǒng)總線等,服務(wù)器和通用的計算機架構(gòu)類似,但是由于需要提供高可靠的服務(wù),因此在處理能力、穩(wěn)定性、可靠性、安全性、可擴展性、可管理性等方面要求較高。
[0236](5)其他具有數(shù)據(jù)交互功能的電子設(shè)備。
[0237]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)或隨機存儲記憶體(Random AccessMemory,RAM)等。
[0238]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準。
【主權(quán)項】
1.一種提供應(yīng)用業(yè)務(wù)的方法,其特征在于,該方法包括: 在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點; 啟動構(gòu)建的所述兩份應(yīng)用程序節(jié)點,分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)占.V , 在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點; 調(diào)用預先注入在管理集群系統(tǒng)中用于啟動應(yīng)用程序節(jié)點的命令行,重新啟動異常的應(yīng)用程序主節(jié)點,并設(shè)置為應(yīng)用程序備份節(jié)點。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在電子設(shè)備的管理集群系統(tǒng)中為應(yīng)用程序構(gòu)建兩份應(yīng)用程序節(jié)點包括: 構(gòu)建包含故障控制器、定時任務(wù)監(jiān)控器、管理器以及監(jiān)控節(jié)點器的管理集群系統(tǒng),所述故障控制器、定時任務(wù)監(jiān)控器以及監(jiān)控節(jié)點器的數(shù)量為2,所述管理器的數(shù)量為I; 分別在兩個監(jiān)控節(jié)點器中為所述應(yīng)用程序構(gòu)建一應(yīng)用程序節(jié)點; 分別在兩個故障控制器中配置用于啟動應(yīng)用程序節(jié)點的命令行; 分別在兩個定時任務(wù)監(jiān)控器中配置用于啟動故障控制器的命令行。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,每一應(yīng)用程序節(jié)點對應(yīng)一故障控制器、一定時任務(wù)監(jiān)控器以及一監(jiān)控節(jié)點器,兩份應(yīng)用程序節(jié)點共享管理器。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述分別配置應(yīng)用程序主節(jié)點以及應(yīng)用程序備份節(jié)點包括: 兩個故障控制器分別獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令; 管理器接收選舉通知指令,分別為兩份應(yīng)用程序節(jié)點創(chuàng)建對應(yīng)的應(yīng)用程序節(jié)點路徑以進行選舉,將選舉結(jié)果信息分別通知兩個故障控制器; 故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器; 監(jiān)控節(jié)點器將包含的應(yīng)用程序節(jié)點置于管理器中為該應(yīng)用程序節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑上,如果選舉結(jié)果信息為選舉成功,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序主節(jié)點;如果選舉結(jié)果信息為選舉失敗,所述包含的應(yīng)用程序節(jié)點成為應(yīng)用程序備份節(jié)點。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述故障控制器包括:活躍備份選舉器子模塊,其中,在活躍備份選舉器子模塊中配置用于啟動應(yīng)用程序節(jié)點的命令行。6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述故障控制器還包括:健康監(jiān)視器子模塊以及心跳服務(wù)器子模塊,所述監(jiān)控節(jié)點器包括:健康子模塊、心跳客戶端子模塊以及應(yīng)用程序節(jié)點,所述獲取對應(yīng)的監(jiān)控節(jié)點器中的應(yīng)用程序節(jié)點啟動,向管理器輸出選舉通知指令包括: 健康子模塊定期查詢應(yīng)用程序節(jié)點狀態(tài),存儲查詢得到的應(yīng)用程序節(jié)點狀態(tài); 健康監(jiān)視器子模塊與健康子模塊交互,獲取健康子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài),與自身存儲的應(yīng)用程序節(jié)點狀態(tài)進行比較,當滿足預先設(shè)置的選舉策略時,向活躍備份選舉器子模塊輸出選舉通知指令; 活躍備份選舉器子模塊接收健康監(jiān)視器子模塊輸出的選舉通知指令,向管理器輸出。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述應(yīng)用程序節(jié)點狀態(tài)包括:未啟動狀態(tài)、啟動成功未選舉狀態(tài)、應(yīng)用程序主節(jié)點狀態(tài)以及應(yīng)用程序備份節(jié)點狀態(tài)。8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述滿足預先設(shè)置的選舉策略包括: 如果健康監(jiān)視器子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài)為未啟動狀態(tài),獲取的應(yīng)用程序節(jié)點狀態(tài)為啟動成功未選舉狀態(tài),滿足預先設(shè)置的選舉策略。9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述滿足預先設(shè)置的選舉策略包括: 如果健康監(jiān)視器子模塊中存儲的應(yīng)用程序節(jié)點狀態(tài)為應(yīng)用程序主節(jié)點狀態(tài)或應(yīng)用程序備份節(jié)點狀態(tài),獲取的應(yīng)用程序節(jié)點狀態(tài)為未啟動狀態(tài),滿足預先設(shè)置的選舉策略。10.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述在應(yīng)用程序主節(jié)點發(fā)生異常后,將配置的應(yīng)用程序備份節(jié)點設(shè)置為應(yīng)用程序主節(jié)點包括: 故障控制器監(jiān)測監(jiān)控節(jié)點器中應(yīng)用程序主節(jié)點的狀態(tài),如果監(jiān)聽到應(yīng)用程序主節(jié)點狀態(tài)發(fā)生變化,向管理器輸出選舉切換指令; 管理器接收選舉切換指令,刪除管理器中為所述應(yīng)用程序主節(jié)點創(chuàng)建的應(yīng)用程序節(jié)點路徑,將存儲的應(yīng)用程序備份節(jié)點路徑作為應(yīng)用程序主節(jié)點路徑,并將包含選舉成功的選舉結(jié)果信息通知另一故障控制器; 所述另一故障控制器接收選舉結(jié)果信息,通知對應(yīng)的監(jiān)控節(jié)點器; 監(jiān)控節(jié)點器更新對應(yīng)的應(yīng)用程序節(jié)點狀態(tài)。
【文檔編號】G06F11/07GK106021005SQ201610306379
【公開日】2016年10月12日
【申請日】2016年5月10日
【發(fā)明人】潘洪安
【申請人】北京金山安全軟件有限公司