麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于角色配置的服務(wù)管理方法和裝置與流程

文檔序號:11147610閱讀:826來源:國知局
基于角色配置的服務(wù)管理方法和裝置與制造工藝
本發(fā)明涉及分布式服務(wù)器管理領(lǐng)域,具體而言,涉及一種基于角色配置的服務(wù)管理方法和裝置。
背景技術(shù)
:隨著互聯(lián)網(wǎng)的發(fā)展,互聯(lián)網(wǎng)應(yīng)用越來越復(fù)雜,系統(tǒng)規(guī)模也越來越大。一個比較復(fù)雜的系統(tǒng)通常會提供許多服務(wù),這就需要有一個靈活高效的管理方法來管理服務(wù)器提供的服務(wù)。在現(xiàn)有技術(shù)中,假設(shè)一個系統(tǒng)中存在4臺服務(wù)器,該系統(tǒng)要提供表1所示的4種服務(wù)。表1服務(wù)名稱服務(wù)說明nginx服務(wù)接收用戶請求fcgi服務(wù)處理用戶請求日志搜集服務(wù)搜集系統(tǒng)訪問日志日志分析服務(wù)分析,統(tǒng)計日志首先,由管理員編寫服務(wù)器與服務(wù)對應(yīng)關(guān)系的配置文件,該對應(yīng)關(guān)系可以用一個表格描述,例如表2所示。表2服務(wù)器服務(wù)器需要提供哪些服務(wù)服務(wù)器Anginx服務(wù),fcgi服務(wù)服務(wù)器Bnginx服務(wù),fcgi服務(wù)服務(wù)器Cnginx服務(wù),fcgi服務(wù),日志搜集服務(wù),日志分析服務(wù)服務(wù)器D日志搜集服務(wù),日志分析服務(wù)然后,管理員將登錄到每臺服務(wù)器,檢查服務(wù)器所提供的服務(wù)是否與配置文件中該臺服務(wù)器所對應(yīng)的服務(wù)一致,如果不一致則通過啟動或停止相關(guān)服務(wù),使其與配置文件中配置一致。如果要變更某些服務(wù)器提供的服務(wù),如在服務(wù)器B上增加日志搜集服務(wù)和日志分析服務(wù)。則先由管理員修改配置文件,修改后的配置文件如表3所示。表3服務(wù)器服務(wù)器需要提供哪些服務(wù)服務(wù)器Anginx服務(wù),fcgi服務(wù)服務(wù)器Bnginx服務(wù),fcgi服務(wù),日志搜集服務(wù),日志分析服務(wù)服務(wù)器Cnginx服務(wù),fcgi服務(wù),日志搜集服務(wù),日志分析服務(wù)服務(wù)器D日志搜集服務(wù),日志分析服務(wù)然后,管理員將會再次登錄到每臺服務(wù)器,檢查每臺服務(wù)器所提供的服務(wù)是否與配置文件一致,如果不一致則通過啟動或停止相關(guān)服務(wù),使其與配置文件中配置一致。由上述描述可知,相關(guān)技術(shù)中對系統(tǒng)中多臺服務(wù)器的服務(wù)進(jìn)行配置時,每次配置變更都需要登錄到每臺服務(wù)器,工作量很大。并且,配置文件中需要列出所有服務(wù)器與應(yīng)當(dāng)啟動的服務(wù)之間的對應(yīng)關(guān)系,使得配置文件冗雜龐大且不夠簡化。例如,雖然nginx服務(wù)與fcgi服務(wù)是成對出現(xiàn)的,日志搜集服務(wù)與日志分析服務(wù)也是成對出現(xiàn)的,但是在現(xiàn)有的配置文件中并不能將這些相關(guān)聯(lián)或者成對出現(xiàn)的服務(wù)進(jìn)行簡化表示。另外,如果在系統(tǒng)中某臺服務(wù)器的某個服務(wù)因異常而停止,由于管理員并未登錄到這臺服務(wù)器檢查,因此存在不能及時發(fā)現(xiàn)服務(wù)停止或者不能盡快恢復(fù)服務(wù)的啟動問題。技術(shù)實現(xiàn)要素:本發(fā)明提供了一種基于角色配置的服務(wù)管理方法和裝置,以至少解決在配置文件中記錄服務(wù)器與該服務(wù)器上應(yīng)當(dāng)啟動的服務(wù)之間的對應(yīng)關(guān)系所導(dǎo)致的配置文件冗雜龐大的問題。根據(jù)本發(fā)明的一個方面,提供了一種基于角色配置的服務(wù)管理方法,包括:服務(wù)器從協(xié)調(diào)服務(wù)集群獲取角色配置信息,所述角色配置信息用于描述所述服務(wù)器所擁有的一個或者多個角色,其中,所述一個或者多個角色中的每個角色對應(yīng)于一個或者多個服務(wù);所述服務(wù)器根據(jù)所述一個或者多個角色對應(yīng)的服務(wù),對所述服務(wù)器上運行的服務(wù)進(jìn)行管理。可選地,服務(wù)器從協(xié)調(diào)服務(wù)集群獲取角色配置信息包括:所述服務(wù)器周期性從所述協(xié)調(diào)服務(wù)器集群獲取所述角色配置信息;或者,在所述角色配置信息有變更的情況下,所述服務(wù)器接收所述協(xié)調(diào)服務(wù)器集群推送的所述角色配置信息。可選地,所述服務(wù)器根據(jù)所述一個或者多個角色對應(yīng)的服務(wù),對所述服務(wù)器上運行的服務(wù)進(jìn)行管理包括:所述服務(wù)器根據(jù)所述一個或者多個角色,以及預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系,確定所述服務(wù)器應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù),其中,所述應(yīng)當(dāng)啟動的服務(wù)為所述一個或者多個角色對應(yīng)的全部服務(wù)的并集,所述應(yīng)當(dāng)停止的服務(wù)為所述所有服務(wù)中除所述應(yīng)當(dāng)啟動的服務(wù)之外的其他服務(wù);所述服務(wù)器判斷所述服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)是否與所述應(yīng)當(dāng)啟動的服務(wù)和所述應(yīng)當(dāng)停止的服務(wù)一致;在不一致的情況下,所述服務(wù)器按照所述應(yīng)當(dāng)啟動的服務(wù)啟動所述服務(wù)器的相應(yīng)服務(wù),和/或按照所述應(yīng)當(dāng)停止的服務(wù)停止所述服務(wù)器的相應(yīng)服務(wù)。可選地,在所述服務(wù)器按照所述應(yīng)當(dāng)啟動的服務(wù)啟動所述服務(wù)器的相應(yīng)服務(wù),和/或按照所述應(yīng)當(dāng)停止的服務(wù)停止所述服務(wù)器的相應(yīng)服務(wù)之后,所述方法還包括:所述服務(wù)器判斷所述服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)是否與所述應(yīng)當(dāng)啟動的服務(wù)和所述應(yīng)當(dāng)停止的服務(wù)一致;在不一致的情況下,所述服務(wù)器發(fā)送告警信息至所述協(xié)調(diào)服務(wù)集群。可選地,所述預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系是通過所述協(xié)調(diào)服務(wù)集群首次配置給所述服務(wù)器并周期性、或在所述預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系有變更的情況下發(fā)送給所述服務(wù)器的。根據(jù)本發(fā)明的另一個方面,還提供了一種基于角色配置的服務(wù)管理裝置,應(yīng)用于服務(wù)器,包括:獲取模塊,用于從協(xié)調(diào)服務(wù)集群獲取角色配置信息,所述角色配置信息用于描述所述服務(wù)器所擁有的一個或者多個角色,其中,所述一個或者多個角色中的每個角色對應(yīng)于一個或者多個服務(wù);管理模塊,用于根據(jù)所述一個或者多個角色對應(yīng)的服務(wù),對所述服務(wù)器上運行的服務(wù)進(jìn)行管理。可選地,所述獲取模塊包括:獲取單元,用于周期性從所述協(xié)調(diào)服務(wù)器集群獲取所述角色配置信息;或者,接收單元,用于在所述角色配置信息有變更的情況下,接收所述協(xié)調(diào)服務(wù)器集群推送的所述角色配置信息。可選地,所述管理模塊包括:確定單元,用于根據(jù)所述一個或者多個角色,以及預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系,確定所述服務(wù)器應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù),其中,所述應(yīng)當(dāng)啟動的服務(wù)為所述一個或者多個角色對應(yīng)的全部服務(wù)的并集,所述應(yīng)當(dāng)停止的服務(wù)為所述所有服務(wù)中除所述應(yīng)當(dāng)啟動的服務(wù)之外的其他服務(wù);判斷單元,用于判斷所述服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)是否與所述應(yīng)當(dāng)啟動的服務(wù)和所述應(yīng)當(dāng)停止的服務(wù)一致;管理單元,用于在所述判斷單元判斷到所述服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)與所述應(yīng)當(dāng)啟動的服務(wù)和所述應(yīng)當(dāng)停止的服務(wù)不一致的情況下,按照所述應(yīng)當(dāng)啟動的服務(wù)啟動所述服務(wù)器的相應(yīng)服務(wù),和/或按照所述應(yīng)當(dāng)停止的服務(wù)停止所述服務(wù)器的相應(yīng)服務(wù)。可選地,所述裝置還包括:告警模塊,用于在所述管理單元按照所述應(yīng)當(dāng)啟動的服務(wù)啟動所述服務(wù)器的相應(yīng)服務(wù),和/或按照所述應(yīng)當(dāng)停止的服務(wù)停止所述服務(wù)器的相應(yīng)服務(wù)之后,所述判斷單元判斷到所述服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)與所述應(yīng)當(dāng)啟動的服務(wù)和所述應(yīng)當(dāng)停止的服務(wù)不一致的情況下,發(fā)送告警信息至所述協(xié)調(diào)服務(wù)集群。可選地,所述預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系是通過所述協(xié)調(diào)服務(wù)集群首次配置給所述服務(wù)器并周期性、或在所述預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系有變更的情況下發(fā)送給所述服務(wù)器的。通過本發(fā)明,采用服務(wù)器從協(xié)調(diào)服務(wù)集群獲取角色配置信息,角色配置信息用于描述服務(wù)器所擁有的一個或者多個角色,其中,一個或者多個角色中的每個角色對應(yīng)于一個或者多個服務(wù);服務(wù)器根據(jù)一個或者多個角色對應(yīng)的服務(wù),對服務(wù)器上運行的服務(wù)進(jìn)行管理的方式,將角色與一個或者多個服務(wù)進(jìn)行對應(yīng),在對服務(wù)器進(jìn)行配置時,只需要在配置文件中描述該服務(wù)器擁有的所有角色信息,解決了在配置文件中記錄服務(wù)器與該服務(wù)器上應(yīng)當(dāng)啟動的服務(wù)之間的對應(yīng)關(guān)系所導(dǎo)致的配置文件冗雜龐大的問題,減少了配置文件需要描述的內(nèi)容,進(jìn)而可以減小配置文件的大小。附圖說明此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:圖1是根據(jù)本發(fā)明實施例的基于角色配置的服務(wù)管理方法的流程圖;圖2是根據(jù)本發(fā)明實施例的基于角色配置的服務(wù)管理裝置的結(jié)構(gòu)框圖;圖3是根據(jù)本發(fā)明實施例的基于角色配置的服務(wù)管理裝置的優(yōu)選結(jié)構(gòu)框圖;圖4是根據(jù)本發(fā)明優(yōu)選實施例的基于角色配置的服務(wù)管理方法的流程圖;圖5是根據(jù)本發(fā)明優(yōu)選實施例的基于角色配置的服務(wù)管理方法的優(yōu)選流程圖。具體實施方式下文中將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。實施例1在本實施例中提供了一種基于角色配置的服務(wù)管理方法,圖1是根據(jù)本發(fā)明實施例的基于角色配置的服務(wù)管理方法的流程圖,如圖1所示,該流程包括如下步驟:步驟S101,服務(wù)器從協(xié)調(diào)服務(wù)集群獲取角色配置信息,其中,角色配置信息用于描述服務(wù)器所擁有的一個或者多個角色,一個或者多個角色中的每個角色對應(yīng)于一個或者多個服務(wù);步驟S102,服務(wù)器根據(jù)一個或者多個角色對應(yīng)的服務(wù),對服務(wù)器上運行的服務(wù)進(jìn)行管理。通過上述步驟,由于采用服務(wù)器的角色代替服務(wù)器的服務(wù)信息,且一個角色對應(yīng)于一個或者多個服務(wù),使得相關(guān)聯(lián)或者成對出現(xiàn)的服務(wù)能夠使用一個角色來表示,在服務(wù)數(shù)量龐大且服務(wù)之間關(guān)聯(lián)性比較多的情況下,能夠大大地降低配置文件中需要表示的內(nèi)容大小;并且,在采用基于角色配置的服務(wù)管理方法后,可以進(jìn)一步將角色與將要實現(xiàn)的功能相互對應(yīng)起來,這樣在進(jìn)行服務(wù)器的功能配置時,只需要考慮服務(wù)器所要擁有的角色信息,而不必再一一確定服務(wù)器需要提供的每一項服務(wù)的詳細(xì)情況。可見,通過上述步驟可以簡化配置文件,減小配置文件的大小,還能簡化配置服務(wù)器各個服務(wù)的復(fù)雜度。需要說明的是,本發(fā)明實施例的角色配置信息作為配置文件中的主要信息,可以與其他配置信息結(jié)合使用。例如,可以將角色配置信息與某些特殊的服務(wù)的狀態(tài)信息都攜帶在同一個配置文件中,從而可以在基于角色配置信息管理服務(wù)的基礎(chǔ)上,實現(xiàn)對特定的服務(wù)的啟停,以滿足整個系統(tǒng)各種個性化服務(wù)需求或者測試需求。為了降低管理員的工作量,避免對每臺服務(wù)器的配置都需要登錄該服務(wù)器進(jìn)行手動配置,本發(fā)明實施例中在服務(wù)器中設(shè)置了一個基于角色配置的服務(wù)管理裝置來執(zhí)行本實施例的各個步驟,并且,雖然該基于角色配置的服務(wù)管理裝置較優(yōu)地是以軟件的形式存在,當(dāng)然,以硬件的形式存在也是可以被設(shè)計和構(gòu)想的。服務(wù)器獲得角色配置信息的方式有兩種方式,一種是周期性主動獲取角色配置信息,另一種是被動接受協(xié)調(diào)服務(wù)集群的角色配置信息推送。例如,服務(wù)器周期性(例如每間隔1分鐘)從協(xié)調(diào)服務(wù)器集群獲取角色配置信息;或者,在協(xié)調(diào)服務(wù)集群上的角色配置信息有變更的情況下,協(xié)調(diào)服務(wù)器主動推送角色配置信息給服務(wù)器,服務(wù)器則接收協(xié)調(diào)服務(wù)器集群推送的角色配置信息。通過上述的方式,實現(xiàn)了角色配置信息的周期性或者實時更新,為服務(wù)器上的各個服務(wù)的狀態(tài)周期性或者實時更新奠定了基礎(chǔ)。可選地,在上述步驟S102中,服務(wù)器根據(jù)一個或者多個角色,以及預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系,確定服務(wù)器應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù),其中,應(yīng)當(dāng)啟動的服務(wù)為一個或者多個角色對應(yīng)的全部服務(wù)的并集,應(yīng)當(dāng)停止的服務(wù)為所有服務(wù)中除應(yīng)當(dāng)啟動的服務(wù)之外的其他服務(wù);服務(wù)器判斷服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)是否與應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù)一致;在不一致的情況下,服務(wù)器按照應(yīng)當(dāng)啟動的服務(wù)啟動服務(wù)器的相應(yīng)服務(wù),和/或按照應(yīng)當(dāng)停止的服務(wù)停止服務(wù)器的相應(yīng)服務(wù)。通過上述的方式,目的是保證該服務(wù)器擁有的全部角色對應(yīng)的所有的服務(wù)都能夠啟動,并且出于節(jié)能或者服務(wù)器穩(wěn)定性或者服務(wù)器的處理資源節(jié)約的目的,將停止所有不需要的服務(wù),即應(yīng)當(dāng)停止的服務(wù)。在服務(wù)器按照應(yīng)當(dāng)啟動的服務(wù)啟動服務(wù)器的相應(yīng)服務(wù),和/或按照應(yīng)當(dāng)停止的服務(wù)停止服務(wù)器的相應(yīng)服務(wù)之后,某些服務(wù)可能會因為各種異常原因而啟動失敗,或者在啟動之后因異常而終止。若因為偶然的異常導(dǎo)致服務(wù)啟動失敗或者服務(wù)終止,在本實施例中可以通過重復(fù)執(zhí)行步驟S102的方式得以修正。重復(fù)執(zhí)行的次數(shù)和時間間隔可以按照需要進(jìn)行配置。在執(zhí)行至少一次步驟S102之后,服務(wù)器可以再次判斷服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)是否與應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù)一致;在不一致的情況下,例如應(yīng)當(dāng)停止的服務(wù)卻無法停止或應(yīng)當(dāng)啟動的服務(wù)卻無法啟動的情況下,服務(wù)器發(fā)送告警信息至協(xié)調(diào)服務(wù)集群,以通知管理員來排查故障或者手動啟動/停止相應(yīng)的服務(wù)。在發(fā)送的告警信息中,可以攜帶狀態(tài)不一致的服務(wù)的信息,甚至還可以攜帶可能的異常原因值。可選地,上述預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系是通過協(xié)調(diào)服務(wù)集群首次配置給服務(wù)器并周期性、或在預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系有變更的情況下發(fā)送給服務(wù)器的。所有角色與所有服務(wù)的對應(yīng)關(guān)系是各個服務(wù)器確定某一角色對應(yīng)哪些服務(wù)的依據(jù),在每次預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系有更新的情況下,應(yīng)該至少執(zhí)行一次上述步驟S101和步驟S102,以保證系統(tǒng)中每個服務(wù)器上的服務(wù)狀態(tài)為正確的狀態(tài)。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)(如ROM/RAM、磁盤、光盤)中,包括若干指令用以使得一臺終端設(shè)備(可以是手機(jī),計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。實施例2在本實施例中還提供了一種基于角色配置的服務(wù)管理裝置,該裝置應(yīng)用于服務(wù)器中,用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進(jìn)行過說明的不再贅述。如以下所使用的,術(shù)語“模塊”可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。圖2是根據(jù)本發(fā)明實施例的基于角色配置的服務(wù)管理裝置的結(jié)構(gòu)框圖,如圖2所示,該裝置包括:獲取模塊21和管理模塊22,其中,獲取模塊21,用于從協(xié)調(diào)服務(wù)集群獲取角色配置信息,角色配置信息用于描述服務(wù)器所擁有的一個或者多個角色,其中,一個或者多個角色中的每個角色對應(yīng)于一個或者多個服務(wù);管理模塊22,耦合至獲取模塊21,用于根據(jù)一個或者多個角色對應(yīng)的服務(wù),對服務(wù)器上運行的服務(wù)進(jìn)行管理。可選地,獲取模塊21可以包括:獲取單元,用于周期性從協(xié)調(diào)服務(wù)器集群獲取角色配置信息;或者,接收單元,用于在角色配置信息有變更的情況下,接收協(xié)調(diào)服務(wù)器集群推送的角色配置信息。可選地,管理模塊22可以包括:確定單元221,用于根據(jù)一個或者多個角色,以及預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系,確定服務(wù)器應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù),其中,應(yīng)當(dāng)啟動的服務(wù)為一個或者多個角色對應(yīng)的全部服務(wù)的并集,應(yīng)當(dāng)停止的服務(wù)為所有服務(wù)中除應(yīng)當(dāng)啟動的服務(wù)之外的其他服務(wù);判斷單元222,用于判斷服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)是否與應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù)一致;管理單元223,用于在判斷單元判斷到服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)與應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù)不一致的情況下,按照應(yīng)當(dāng)啟動的服務(wù)啟動服務(wù)器的相應(yīng)服務(wù),和/或按照應(yīng)當(dāng)停止的服務(wù)停止服務(wù)器的相應(yīng)服務(wù)。圖3是根據(jù)本發(fā)明實施例的基于角色配置的服務(wù)管理的優(yōu)選結(jié)構(gòu)框圖,如圖3所示,可選地,基于角色配置的服務(wù)管理裝置還可以包括:告警模塊23,耦合至判斷單元222和管理單元223,用于在管理單元223按照應(yīng)當(dāng)啟動的服務(wù)啟動服務(wù)器的相應(yīng)服務(wù),和/或按照應(yīng)當(dāng)停止的服務(wù)停止服務(wù)器的相應(yīng)服務(wù)之后,判斷單元222判斷到服務(wù)器上服務(wù)的啟動和停止?fàn)顟B(tài)與應(yīng)當(dāng)啟動的服務(wù)和應(yīng)當(dāng)停止的服務(wù)不一致的情況下,發(fā)送告警信息至協(xié)調(diào)服務(wù)集群。可選地,預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系是通過協(xié)調(diào)服務(wù)集群首次配置給服務(wù)器并周期性、或在預(yù)先配置的所有角色與所有服務(wù)的對應(yīng)關(guān)系有變更的情況下發(fā)送給服務(wù)器的。需要說明的是,上述各個模塊是可以通過軟件或硬件來實現(xiàn)的,對于后者,可以通過以下方式實現(xiàn),但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。實施例3本發(fā)明的實施例還提供了一種軟件,該軟件用于執(zhí)行上述實施例及優(yōu)選實施方式中描述的技術(shù)方案。實施例4本發(fā)明的實施例還提供了一種存儲介質(zhì)。在本實施例中,上述存儲介質(zhì)可以被設(shè)置為存儲用于執(zhí)行以下步驟的程序代碼:步驟S101,服務(wù)器從協(xié)調(diào)服務(wù)集群獲取角色配置信息,角色配置信息用于描述服務(wù)器所擁有的一個或者多個角色,其中,一個或者多個角色中的每個角色對應(yīng)于一個或者多個服務(wù);步驟S102,服務(wù)器根據(jù)一個或者多個角色對應(yīng)的服務(wù),對服務(wù)器上運行的服務(wù)進(jìn)行管理。可選地,在本實施例中,上述存儲介質(zhì)可以包括但不限于:U盤、只讀存儲器(Read-OnlyMemory,簡稱為ROM)、隨機(jī)存取存儲器(RandomAccessMemory,簡稱為RAM)、移動硬盤、磁盤或者光盤等各種可以存儲程序代碼的介質(zhì)。可選地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。為了使本發(fā)明實施例的描述更加清楚,下面結(jié)合優(yōu)選實施例進(jìn)行描述和說明。實施例5在本實施例中提供了一種基于角色配置的服務(wù)管理方法,圖4是根據(jù)本發(fā)明優(yōu)選實施例的基于角色配置的服務(wù)管理方法的流程圖,如圖4所示,該流程包括如下步驟:步驟S401,將相關(guān)聯(lián)的若干個服務(wù)(如上例中的nginx服務(wù)和fcgi服務(wù))定義為一個角色。一個角色與若干個服務(wù)相對應(yīng)。例如將nginx服務(wù)和fcgi服務(wù)定義為一個角色并命名為front;將日志搜集服務(wù)和日志分析服務(wù)定義為一個角色并命名為log,則角色與服務(wù)的對應(yīng)關(guān)系如表4所示。表4角色名角色對應(yīng)的服務(wù)frontnginx服務(wù),fcgi服務(wù)log日志搜集服務(wù),日志分析服務(wù)則配置文件可以簡化為服務(wù)器與角色的對應(yīng)關(guān)系,如表5所示。表5服務(wù)器服務(wù)器擁有哪些角色服務(wù)器Afront服務(wù)器Bfront服務(wù)器Cfront,log服務(wù)器Dlog步驟S402,將簡化后的配置(即服務(wù)器與角色的對應(yīng)關(guān)系,相當(dāng)于上述的角色配置信息)放到zookeeper集群(一種協(xié)調(diào)服務(wù)集群)中。步驟S403,在每臺服務(wù)器上安裝一個管理程序(該管理程序用于執(zhí)行實施例1中描述的方法),通過Linux的cron(計劃)服務(wù),將該管理程序設(shè)置為每分鐘執(zhí)行一次。同時角色與服務(wù)對應(yīng)關(guān)系的信息也會以配置文件的形式或其他形式與管理程序一起安裝到每臺服務(wù)器上。管理程序每次執(zhí)行時,首先訪問zookeeper集群,得到管理程序所在的服務(wù)器所擁有的若干個角色,然后通過安裝的配置文件或其他方式獲取角色與服務(wù)對應(yīng)關(guān)系信息,同時也得到了系統(tǒng)能提供的所有服務(wù)。該服務(wù)器所擁有的若干角色所對應(yīng)的服務(wù)的并集就是該服務(wù)器需要提供的服務(wù),而該服務(wù)器不應(yīng)提供的服務(wù)為所有服務(wù)中除去上述并集中的服務(wù)后剩下的那些服務(wù)。對于需要提供的每個服務(wù),執(zhí)行相關(guān)命令檢查該服務(wù)的狀態(tài),看是運行狀態(tài)還是停止?fàn)顟B(tài),如果是停止?fàn)顟B(tài),則通過執(zhí)行相關(guān)命令啟動該服務(wù);對于不應(yīng)該提供的每個服務(wù),執(zhí)行相關(guān)命令檢查該服務(wù)的狀態(tài),看是運行狀態(tài)還是停止?fàn)顟B(tài),如果是運行狀態(tài),則通過執(zhí)行相關(guān)命令停止該服務(wù)。步驟S404,如果要變更服務(wù)器與角色的對應(yīng)關(guān)系,只需要通過訪問zookeeper集群,更新一下配置。因為每臺服務(wù)器上的管理程序每分鐘會執(zhí)行一次,所以在一分鐘內(nèi),所有服務(wù)器所提供的服務(wù)將與更新后的配置一致。下面結(jié)合具體的實例和附圖5對上述優(yōu)選實施例進(jìn)行說明。參考圖5,在該實例中,步驟1,將系統(tǒng)中若干個相關(guān)的服務(wù)綁定在一起定義為一個角色,這樣一個角色就是若干個服務(wù)的集合。需要保證所有的角色的并集等于所有服務(wù)組成的集合,同時盡量保證各個角色之間沒有交集。最后可以得到角色與服務(wù)之間的對應(yīng)關(guān)系,該關(guān)系為一對多的關(guān)系,一個角色可以對應(yīng)0個到多個服務(wù)。該對應(yīng)關(guān)系通常是不會改變的,可以將該對應(yīng)關(guān)系以配置文件或其他方便的形式保存。后面的管理程序可以通過讀取配置文件或其他方式得到該對應(yīng)關(guān)系。例如圖5中將nginx服務(wù),fcgi服務(wù),日志搜集服務(wù),日志分析服務(wù),數(shù)據(jù)庫服務(wù)5個服務(wù)劃分成3組,分別定義為front,log,db這3個角色。角色front對應(yīng)nginx服務(wù)和fcgi服務(wù);角色log對應(yīng)日志搜集服務(wù)和日志分析服務(wù);角色db對應(yīng)數(shù)據(jù)庫服務(wù)。步驟2,按需要配置服務(wù)器與角色之間的對應(yīng)關(guān)系,該對應(yīng)關(guān)系為多對多的關(guān)系,即同一臺服務(wù)器可以擁有多個角色,同一個角色也可以被多臺服務(wù)器擁有。例如圖5中,服務(wù)器10.0.0.1擁有front和db這兩個角色;服務(wù)器10.0.0.2擁有front和log這兩個角色;服務(wù)器10.0.0.3只擁有db這一個角色。步驟3,將步驟2中確定的服務(wù)器與角色的對應(yīng)關(guān)系寫入到zookeeper集群中。步驟4,編寫管理程序,該管理程序用于檢查某臺服務(wù)器上所提供的服務(wù)是否與我們最新配置中所要求該臺服務(wù)器提供的服務(wù)一致,如果不一致,需要執(zhí)行相關(guān)操作使其與配置所要求的一致。該程序的流程為:步驟4.1,訪問zookeeper集群,獲取該程序所在的服務(wù)器所擁有的若干個角色。例如圖5中可得到服務(wù)器10.0.0.1擁有的角色為front和db。步驟4.2,通過讀取配置文件或其他方式得到角色與服務(wù)之間的對應(yīng)關(guān)系。將所有角色對應(yīng)的服務(wù)的集合并在一起可以得到系統(tǒng)所提供的全部服務(wù)。例如圖5中,角色front對應(yīng)的服務(wù)為nginx服務(wù)和fcgi服務(wù);角色log對應(yīng)的服務(wù)為日志搜集服務(wù)和日志分析服務(wù);角色db對應(yīng)的服務(wù)為數(shù)據(jù)庫服務(wù)。同時系統(tǒng)所能提供的全部服務(wù)為nginx服務(wù)、fcgi服務(wù)、日志搜集服務(wù)、日志分析服務(wù)和數(shù)據(jù)庫服務(wù)。步驟4.3,將該服務(wù)器所擁有的那些角色對應(yīng)的服務(wù)并在一起可以得到該服務(wù)器需要提供的服務(wù)。系統(tǒng)所能提供的全部服務(wù)中除去該服務(wù)器需要提供的那些服務(wù),剩下的就是該服務(wù)器不需要提供的服務(wù)。例如圖5中,服務(wù)器10.0.0.1擁有角色front和角色db。角色front對應(yīng)nginx服務(wù)和fcgi服務(wù),角色db對應(yīng)數(shù)據(jù)庫服務(wù),因此,服務(wù)器10.0.0.1需要提供的服務(wù)包括nginx服務(wù)、fcgi服務(wù)、數(shù)據(jù)庫服務(wù)。剩下的日志搜集服務(wù)和日志分析服務(wù)則是服務(wù)器10.0.0.1不需要提供的服務(wù)。步驟4.4,對于該臺服務(wù)器需要提供的每個服務(wù),檢查該服務(wù)是否處于運行狀態(tài),如果不是,則啟動該服務(wù)。例如圖5中需要檢查nginx服務(wù)、fcgi服務(wù)和數(shù)據(jù)庫服務(wù),保證這3個服務(wù)處于運行狀態(tài)。步驟4.5,對于該臺服務(wù)器不需要提供的每個服務(wù),檢查該服務(wù)是否處于運行狀態(tài),如果是,則停止該服務(wù)。例如圖5中需要檢查日志搜集服務(wù)和日志分析服務(wù),保證這兩個服務(wù)處于停止?fàn)顟B(tài)。步驟5,將管理程序和描述角色與服務(wù)對應(yīng)關(guān)系的配置安裝到每一臺服務(wù)器上。步驟6,配置服務(wù)器的cron,使安裝在服務(wù)器上的管理程序每分鐘運行一次。步驟7,如果需要更新服務(wù)器與角色的對應(yīng)關(guān)系,將更新后的對應(yīng)關(guān)系寫入到zookeeper集群中,在一分鐘內(nèi),管理程序?qū)膠ookeeper讀取到更新,并使服務(wù)器提供的服務(wù)與更新后的配置所要求的一致。綜上所述,通過本發(fā)明提供的上述實施例或者優(yōu)選實施方式,可以達(dá)到以下有益效果:1,配置更加簡單,只需配置服務(wù)器與角色之間的對應(yīng)關(guān)系,管理程序會通過角色與服務(wù)的對應(yīng)關(guān)系自動獲得服務(wù)器與服務(wù)之間的對應(yīng)關(guān)系。2,變更服務(wù)器所提供的服務(wù)時,只需要更新協(xié)調(diào)服務(wù)集群中的配置,不需要登錄到每一臺服務(wù)器,簡化了服務(wù)管理工作。3,如果服務(wù)器上某個服務(wù)異常停止了,則在一分鐘內(nèi)就不被管理程序發(fā)現(xiàn),管理程序會重新啟動該服務(wù),提高了服務(wù)的可靠性。以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 红原县| 霍城县| 安远县| 西林县| 莲花县| 塔城市| 江源县| 三门县| 鄂伦春自治旗| 禹城市| 乌拉特后旗| 宜黄县| 绥中县| 邵阳县| 宁海县| 湄潭县| 沧源| 卫辉市| 中西区| 潢川县| 姚安县| 翁牛特旗| 双流县| 英吉沙县| 德化县| 米易县| 龙山县| 合阳县| 城市| 嘉定区| 建始县| 南城县| 大余县| 新蔡县| 芦溪县| 喀喇沁旗| 乡宁县| 延吉市| 东乌珠穆沁旗| 勃利县| 大田县|