本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種服務(wù)器集群管理方法及系統(tǒng)。
背景技術(shù):
服務(wù)器集群(Server cluster)就是指將很多服務(wù)器集中起來一起進(jìn)行同一種服務(wù),在客戶端看來就像是只有一個(gè)服務(wù)器。服務(wù)器集群可以利用多個(gè)計(jì)算機(jī)進(jìn)行并行計(jì)算從而獲得很高的計(jì)算速度,也可以用多個(gè)計(jì)算機(jī)做備份,從而使得任何一個(gè)機(jī)器壞了整個(gè)系統(tǒng)還是能正常運(yùn)行。如何進(jìn)行服務(wù)器集群進(jìn)行統(tǒng)一的控制管理是非常重要的課題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供了一種服務(wù)器集群管理方法及系統(tǒng),實(shí)現(xiàn)了對所述服務(wù)器集群中服務(wù)器的控制和管理。
本發(fā)明實(shí)施例提供了一種服務(wù)器集群管理方法,所述方法包括:
中心機(jī)向被管理服務(wù)器發(fā)送命令執(zhí)行消息,所述命令執(zhí)行消息中包括待執(zhí)行命令以及所述待執(zhí)行命令的命令標(biāo)識(shí),所述被管理服務(wù)器為服務(wù)器集群中的任意一個(gè)服務(wù)器;
所述被管理服務(wù)器在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)發(fā)送所述命令執(zhí)行結(jié)果,所述命令執(zhí)行結(jié)果中攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí)。
可選的,所述待執(zhí)行命令中包括被調(diào)用函數(shù)名稱以及待執(zhí)行命令參數(shù);
所述執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果包括:
結(jié)合所述待執(zhí)行命令參數(shù),根據(jù)所述被調(diào)用函數(shù)名稱調(diào)用所述被管理服務(wù)器中存儲(chǔ)的被調(diào)用函數(shù),生成調(diào)用結(jié)果。
可選的,所述命令執(zhí)行消息中還包括:服務(wù)器標(biāo)識(shí);
所述方法還包括:
所述被管理服務(wù)器判斷所述命令執(zhí)行消息中攜帶的所述服務(wù)器標(biāo)識(shí)與所述被管理服務(wù)器的標(biāo)識(shí)是否匹配,若匹配,則執(zhí)行所述待執(zhí)行命令。
可選的,所述命令執(zhí)行結(jié)果中還包括:
所述被管理服務(wù)器執(zhí)行所述待執(zhí)行命令時(shí)所使用的進(jìn)程的標(biāo)識(shí)。
可選的,在所述中心機(jī)在向所述被管理服務(wù)器發(fā)送命令執(zhí)行消息之前,所述方法還包括:
對所述命令執(zhí)行消息進(jìn)行加密;
所述被管理服務(wù)器在接收到加密后的所述命令執(zhí)行消息后,所述方法還包括:
對所述命令執(zhí)行消息進(jìn)行解密。
可選的,所述方法還包括:
所述中心機(jī)周期性的向所述被管理服務(wù)器發(fā)送心跳數(shù)據(jù)包;
所述被管理服務(wù)器在接收到所述心跳包后,向所述中心機(jī)返回應(yīng)答數(shù)據(jù)包。
可選的,所述方法還包括:
所述被管理服務(wù)器對第一主進(jìn)程進(jìn)行監(jiān)控,若所述第一主進(jìn)程中斷,則新建第二主進(jìn)程,所述第一主進(jìn)程和所述第二主進(jìn)程用于執(zhí)行所述待執(zhí)行命令。
本發(fā)明實(shí)施例還提供了一種服務(wù)器集群管理系統(tǒng),所述系統(tǒng)包括:中心機(jī)和被管理服務(wù)器;
其中,所述中心機(jī),用于向所述被管理服務(wù)器發(fā)送命令執(zhí)行消息,所述命令執(zhí)行消息中包括待執(zhí)行命令以及所述待執(zhí)行命令的命令標(biāo)識(shí),所述被管理服務(wù)器為服務(wù)器集群中的任意一個(gè)服務(wù)器;
所述被管理服務(wù)器,用于在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)發(fā)送所述命令執(zhí)行結(jié)果,所述命令執(zhí)行結(jié)果中攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí)。
可選的,所述待執(zhí)行命令中包括被調(diào)用函數(shù)名稱以及待執(zhí)行命令參數(shù);
所述被管理服務(wù)器,具體用于在接收到所述命令執(zhí)行消息后,結(jié)合所述待執(zhí)行命令參數(shù),根據(jù)所述被調(diào)用函數(shù)名稱調(diào)用所述被管理服務(wù)器中存儲(chǔ)的被調(diào)用函數(shù),生成調(diào)用結(jié)果,并向所述中心機(jī)發(fā)送所述調(diào)用結(jié)果,所述調(diào)用結(jié)果中攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí)。
可選的,所述中心機(jī),還用于:
周期性的向所述被管理服務(wù)器發(fā)送心跳數(shù)據(jù)包;
所述被管理服務(wù)器,還用于在接收到所述心跳數(shù)據(jù)包后,向所述中心機(jī)返回應(yīng)答數(shù)據(jù)包。
本發(fā)明通過中心機(jī)向被管理服務(wù)器發(fā)送命令執(zhí)行消息,所述被管理服務(wù)器在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)發(fā)送所述命令執(zhí)行結(jié)果,實(shí)現(xiàn)了中心機(jī)對被管理服務(wù)器的控制和管理。
附圖說明
為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖1為本發(fā)明實(shí)施例一提供的一種服務(wù)器集群管理方法的流程圖;
圖2為本發(fā)明實(shí)施例二提供的一種服務(wù)器集群管理系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一:
參見圖1,該圖為本發(fā)明實(shí)施例一提供的一種服務(wù)器集群管理方法的流程圖。
本實(shí)施例提供的服務(wù)器集群管理方法包括如下步驟:
步驟S101:中心機(jī)向被管理服務(wù)器發(fā)送命令執(zhí)行消息,所述命令執(zhí)行消息中包括待執(zhí)行命令以及所述待執(zhí)行命令的命令標(biāo)識(shí),所述被管理服務(wù)器為服務(wù)器集群中的任意一個(gè)服務(wù)器。
在本實(shí)施例中,所述被管理服務(wù)器為服務(wù)器集群中任意一個(gè)服務(wù)器。所述中心機(jī)是指控制和管理所述被管理服務(wù)器的設(shè)備,例如服務(wù)器。所述中心機(jī)管理所述被管理服務(wù)器的方式是:向所述被管理服務(wù)器發(fā)送命令執(zhí)行消息,所述命令執(zhí)行消息中包括待執(zhí)行命令以及所述待執(zhí)行命令的命令標(biāo)識(shí)。所述待執(zhí)行命令可以包括但不限于在所述被管理服務(wù)器上安裝應(yīng)用程序、重啟應(yīng)用程序、采集被管理服務(wù)器的信息(例如CPU的使用率、物理內(nèi)存使用率、負(fù)載情況等)等等。每個(gè)待執(zhí)行命令都分配有對應(yīng)的命令標(biāo)識(shí),所述命令標(biāo)識(shí)可以是命令I(lǐng)D,被管理服務(wù)器在返回命令執(zhí)行結(jié)果時(shí),攜帶所述命令標(biāo)識(shí),以使所述中心機(jī)知曉是哪個(gè)命令對應(yīng)的命令執(zhí)行結(jié)果。
在實(shí)際應(yīng)用中,所述中心機(jī)在生成所述命令執(zhí)行消息時(shí),需要按照指定的格式生成。比如,在所述命令執(zhí)行消息的首位填寫命令類型,命令類型可以采用數(shù)字、字母等表示,例如用1表示命令執(zhí)行消息、2表示心跳包等。再比如,在所述命令執(zhí)行消息的第二位填寫服務(wù)器標(biāo)識(shí)。服務(wù)器標(biāo)識(shí)用于對被管理服務(wù)器進(jìn)行驗(yàn)證,即當(dāng)被管理服務(wù)器接收到所述命令執(zhí)行消息中攜帶的服務(wù)器標(biāo)識(shí)后,根據(jù)服務(wù)器標(biāo)識(shí)與被管理服務(wù)器的標(biāo)識(shí)進(jìn)行比對,若二者匹配,則說明所述命令執(zhí)行消息被發(fā)送的對象是正確的,可以執(zhí)行所述待執(zhí)行命令;若二者不匹配,則說明所述命令執(zhí)行消息被發(fā)錯(cuò)了對象,所述被管理服務(wù)器停止執(zhí)行所述待執(zhí)行命令,并且可以向所述中心機(jī)發(fā)送所述命令執(zhí)行消息發(fā)送錯(cuò)誤的消息。所述服務(wù)器標(biāo)識(shí)可以是服務(wù)器的IP地址,也可以是唯一標(biāo)識(shí)等等,本發(fā)明不做具體限定。當(dāng)被管理服務(wù)器在接收到按照指定格式生成的命令執(zhí)行消息后,按照指定格式讀取命令執(zhí)行消息中攜帶的各種信息。
此外,在實(shí)際應(yīng)用中,為了提高所述命令執(zhí)行消息在中心機(jī)與被管理服務(wù)器之間傳輸?shù)陌踩?,可選的,所述中心機(jī)對所述命令執(zhí)行消息進(jìn)行加密,加密后再發(fā)送給所述被管理服務(wù)器。加密算法可以采用現(xiàn)有技術(shù)中的AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))算法、MD5算法、DES(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法、IDEA(International Data Encryption Algorithm,國際數(shù)據(jù)加密算法)等等,本發(fā)明不做具體限定。當(dāng)所述被管理服務(wù)器接收到所述加密后的命令執(zhí)行消息后,需要對所述命令執(zhí)行消息進(jìn)行解密,以得到所述待執(zhí)行命令。
步驟S102:所述被管理服務(wù)器在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)發(fā)送所述命令執(zhí)行結(jié)果,所述命令執(zhí)行結(jié)果中攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí)。
所述被管理服務(wù)器在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果。所述命令執(zhí)行結(jié)果中除了可以攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí),可選的,還可以攜帶有待執(zhí)行命令被執(zhí)行的線程的標(biāo)識(shí),以便所述中心機(jī)通過控制線程中斷來結(jié)束執(zhí)行所述待執(zhí)行命令。
所述命令執(zhí)行結(jié)果在生成之后可以立即發(fā)出,也可以延遲發(fā)出。若命令執(zhí)行結(jié)果有多個(gè),則可以每生成一個(gè)就發(fā)出一個(gè),也可以同時(shí)發(fā)多個(gè)。在實(shí)際應(yīng)用中,所述命令執(zhí)行結(jié)果可以以日志的形式體現(xiàn),所述日志中還可以記載所述被管理服務(wù)器的狀態(tài),例如CPU利用率、內(nèi)存空間使用大小、線程使用狀況等信息。
所述被管理服務(wù)器可以周期性的向中心機(jī)發(fā)送日志,也可以根據(jù)日志積累的數(shù)量來發(fā)送,即若被管理服務(wù)器生成的日志數(shù)量達(dá)到預(yù)設(shè)數(shù)量時(shí),就向中心機(jī)發(fā)送這些日志?;蛘撸€可以將周期性發(fā)送和預(yù)設(shè)數(shù)量結(jié)合在一起,即當(dāng)在預(yù)設(shè)時(shí)間段(比如5秒鐘)內(nèi),生成的日志沒有累計(jì)到該預(yù)設(shè)數(shù)量,就發(fā)送當(dāng)前已經(jīng)生成的日志。
為了節(jié)約中心機(jī)與所述被管理服務(wù)器之間的信息傳輸資源,提高信息傳輸效率,可選的,所述被管理服務(wù)器事先存儲(chǔ)有用于執(zhí)行待執(zhí)行命令的被調(diào)用函數(shù),所述中心機(jī)在向所述被管理服務(wù)器發(fā)送所述命令執(zhí)行消息時(shí),僅需要發(fā)送被調(diào)用函數(shù)的名稱以及待執(zhí)行命令參數(shù)即可,不需要發(fā)送完整的被調(diào)用函數(shù)。當(dāng)所述被管理服務(wù)器接收到所述被調(diào)用函數(shù)的名稱以及待執(zhí)行命令參數(shù)后,結(jié)合所述待執(zhí)行命令參數(shù),根據(jù)所述被調(diào)用函數(shù)名稱調(diào)用所述被管理服務(wù)器中存儲(chǔ)的被調(diào)用函數(shù),生成調(diào)用結(jié)果。
例如,所述待執(zhí)行命令為統(tǒng)計(jì)文件夾的大小,那么所述命令執(zhí)行消息可以包括如下待執(zhí)行命令:scm_folderSize(文件夾路徑),其中,所述scm_folderSize為被調(diào)用函數(shù)的名稱,括號(hào)中的文件夾路徑為待執(zhí)行命令參數(shù)。所述被管理服務(wù)器根據(jù)所述被調(diào)用函數(shù)名稱X查找對應(yīng)的被調(diào)用函數(shù),并調(diào)用所述被調(diào)用函數(shù)統(tǒng)計(jì)與所述文件夾路徑對應(yīng)的文件夾的大小。
此外在實(shí)際應(yīng)用中,為了確認(rèn)所述被管理服務(wù)器始終處于可通信狀態(tài)下的,所述中心機(jī)可以向所述被管理服務(wù)器發(fā)送心跳數(shù)據(jù)包,當(dāng)所述被管理服務(wù)器在接收到所述心跳數(shù)據(jù)包后,向所述中心機(jī)返回應(yīng)答數(shù)據(jù)包,以讓中心機(jī)知道所述被管理服務(wù)器處于能夠接收到中心機(jī)的消息的狀態(tài)下。若中心機(jī)在發(fā)送了心跳數(shù)據(jù)包后的預(yù)設(shè)時(shí)間段內(nèi)都沒有收到被管理服務(wù)器反饋的應(yīng)答數(shù)據(jù)包,則可能是被管理服務(wù)器出現(xiàn)了故障,或者中心機(jī)與被管理服務(wù)器之間的鏈路出現(xiàn)了問題。在這種情況下,中心機(jī)就不向所述被管理服務(wù)器發(fā)送命令執(zhí)行消息了,以免浪費(fèi)資源。待到被管理服務(wù)器或二者之間的鏈路恢復(fù)正常之后,中心機(jī)再向被管理服務(wù)器發(fā)送命令執(zhí)行消息。所述心跳數(shù)據(jù)包和所述應(yīng)答數(shù)據(jù)包的內(nèi)容以及格式本領(lǐng)域技術(shù)人員可以自行設(shè)計(jì)。比如說,心跳數(shù)據(jù)包中可以包括所述心跳數(shù)據(jù)包的標(biāo)識(shí),以使所述被管理服務(wù)器根據(jù)所述心跳數(shù)據(jù)包的標(biāo)識(shí)識(shí)別出心跳數(shù)據(jù)包,以及觸發(fā)反饋應(yīng)答數(shù)據(jù)包的指令。在實(shí)際應(yīng)用中,被管理服務(wù)器生成的日志可以單獨(dú)發(fā)送,也可以隨著所述反饋應(yīng)答數(shù)據(jù)包來發(fā)送,本發(fā)明不做具體限定。
對于被管理服務(wù)器來講,保證其處于工作狀態(tài),即處于能夠執(zhí)行所述命令執(zhí)行消息的狀態(tài)也是十分重要的。為了確保這一點(diǎn),被管理服務(wù)器可以對用于執(zhí)行待執(zhí)行命令的主進(jìn)程進(jìn)行監(jiān)控,若發(fā)現(xiàn)所述第一主進(jìn)程中斷,則新建第二主進(jìn)程,采用第二主進(jìn)程來執(zhí)行中心機(jī)下發(fā)的待執(zhí)行命令。當(dāng)然,如果第一主進(jìn)程恢復(fù)正常,則可以恢復(fù)第一主進(jìn)程的命令執(zhí)行工作。
另外,本實(shí)施例可以采用zeromq作為命令執(zhí)行消息和命令執(zhí)行結(jié)果等消息的傳輸協(xié)議,從而使傳輸功能高效可靠,且支持的環(huán)境較多。本實(shí)施例還可以采用python對待執(zhí)行命令進(jìn)行解析和執(zhí)行,從而使被管理服務(wù)器部署方便快捷。中心機(jī)接收到的日志可以存儲(chǔ)到redis中,redis可以容納大量日志信息,讀取速度快,方便用戶查詢命令輸出。
綜上所述,本實(shí)施例通過中心機(jī)向被管理服務(wù)器發(fā)送命令執(zhí)行消息,所述被管理服務(wù)器在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)發(fā)送所述命令執(zhí)行結(jié)果,實(shí)現(xiàn)了中心機(jī)對被管理服務(wù)器的控制和管理。
基于以上實(shí)施例提供的一種服務(wù)器集群管理方法,本發(fā)明實(shí)施例還提供了一種服務(wù)器集群管理系統(tǒng),下面結(jié)合附圖來詳細(xì)說明其工作原理。
實(shí)施例二
參見圖2,該圖為本發(fā)明提供的一種服務(wù)器集群管理系統(tǒng)的結(jié)構(gòu)框圖。
本實(shí)施例提供的服務(wù)器集群管理系統(tǒng)包括:
中心機(jī)101和被管理服務(wù)器102。
其中,所述中心機(jī)101,用于向所述被管理服務(wù)器102發(fā)送命令執(zhí)行消息,所述命令執(zhí)行消息中包括待執(zhí)行命令以及所述待執(zhí)行命令的命令標(biāo)識(shí)。
在本實(shí)施例中,所述被管理服務(wù)器102為服務(wù)器集群中的任意一個(gè)服務(wù)器。所述中心機(jī)101是指控制和管理所述被管理服務(wù)器102的設(shè)備,例如服務(wù)器。所述中心機(jī)101管理所述被管理服務(wù)器102的方式是:向所述被管理服務(wù)器102發(fā)送命令執(zhí)行消息,所述命令執(zhí)行消息中包括待執(zhí)行命令以及所述待執(zhí)行命令的命令標(biāo)識(shí)。所述待執(zhí)行命令可以包括但不限于在所述被管理服務(wù)器102上安裝應(yīng)用程序、重啟應(yīng)用程序、采集被管理服務(wù)器102的信息(例如CPU的使用率、物理內(nèi)存使用率、負(fù)載情況等)等等。每個(gè)待執(zhí)行命令都分配有對應(yīng)的命令標(biāo)識(shí),所述命令標(biāo)識(shí)可以是命令I(lǐng)D,被管理服務(wù)器在返回命令執(zhí)行結(jié)果時(shí),攜帶所述命令標(biāo)識(shí),以使所述中心機(jī)知曉是哪個(gè)命令對應(yīng)的命令執(zhí)行結(jié)果。
在實(shí)際應(yīng)用中,所述中心機(jī)101在生成所述命令執(zhí)行消息時(shí),需要按照指定的格式生成。比如,在所述命令執(zhí)行消息的首位填寫命令類型,命令類型可以采用數(shù)字、字母等表示,例如用1表示命令執(zhí)行消息、2表示心跳包等。再比如,在所述命令執(zhí)行消息的第二位填寫服務(wù)器標(biāo)識(shí)。服務(wù)器標(biāo)識(shí)用于對被管理服務(wù)器102進(jìn)行驗(yàn)證,即當(dāng)被管理服務(wù)器102接收到所述命令執(zhí)行消息中攜帶的服務(wù)器標(biāo)識(shí)后,根據(jù)服務(wù)器標(biāo)識(shí)與被管理服務(wù)器102的標(biāo)識(shí)進(jìn)行比對,若二者匹配,則說明所述命令執(zhí)行消息被發(fā)送的對象是正確的,可以執(zhí)行所述待執(zhí)行命令;若二者不匹配,則說明所述命令執(zhí)行消息被發(fā)錯(cuò)了對象,所述被管理服務(wù)器102停止執(zhí)行所述待執(zhí)行命令,并且可以向所述中心機(jī)101發(fā)送所述命令執(zhí)行消息發(fā)送錯(cuò)誤的消息。所述服務(wù)器標(biāo)識(shí)可以是服務(wù)器的IP地址,也可以是唯一標(biāo)識(shí)等等,本發(fā)明不做具體限定。當(dāng)被管理服務(wù)器102在接收到按照指定格式生成的命令執(zhí)行消息后,按照指定格式讀取命令執(zhí)行消息中攜帶的各種信息。
此外,在實(shí)際應(yīng)用中,為了提高所述命令執(zhí)行消息在中心機(jī)與被管理服務(wù)器102之間傳輸?shù)陌踩裕蛇x的,所述中心機(jī)101對所述命令執(zhí)行消息進(jìn)行加密,加密后再發(fā)送給所述被管理服務(wù)器102。加密算法可以采用現(xiàn)有技術(shù)中的AES(Advanced Encryption Standard,高級(jí)加密標(biāo)準(zhǔn))算法、MD5算法、DES(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法、IDEA(International Data Encryption Algorithm,國際數(shù)據(jù)加密算法)等等,本發(fā)明不做具體限定。當(dāng)所述被管理服務(wù)器102接收到所述加密后的命令執(zhí)行消息后,需要對所述命令執(zhí)行消息進(jìn)行解密,以得到所述待執(zhí)行命令。
所述被管理服務(wù)器102,用于在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)發(fā)送所述命令執(zhí)行結(jié)果,所述命令執(zhí)行結(jié)果中攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí)。
本實(shí)施例通過中心機(jī)101向被管理服務(wù)器102發(fā)送命令執(zhí)行消息,所述被管理服務(wù)器102在接收到所述命令執(zhí)行消息后,執(zhí)行所述待執(zhí)行命令,生成命令執(zhí)行結(jié)果,并向所述中心機(jī)101發(fā)送所述命令執(zhí)行結(jié)果,實(shí)現(xiàn)了中心機(jī)對被管理服務(wù)器102的控制和管理。
為了節(jié)約中心機(jī)與所述被管理服務(wù)器之間的信息傳輸資源,提高信息傳輸效率,可選的,所述待執(zhí)行命令中包括被調(diào)用函數(shù)名稱以及待執(zhí)行命令參數(shù);
所述被管理服務(wù)器102,具體用于在接收到所述命令執(zhí)行消息后,結(jié)合所述待執(zhí)行命令參數(shù),根據(jù)所述被調(diào)用函數(shù)名稱調(diào)用所述被管理服務(wù)器中存儲(chǔ)的被調(diào)用函數(shù),生成調(diào)用結(jié)果,并向所述中心機(jī)101發(fā)送所述調(diào)用結(jié)果,所述調(diào)用結(jié)果中攜帶有所述待執(zhí)行命令的命令標(biāo)識(shí)。
為了確認(rèn)所述被管理服務(wù)器始終處于可通信狀態(tài)下的,可選的,所述中心機(jī)101,還用于:
周期性的向所述被管理服務(wù)器102發(fā)送心跳數(shù)據(jù)包;
所述被管理服務(wù)器102,還用于在接收到所述心跳數(shù)據(jù)包后,向所述中心機(jī)返回應(yīng)答數(shù)據(jù)包。
為了確認(rèn)所述命令執(zhí)行消息是否發(fā)送給了正確的對象,可選的,所述命令執(zhí)行消息中還包括:服務(wù)器標(biāo)識(shí);
所述被管理服務(wù)器102,還用于判斷所述命令執(zhí)行消息中攜帶的所述服務(wù)器標(biāo)識(shí)與所述被管理服務(wù)器的標(biāo)識(shí)是否匹配,若匹配,則執(zhí)行所述待執(zhí)行命令。
可選的,所述命令執(zhí)行結(jié)果中還包括:
所述被管理服務(wù)器102執(zhí)行所述待執(zhí)行命令時(shí)所使用的進(jìn)程的標(biāo)識(shí)。
為了保證命令執(zhí)行消息在傳輸過程中的安全性,可選的,所述中心機(jī)101,還用于:對所述命令執(zhí)行消息進(jìn)行加密;
所述被管理服務(wù)器102,還用于:對所述命令執(zhí)行消息進(jìn)行解密。
對于被管理服務(wù)器來講,保證其處于工作狀態(tài),即處于能夠執(zhí)行所述命令執(zhí)行消息的狀態(tài)也是十分重要的。為了確保這一點(diǎn),可選的,所述被管理服務(wù)器102,還用于對第一主進(jìn)程進(jìn)行監(jiān)控,若所述第一主進(jìn)程中斷,則新建第二主進(jìn)程,所述第一主進(jìn)程和所述第二主進(jìn)程用于執(zhí)行所述待執(zhí)行命令。
另外,本實(shí)施例可以采用zeromq作為命令執(zhí)行消息和命令執(zhí)行結(jié)果等消息的傳輸協(xié)議,從而使傳輸功能高效可靠,且支持的環(huán)境較多。本實(shí)施例還可以采用python對待執(zhí)行命令進(jìn)行解析和執(zhí)行,從而使被管理服務(wù)器部署方便快捷。中心機(jī)接收到的日志可以存儲(chǔ)到redis中,redis可以容納大量日志信息,讀取速度快,方便用戶查詢命令輸出。
當(dāng)介紹本發(fā)明的各種實(shí)施例的元件時(shí),冠詞“一”、“一個(gè)”、“這個(gè)”和“所述”都意圖表示有一個(gè)或多個(gè)元件。詞語“包括”、“包含”和“具有”都是包括性的并意味著除了列出的元件之外,還可以有其它元件。
需要說明的是,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法實(shí)施例的流程。其中,所述存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元及模塊可以是或者也可以不是物理上分開的。另外,還可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元和模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述僅是本發(fā)明的具體實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。