一種監(jiān)控容器的方法、裝置與代理服務系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種監(jiān)控容器的方法、裝置與代理服務系統(tǒng),方法包括:接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息;根據(jù)異常消息,通過代理服務系統(tǒng)對第一容器進行重啟處理或切換處理。根據(jù)本發(fā)明實施例的監(jiān)控容器的方法、裝置與代理服務系統(tǒng),通過接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息,并通過代理服務系統(tǒng)對第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
【專利說明】一種監(jiān)控容器的方法、裝置與代理服務系統(tǒng)
【技術(shù)領域】
[0001]本發(fā)明實施例涉及通信技術(shù),尤其涉及一種監(jiān)控容器的方法、裝置與代理服務系統(tǒng)。
【背景技術(shù)】
[0002]Linux容器(container)是在Linux平臺上實現(xiàn)的容器虛擬化技術(shù),其用于提供隔離的用戶態(tài)Iinux運行環(huán)境,而且有效地將由單個操作系統(tǒng)管理的資源劃分到孤立的組中,以更好地在孤立的組之間平衡有沖突的資源使用需求。
[0003]高可用系統(tǒng)中配置有高可用軟件,其具有高可用性(High Availability, HA),即該高可用系統(tǒng)可以在任何隨機時刻需要和開始執(zhí)行任務時,處于可工作或可使用狀態(tài)。高可用系統(tǒng)可以設置在本地主機上,這樣,高可用系統(tǒng)可以對本地主機上運行的應用資源狀態(tài)進行健康監(jiān)控,發(fā)現(xiàn)應用資源狀態(tài)異常后采用某種策略恢復程序執(zhí)行。通常高可用系統(tǒng)為達到通信的高效率、低延遲、高可靠性,會將其通信組件作為一個內(nèi)核模塊編譯。
[0004]如何實現(xiàn)容器的高可用性成為亟需解決的問題。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種監(jiān)控容器的方法、裝置與代理服務系統(tǒng),以實現(xiàn)容器的高可用性。
[0006]本發(fā)明第一方面提供一種監(jiān)控容器的方法,包括:
[0007]接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息;
[0008]根據(jù)所述異常消息,通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理。
[0009]在第一種可能的實現(xiàn)方式中,根據(jù)第一方面,所述根據(jù)所述異常消息,對所述第一容器進行重啟處理或切換處理,包括:
[0010]根據(jù)所述異常消息中第一容器的標識,檢測所述第一容器的重啟次數(shù)記錄;
[0011]當所述第一容器的重啟次數(shù)小于第一閾值時,通過所述代理服務系統(tǒng)向所述第一容器發(fā)送重啟命令,以使所述第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
[0012]在第二種可能的實現(xiàn)方式中,根據(jù)第一種可能實現(xiàn)的方式,還包括:
[0013]當所述第一容器的重啟次數(shù)大于或等于所述第一閾值時,判斷所述第一容器的切換次數(shù)是否達到第二閾值;
[0014]當判斷出所述第一容器的切換次數(shù)小于所述第二閾值時,通過所述代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使所述第二容器處理所述第一容器當前正在處理的業(yè)務。
[0015]在第三種可能的實現(xiàn)方式中,根據(jù)第二種可能實現(xiàn)的方式,還包括:
[0016]當判斷出所述第一容器的切換次數(shù)大于或等于所述第二閾值時,判斷所述第一容器的切換次數(shù)是否達到第三閾值;[0017]當判斷出所述第一容器的切換次數(shù)小于所述第三閾值時,通過所述代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使所述第三容器處理所述第一容器當前正在處理的業(yè)務。
[0018]在第四種可能的實現(xiàn)方式中,根據(jù)第三種可能實現(xiàn)的方式,還包括:
[0019]當判斷出所述第一容器的切換次數(shù)大于或等于所述第三閾值時,發(fā)出警報,以使用戶獲知所述第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
[0020]在第五種可能的實現(xiàn)方式中,根據(jù)第一方面,所述接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息包括:
[0021]接收所述代理服務服務系統(tǒng)中的代理服務客戶端發(fā)送的異常消息,所述異常消息是所述代理服務器端向所述代理服務客戶端發(fā)送的,所述代理服務器端還用于檢測所述第一容器的運行狀態(tài),所述異常消息中包括代理服務器端的地址,所述第一容器的地址與所述代理服務器端的地址相同;
[0022]所述通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理包括:
[0023]向所述代理服務器中的代理服務客戶端發(fā)送處理信息,以使所述代理服務客戶端通過所述代理服務器端向所述第一容器發(fā)送所述處理信息以進行所述第一容器的重啟處理或切換處理;
[0024]其中,信息交互的方式為socket方式。
[0025]本發(fā)明第二方面提供一種監(jiān)控容器的方法,包括:
[0026]檢測第一容器的運行狀態(tài);
[0027]當發(fā)現(xiàn)所述第一容器的運行狀態(tài)異常時,向高可用系統(tǒng)發(fā)送所述第一容器的異常消息;
[0028]接收所述高可用系統(tǒng)根據(jù)所述異常消息發(fā)送的重啟命令或啟動命令;
[0029]向所述第一容器發(fā)送所述重啟命令,或者向本地的第二容器發(fā)送啟動命令,或者向異地的第三容器發(fā)送啟動命令。
[0030]在第一種可能的實現(xiàn)方式中,根據(jù)第二方面,通過socket方式與所述第一容器、所述代理服務客戶端進行信息交互。
[0031]在第二種可能的實現(xiàn)方式中,根據(jù)第二方面或第一種可能實現(xiàn)的方式,所述異常消息中包括第一容器的地址,所述第一容器的地址與代理服務器系統(tǒng)中的代理服務器端的地址相同,所述代理服務器端設置在所述第一容器內(nèi)。
[0032]本發(fā)明第三方面提供一種監(jiān)控容器的裝置,包括:
[0033]第一接收單元,用于接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息;
[0034]處理單元,用于根據(jù)所述異常消息,通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理。
[0035]在第一種可能的實現(xiàn)方式中,根據(jù)第三方面,所述處理單元具體用于:
[0036]根據(jù)所述異常消息中第一容器的標識,檢測所述第一容器的重啟次數(shù)記錄;
[0037]當所述第一容器的重啟次數(shù)小于第一閾值時,通過所述代理服務系統(tǒng)向所述第一容器發(fā)送重啟命令,以使所述第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
[0038]在第二種可能的實現(xiàn)方式中,根據(jù)第一種可能實現(xiàn)的方式,所述處理單元還用于:[0039]當所述第一容器的重啟次數(shù)大于或等于所述第一閾值時,判斷所述第一容器的切換次數(shù)是否達到第二閾值;
[0040]當判斷出所述第一容器的切換次數(shù)小于所述第二閾值時,通過所述代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使所述第二容器處理所述第一容器當前正在處理的業(yè)務。
[0041]在第三種可能的實現(xiàn)方式中,根據(jù)第二種可能實現(xiàn)的方式,所述處理單元還用于:
[0042]當判斷出所述第一容器的切換次數(shù)大于或等于所述第二閾值時,判斷所述第一容器的切換次數(shù)是否達到第三閾值;
[0043]當判斷出所述第一容器的切換次數(shù)小于所述第三閾值時,通過所述代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使所述第三容器處理所述第一容器當前正在處理的業(yè)務。
[0044]在第四種可能的實現(xiàn)方式中,根據(jù)第三方面,所述第一接收單元具體用于:
[0045]接收所述代理服務服務系統(tǒng)中的代理服務客戶端發(fā)送的異常消息,所述異常消息是所述代理服務器端向所述代理服務客戶端發(fā)送的,所述代理服務器端還用于檢測所述第一容器的運行狀態(tài),所述異常消息中包括代理服務器端的地址,所述第一容器的地址與所述代理服務器端的地址相同;
[0046]所述處理單元具體用于:
[0047]向所述代理服務器中的代理服務客戶端發(fā)送處理信息,以使所述代理服務客戶端通過所述代理服務器端向所述第一容器發(fā)送所述處理信息以進行所述第一容器的重啟處理或切換處理;
[0048]其中,信息交互的方式為socket方式。
[0049]在第四種可能的實現(xiàn)方式中,根據(jù)第三種可能實現(xiàn)的方式,所述處理單元還用于:
[0050]當判斷出所述第一容器的切換次數(shù)大于或等于所述第三閾值時,發(fā)出警報,以使用戶獲知所述第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
[0051]本發(fā)明第四方面提供一種監(jiān)控容器的裝置,包括:
[0052]檢測單元,用于檢測第一容器的運行狀態(tài);
[0053]第一發(fā)送單元,用于當發(fā)現(xiàn)所述第一容器的運行狀態(tài)異常時,向高可用系統(tǒng)發(fā)送所述第一容器的異常消息;
[0054]第二接收單元,用于接收所述高可用系統(tǒng)根據(jù)所述異常消息發(fā)送的重啟命令或啟動命令;
[0055]第二發(fā)送單元,用于向所述第一容器發(fā)送所述重啟命令,或者向本地的第二容器發(fā)送啟動命令,或者向異地的第三容器發(fā)送啟動命令。
[0056]在第一種可能的實現(xiàn)方式中,根據(jù)第四方面,所述檢測單元和所述第一發(fā)送單元設置在所述第一容器內(nèi),所述第一發(fā)送單元的地址與所述第一容器相同。
[0057]由上述技術(shù)方案可知,本發(fā)明提供的監(jiān)控容器的方法、裝置與代理服務系統(tǒng),通過接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息,并通過代理服務系統(tǒng)對第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
【專利附圖】
【附圖說明】
[0058]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0059]圖1為根據(jù)本發(fā)明一實施例的監(jiān)控容器的方法的流程示意圖;
[0060]圖2為根據(jù)本發(fā)明另一實施例的監(jiān)控容器的方法的流程示意圖;
[0061]圖3為根據(jù)本發(fā)明又一實施例的可用系統(tǒng)的結(jié)構(gòu)示意圖;
[0062]圖4為根據(jù)本發(fā)明再一實施例的監(jiān)控容器的方法的流程示意圖;
[0063]圖5為根據(jù)本發(fā)明另一實施例的監(jiān)控容器的裝置的結(jié)構(gòu)示意圖;
[0064]圖6為根據(jù)本發(fā)明再一實施例的代理服務系統(tǒng)的結(jié)構(gòu)示意圖;
[0065]圖7為根據(jù)本發(fā)明又一實施例的監(jiān)控容器的裝置的結(jié)構(gòu)示意圖;
[0066]圖8為根據(jù)本發(fā)明再一實施例的代理服務系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0067]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0068]實施例一
[0069]本實施例提供一種監(jiān)控容器的方法,該監(jiān)控容器的方法適用于高可用系統(tǒng),該高可用系統(tǒng)具有高可用性。該高可用系統(tǒng)中包括代理服務系統(tǒng)、監(jiān)控容器的裝置和至少一個容器。本實施例的監(jiān)控容器的方法的執(zhí)行主體為監(jiān)控容器的裝置。
[0070]如圖1所示,為本實施例的監(jiān)控容器的方法的流程示意圖。
[0071]步驟101,接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息。
[0072]本實施例中的第一容器可以是Linux平臺上的任意一個容器。代理服務系統(tǒng)用于監(jiān)控Linux平臺上的所有容器,并能夠分別與監(jiān)控容器的裝置和容器進行通信,以使該監(jiān)控容器的裝置和容器之間通過該代理服務系統(tǒng)實現(xiàn)通信,具體可以通過socket方式進行通信。本實施例的代理服務系統(tǒng)能夠同時識別容器發(fā)送的消息以及監(jiān)控容器的裝置發(fā)送的消息,即代理服務系統(tǒng)接收到第一容器發(fā)送的異常消息之后,經(jīng)過處理生成監(jiān)控容器的裝置能夠識別的異常消息,并向第一容器發(fā)送該異常消息。
[0073]當代理服務系統(tǒng)識別到第一容器的運行狀態(tài)發(fā)生異常時,就向監(jiān)控容器的裝置發(fā)送異常消息,該異常消息中可以包括第一容器的標識信息和/或運行狀態(tài)異常標識信息。
[0074]步驟102,根據(jù)異常消息,通過代理服務系統(tǒng)對第一容器進行重啟處理或切換處理。
[0075]監(jiān)控容器的裝置接收到該異常消息之后,可以通過該異常消息中攜帶的第一容器的標識得知是哪一個容器的運行狀態(tài)發(fā)生異常,還可以根據(jù)異常消息中攜帶的運行狀態(tài)異常標識信息獲知該第一容器發(fā)生了什么異常,運行狀態(tài)異常標識信息與異常的對應關系具體可以根據(jù)實際需要進行設定。
[0076]監(jiān)控容器的裝置在接收到異常消息之后,可以根據(jù)預設規(guī)則,決定對第一容器進行重啟處理或切換處理。
[0077]根據(jù)本實施例的監(jiān)控容器的方法,通過接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息,并通過代理服務系統(tǒng)對第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
[0078]實施例二
[0079]本實施例基于實施例一提供一種監(jiān)控容器的方法。
[0080]如圖2所示,為根據(jù)本實施例的監(jiān)控容器的方法的流程示意圖。
[0081]步驟200,接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息。
[0082]該步驟與步驟101 —致,在此不再贅述。
[0083]步驟201,根據(jù)異常消息中第一容器的標識,檢測第一容器的重啟次數(shù)記錄,轉(zhuǎn)為步驟202。
[0084]本實施例可以預先設置一參考表,該參考表中記錄了每個容器的重啟次數(shù)和切換次數(shù),其中,重啟次數(shù)指的是該容器重啟的次數(shù),切換次數(shù)指的是將該容器當前正在處理的業(yè)務切換至另外一個容器進行處理的次數(shù)。監(jiān)控容器的裝置需要獲取某個容器的重啟次數(shù)或切換次數(shù)時,可以通過查詢該參考表進行獲取。該參考表可以預設在監(jiān)控容器的裝置中,也可以單獨進行存儲,只要該監(jiān)控容器的裝置能夠獲取到即可。
[0085]步驟202,判斷第一容器的重啟次數(shù)是否小于第一閾值。當判斷結(jié)果為是時,執(zhí)行步驟203,否則,執(zhí)行步驟204。
[0086]步驟203,通過代理服務系統(tǒng)向第一重啟發(fā)送重啟命令,以使第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
[0087]監(jiān)控容器的裝置如何繼續(xù)處理當前正在處理的業(yè)務屬于現(xiàn)有技術(shù),在此不再贅述。
[0088]監(jiān)控容器的裝置查詢到第一容器重啟次數(shù)小于第一閾值時,有可能是使用該第一容器的用戶通過不正當?shù)牟僮餍薷牧说谝蝗萜鲀?nèi)的業(yè)務的軟件的配置信息,還有可能是使用該第一容器的用戶修改或者取消了容器的關鍵進程,此時可以通過重啟第一容器來修復軟件故障。其中,第一閾值可以根據(jù)實際需要進行設定,例如2次。
[0089]步驟204,判斷第一容器的切換次數(shù)是否到達第二閾值。當判斷結(jié)果為否時,執(zhí)行步驟205,當判斷結(jié)果為是時,執(zhí)行步驟206。
[0090]步驟205,通過代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使第二容器處理第一容器當前正在處理的業(yè)務。
[0091]當判斷出第一容器的重啟次數(shù)已經(jīng)達到第一閾值時,說明該第一容器已經(jīng)出現(xiàn)無法修復的軟件故障,此時需要切換另外一個容器來處理該第一容器當前正在處理的業(yè)務。本實施例中,先啟用本地的第二容器來處理第一容器當前正在處理的業(yè)務。采用本地的第二容器來處理第一容器當前處理的業(yè)務,能夠降低第一容器與第二容器之間進行切換操作時,第二容器加載數(shù)據(jù)的時間。具體地,第二容器可以繼續(xù)處理第一容器當前正在處理的業(yè)務,即業(yè)務已經(jīng)被第一容器已經(jīng)處理的部分,第二容器可以不用重新處理,而是直接調(diào)用即可。具體第二容器如何繼續(xù)處理第一容器當前正在處理的業(yè)務,屬于現(xiàn)有技術(shù),在此不再贅述。
[0092]其中,本地的第二容器指的是與第一容器處于相同硬件服務器上的容器,即在同一宿主機上的容器。
[0093]步驟206,判斷第一容器的切換次數(shù)是否達到第三閾值,當判斷結(jié)果為否時,轉(zhuǎn)為步驟207,當判斷結(jié)果為是時,轉(zhuǎn)為步驟208。
[0094]步驟207,通過代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使第三容器處理第一容器當前正在處理的業(yè)務。
[0095]異地的第三容器如何處理第一容器當前正在處理的業(yè)務,屬于現(xiàn)有技術(shù),在此不再贅述。該異地的第三容器指的是在不同硬件服務器上的容器,即在不同宿主機上的容器。
[0096]步驟208,發(fā)出警報,以使用戶獲知第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
[0097]監(jiān)控容器的裝置發(fā)出的警報,可以是聲音或者高可用系統(tǒng)上的屏幕提示,以提示高可用系統(tǒng)已經(jīng)出現(xiàn)無法修復的故障,該故障可以是軟件故障,也可以是硬件故障。
[0098]能夠想象到的是,當監(jiān)控容器的裝置向第一容器發(fā)送時,相應地,需要更新參考表中該第一容器對應的重啟次數(shù),同理,當監(jiān)控容器的裝置發(fā)出切換命令時,相應的,也需要更新參考表中第一容器對應的切換次數(shù)。
[0099]根據(jù)本實施例的監(jiān)控容器的方法,在接收到代理服務系統(tǒng)發(fā)送的第一容器的運行狀態(tài)發(fā)生異常時,采用重啟或切換策略,以盡量保證第一容器當前正在處理的業(yè)務不會丟失。
[0100]實施例三
[0101]本實施例基于上述實施例提供一種具體的監(jiān)控容器的方法。
[0102]如圖3所示,為一高可用系統(tǒng)的結(jié)構(gòu)示意圖。
[0103]本實施例的代理服務系統(tǒng)301通過socket方式分別與第一容器302和監(jiān)控容器的裝置303通信。本實施例中的代理服務系統(tǒng)301包括代理服務客戶端(socket client)310和代理服務器端(socket server) 320,具體地,代理服務器端320可以設置在第一容器302內(nèi),與第一容器302具有相同的地址,代理服務器客戶端310可以設置在第一容器302外面。如圖3所示,當代理服務器端320可以設置在第一容器302內(nèi)時,代理服務客戶端310可以通過讀取/etc/hosts文件等方式獲取代理服務器端320的地址,并將該地址作為第一容器302的地址。
[0104]代理服務系統(tǒng)301檢測第一容器內(nèi)302的運行狀態(tài),當發(fā)現(xiàn)第一容器302運行狀態(tài)出現(xiàn)異常時,向監(jiān)控容器的裝置303發(fā)出異常消息。具體地,可以由代理服務器端320監(jiān)測第一容器302的運行狀態(tài),當發(fā)現(xiàn)第一容器302運行狀態(tài)發(fā)生異常時,向代理服務客戶端310發(fā)出異常消息,然后由代理服務客戶端310向監(jiān)控容器的裝置303轉(zhuǎn)發(fā)該異常消息,其中,異常消息中可以包括代理服務器端320的地址,即第一容器302的地址。具體來說,當代理服務系統(tǒng)301發(fā)現(xiàn)第一容器302的信息無法解析時,可以判斷該第一容器302出現(xiàn)異常,可以向監(jiān)控容器的裝置303發(fā)出異常消息。
[0105]監(jiān)控容器的裝置303接收到代理服務系統(tǒng)301發(fā)送的異常消息之后,對該異常消息進行解析,以獲取是哪個容器發(fā)生了異常。接著,監(jiān)控容器的裝置303采用相應的策略,并向代理服務系統(tǒng)301發(fā)送處理信息。代理服務系統(tǒng)301接收到該處理信息后,進行相應的處理,例如通過處理信息中的攜帶的第一容器302的地址找到相應的第一容器302,即找到相應的代理服務器端320,然后將處理信息發(fā)送給第一容器302或者向其他容器發(fā)送。由第一容器302或其它容器執(zhí)行相應的重啟操作或切換操作。具體地,監(jiān)控容器的裝置303向代理服務客戶端310發(fā)送處理信息,并通過代理服務器端320轉(zhuǎn)發(fā)向第一容器302該處理信息。
[0106]實施例四
[0107]本實施例提供一種監(jiān)控容器的方法,該監(jiān)控容器的方法適用于高可用系統(tǒng),該高可用系統(tǒng)具有高可用性。該高可用系統(tǒng)中包括代理服務系統(tǒng)、監(jiān)控容器的裝置和至少一個容器。本實施例的監(jiān)控容器的方法的執(zhí)行主體為代理服務系統(tǒng)。該代理服務器系統(tǒng)中可以包括代理服務器端和代理服務客戶端,其中,代理服務器端設置在第一容器內(nèi),用于檢測所述第一容器的運行狀態(tài),該代理服務器端的地址可以與第一容器的地址相同。
[0108]如圖4所示,為根據(jù)本實施例的監(jiān)控容器的方法的流程示意圖。
[0109]步驟401,檢測第一容器的運行狀態(tài)。
[0110]代理服務系統(tǒng)可以周期性的檢測第一容器的運行狀態(tài),具體周期可以根據(jù)實際需要進行設定。
[0111]步驟402,當發(fā)現(xiàn)第一容器的運行狀態(tài)異常時,向監(jiān)控容器的裝置發(fā)送第一容器的異常消息。
[0112]該異常消息中可以包括第一容器的標識信息和/或運行狀態(tài)異常標識信息。該異常消息中還可以包括第一容器的地址。
[0113]步驟403,接收監(jiān)控容器的裝置根據(jù)異常消息發(fā)送的重啟命令或啟動命令。
[0114]代理服務器系統(tǒng)接收到重啟命令或啟動命令之后,可以根據(jù)重啟命令或啟動命令中所攜帶的容器的標識判斷向哪個容器發(fā)送重啟命令或啟動命令。
[0115]步驟404,向第一容器發(fā)送重啟命令,或者向本地的第二容器發(fā)送啟動命令,或者向異地的第三容器發(fā)送啟動命令。
[0116]監(jiān)控容器的裝置接收到該異常消息之后,可以通過該異常消息中攜帶的第一容器的標識得知是哪一個容器的運行狀態(tài)發(fā)生異常,還可以根據(jù)異常消息中攜帶的運行狀態(tài)異常標識信息獲知該第一容器發(fā)生了什么異常,運行狀態(tài)異常標識信息與異常的對應關系具體可以根據(jù)實際需要進行設定。
[0117]監(jiān)控容器的裝置在接收到異常消息之后,可以根據(jù)預設規(guī)則,決定對第一容器進行重啟處理或切換處理。具體是代理服務系統(tǒng)是向第一容器發(fā)送重啟命令,還是向本地的第二容器發(fā)送啟動命令,還是向異地的第三容器發(fā)送啟動命令,可以根據(jù)監(jiān)控容器的裝置發(fā)送的重啟命令或啟動命令進行判斷。
[0118]本實施例的通信方式可以采用socket方式,即通過socket方式與第一容器、代理服務客戶端進行信息交互。
[0119]根據(jù)本實施例的監(jiān)控容器的方法,通過代理服務系統(tǒng)檢測第一容器的異常消息,并對第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
[0120]本領域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0121]實施例五
[0122]本實施例提供一種監(jiān)控容器的裝置,用于執(zhí)行實施例一的監(jiān)控容器的方法。
[0123]如圖5所示,為根據(jù)本實施例的監(jiān)控容器的裝置的結(jié)構(gòu)示意圖。該監(jiān)控容器的裝置包括第一接收單元501和處理單元502。
[0124]其中,第一接收單元501用于接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息;處理單元502用于根據(jù)第一接收單元501接收到的異常消息,通過代理服務系統(tǒng)對第一容器進行重啟處理或切換處理。
[0125]該監(jiān)控容器的裝置的具體操作方式與實施例一一致,在此不再贅述。
[0126]根據(jù)本實施例的監(jiān)控容器的裝置,通過接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息,并通過代理服務系統(tǒng)對第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
[0127]實施例六
[0128]本實施例基于實施例五提供一種監(jiān)控容器的裝置。
[0129]本實施例主要對監(jiān)控容器的裝置中的處理單元做進一步描述。
[0130]本實施例的監(jiān)控容器的裝置中的處理單元502可以具體用于:
[0131]根據(jù)異常消息中第一容器的標識,檢測第一容器的重啟次數(shù)記錄;
[0132]當?shù)谝蝗萜鞯闹貑⒋螖?shù)小于第一閾值時,通過代理服務系統(tǒng)向第一容器發(fā)送重啟命令,以使第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
[0133]可選地,本實施例的處理單元502還可用于:
[0134]當?shù)谝蝗萜鞯闹貑⒋螖?shù)大于或等于第一閾值時,判斷第一容器的切換次數(shù)是否達到第二閾值;
[0135]當判斷出第一容器的切換次數(shù)小于第二閾值時,通過代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使第二容器處理第一容器當前正在處理的業(yè)務。
[0136]可選地,本實施例的處理單元502還可以用于:
[0137]當判斷出第一容器的切換次數(shù)大于或等于第二閾值時,判斷第一容器的切換次數(shù)是否達到第三閾值;
[0138]當判斷出第一容器的切換次數(shù)小于第三閾值時,通過代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使第三容器處理第一容器當前正在處理的業(yè)務。
[0139]可選地,本實施例的處理單元502還可以用于:
[0140]當判斷出第一容器的切換次數(shù)大于或等于第三閾值時,發(fā)出警報,以使用戶獲知第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
[0141]該實施例的監(jiān)控容器的裝置的具體操作方法與實施例二一致,在此不再贅述。
[0142]根據(jù)本實施例的監(jiān)控容器的裝置,在接收到代理服務系統(tǒng)發(fā)送的第一容器的運行狀態(tài)發(fā)生異常時,采用重啟或切換策略,以盡量保證第一容器當前正在處理的業(yè)務不會丟失。
[0143]可選地,所述第一接收單元具體用于:[0144]接收所述代理服務服務系統(tǒng)中的代理服務客戶端發(fā)送的異常消息,所述異常消息是所述代理服務器端向所述代理服務客戶端發(fā)送的,所述代理服務器端還用于檢測所述第一容器的運行狀態(tài),所述異常消息中包括代理服務器端的地址,所述第一容器的地址與所述代理服務器端的地址相同;
[0145]所述處理單元具體用于:
[0146]向所述代理服務器中的代理服務客戶端發(fā)送處理信息,以使所述代理服務客戶端通過所述代理服務器端向所述第一容器發(fā)送所述處理信息以進行所述第一容器的重啟處理或切換處理;
[0147]其中,信息交互的方式為socket方式。
[0148]其具體操作方式與實施例三相同,在此不再贅述。
[0149]實施例七
[0150]本實施例提供一種代理服務系統(tǒng),該代理服務系統(tǒng)用于執(zhí)行實施例四的監(jiān)控容器的方法。
[0151]如圖6所示,為根據(jù)本實施例的代理服務系統(tǒng)的結(jié)構(gòu)示意圖。該代理服務系統(tǒng)包括檢測單元601、第一發(fā)送單元602、第二接收單元603和第二發(fā)送單元604。
[0152]其中,檢測單元601用于檢測第一容器的運行狀態(tài);第一發(fā)送單元602用于當檢測單元601發(fā)現(xiàn)所述第一容器的運行狀態(tài)異常時,向監(jiān)控容器的裝置發(fā)送所述第一容器的異常消息;第二接收單元603用于接收所述監(jiān)控容器的裝置根據(jù)所述第一發(fā)送單元602發(fā)送的異常消息發(fā)送的重啟命令或啟動命令;第二發(fā)送單元604用于向所述第一容器發(fā)送第二接收單元603接收到的所述重啟命令,或者向本地的第二容器發(fā)送第二接收單元603接收到的啟動命令,或者向異地的第三容器發(fā)送第二接收單元603接收到的啟動命令。
[0153]本實施例的代理服務系統(tǒng)的具體操作方法與實施例四一致,在此不再贅述。
[0154]其中,代理服務系統(tǒng)可以通過socket方式與第一容器、監(jiān)控容器的裝置進行信息交互。
[0155]根據(jù)本實施例的代理服務系統(tǒng),通過檢測第一容器,并對第一容器轉(zhuǎn)發(fā)處理信息以使第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
[0156]可選地,本實施例中的檢測單兀601和第一發(fā)送單兀602設置在第一容器內(nèi),第一發(fā)送單元602的地址與第一容器相同。當然,檢測單元601的地址也可以與第一容器相同。
[0157]實施例八
[0158]本實施例提供另一種監(jiān)控容器的裝置,用于執(zhí)行上述實施例的監(jiān)控容器的方法。
[0159]如圖7所示,為根據(jù)本實施例的監(jiān)控容器的裝置的結(jié)構(gòu)示意圖。本實施例的監(jiān)控容器的裝置700包括至少一個第一處理器701、第一通信總線702、第一存儲器703以及至少一個第一通信接口 704。
[0160]其中,第一通信總線702用于實現(xiàn)上述組件之間的連接并通信,第一通信接口 704用于與網(wǎng)絡設備連接并通信。該總線可以是ISA( Industry Standard Architecture,工業(yè)標準體系結(jié)構(gòu))總線、PCI (Peripheral Component,外部設備互連)總線或EISA (ExtendedIndustry Standard Architecture,擴展工業(yè)標準體系結(jié)構(gòu))總線等??偩€可以是一條或多條物理線路,當是多條物理線路時可以分為地址總線、數(shù)據(jù)總線、控制總線等。[0161]其中,第一存儲器703用于存儲可執(zhí)行程序代碼,其中,第一處理器701通過讀取第一存儲器703中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于:
[0162]接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息;
[0163]根據(jù)異常消息,通過代理服務系統(tǒng)對第一容器進行重啟處理或切換處理。
[0164]可選地,第一處理器701通過讀取第一存儲器703中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于根據(jù)異常消息,對第一容器進行重啟處理或切換處理時,具體可以是:
[0165]根據(jù)異常消息中第一容器的標識,檢測第一容器的重啟次數(shù)記錄;
[0166]當?shù)谝蝗萜鞯闹貑⒋螖?shù)小于第一閾值時,通過代理服務系統(tǒng)向第一容器發(fā)送重啟命令,以使第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
[0167]可選地,第一處理器701還可以通過讀取第一存儲器703中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于:
[0168]當?shù)谝蝗萜鞯闹貑⒋螖?shù)大于或等于第一閾值時,判斷第一容器的切換次數(shù)是否達到第二閾值;
[0169]當判斷出第一容器的切換次數(shù)小于第二閾值時,通過代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使第二容器處理第一容器當前正在處理的業(yè)務。
[0170]可選地,第一處理器701還可以通過讀取第一存儲器703中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于:
[0171]當判斷出第一容器的切換次數(shù)大于或等于第二閾值時,判斷第一容器的切換次數(shù)是否達到第三閾值;
[0172]當判斷出第一容器的切換次數(shù)小于第三閾值時,通過代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使第三容器處理第一容器當前正在處理的業(yè)務。
[0173]可選地,第一處理器701還可以通過讀取第一存儲器703中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于:
[0174]當判斷出第一容器的切換次數(shù)大于或等于第三閾值時,發(fā)出警報,以使用戶獲知第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
[0175]可選地,第一處理器701過讀取第一存儲器703中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息時,具體可以是:
[0176]接收所述代理服務服務系統(tǒng)中的代理服務客戶端發(fā)送的異常消息,所述異常消息是所述代理服務器端向所述代理服務客戶端發(fā)送的,所述代理服務器端還用于檢測所述第一容器的運行狀態(tài),所述異常消息中包括代理服務器端的地址,所述第一容器的地址與所述代理服務器端的地址相同;
[0177]所述通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理包括:
[0178]向所述代理服務器中的代理服務客戶端發(fā)送處理信息,以使所述代理服務客戶端通過所述代理服務器端向所述第一容器發(fā)送所述處理信息以進行所述第一容器的重啟處理或切換處理;
[0179]其中,信息交互的方式為socket方式。
[0180]根據(jù)本實施例的監(jiān)控容器的裝置700,通過接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息,并通過代理服務系統(tǒng)對第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
[0181]實施例九
[0182]本實施例提供另一種代理服務系統(tǒng),以用于執(zhí)行上述監(jiān)控容器的方法。
[0183]如圖8所示,為根據(jù)本實施例的代理服務系統(tǒng)的結(jié)構(gòu)示意圖。本實施例的代理服務系統(tǒng)800包括至少一個第二處理器801、第二通信總線802、第二存儲器803以及至少一個第二通信接口 804。
[0184]其中,第二通信總線802用于實現(xiàn)上述組件之間的連接并通信,第二通信接口 804用于與網(wǎng)絡設備連接并通信。該總線可以是ISA( Industry Standard Architecture,工業(yè)標準體系結(jié)構(gòu))總線、PCI (Peripheral Component,外部設備互連)總線或EISA (ExtendedIndustry Standard Architecture,擴展工業(yè)標準體系結(jié)構(gòu))總線等??偩€可以是一條或多條物理線路,當是多條物理線路時可以分為地址總線、數(shù)據(jù)總線、控制總線等。
[0185]其中,第二存儲器803用于存儲可執(zhí)行程序代碼,其中,第二處理器801通過讀取第二存儲器803中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,以用于:
[0186]檢測第一容器的運行狀態(tài);
[0187]當發(fā)現(xiàn)所述第一容器的運行狀態(tài)異常時,向監(jiān)控容器的裝置發(fā)送所述第一容器的異常消息;
[0188]接收所述監(jiān)控容器的裝置根據(jù)所述異常消息發(fā)送的重啟命令或啟動命令;
[0189]向所述第一容器發(fā)送所述重啟命令,或者向本地的第二容器發(fā)送啟動命令,或者向異地的第三容器發(fā)送啟動命令。
[0190]可選地,異常消息中可以包括第一容器的地址,所述第一容器的地址與代理服務器系統(tǒng)中的代理服務器端的地址相同,所述代理服務器端設置在所述第一容器內(nèi)。
[0191]根據(jù)本實施例的代理服務器系統(tǒng)800,通過檢測第一容器,并對第一容器轉(zhuǎn)發(fā)處理信息以使第一容器進行重啟或切換處理,實現(xiàn)了容器的高可用性,能夠盡量保證第一容器當前處理的業(yè)務不會丟失、中斷、失敗或者無響應。
[0192]最后應說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種監(jiān)控容器的方法,其特征在于,包括: 接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息; 根據(jù)所述異常消息,通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理。
2.根據(jù)權(quán)利要求1所述的監(jiān)控容器的方法,其特征在于,所述根據(jù)所述異常消息,對所述第一容器進行重啟處理或切換處理,包括: 根據(jù)所述異常消息中第一容器的標識,檢測所述第一容器的重啟次數(shù)記錄; 當所述第一容器的重啟次數(shù)小于第一閾值時,通過所述代理服務系統(tǒng)向所述第一容器發(fā)送重啟命令,以使所述第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
3.根據(jù)權(quán)利要求2所述的監(jiān)控容器的方法,其特征在于,還包括: 當所述第一容器的重啟次數(shù)大于或等于所述第一閾值時,判斷所述第一容器的切換次數(shù)是否達到第二閾值; 當判斷出所述第一容器的切換次數(shù)小于所述第二閾值時,通過所述代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使所述第二容器處理所述第一容器當前正在處理的業(yè)務。
4.根據(jù)權(quán)利要求3所述的監(jiān)控容器的方法,其特征在于,還包括: 當判斷出所述第一容器的切換次數(shù)大于或等于所述第二閾值時,判斷所述第一容器的切換次數(shù)是否達到第三閾值; 當判斷出所述第一容器的切換次數(shù)小于所述第三閾值時,通過所述代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使所述第三容器處理所述第一容器當前正在處理的業(yè)務。
5.根據(jù)權(quán)利要求4所述的監(jiān)控容器的方法,其特征在于,還包括: 當判斷出所述第一容器的切換次數(shù)大于或等于所述第三閾值時,發(fā)出警報,以使用戶獲知所述第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
6.根據(jù)權(quán)利要求1所述的監(jiān)控容器的方法,其特征在于,所述接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息包括: 接收所述代理服務服務系統(tǒng)中的代理服務客戶端發(fā)送的異常消息,所述異常消息是所述代理服務器端向所述代理服務客戶端發(fā)送的,所述代理服務器端還用于檢測所述第一容器的運行狀態(tài),所述異常消息中包括代理服務器端的地址,所述第一容器的地址與所述代理服務器端的地址相同; 所述通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理包括: 向所述代理服務器中的代理服務客戶端發(fā)送處理信息,以使所述代理服務客戶端通過所述代理服務器端向所述第一容器發(fā)送所述處理信息以進行所述第一容器的重啟處理或切換處理; 其中,信息交互的方式為socket方式。
7.—種監(jiān)控容器的方法,其特征在于,包括: 檢測第一容器的運行狀態(tài); 當發(fā)現(xiàn)所述第一容器的運行狀態(tài)異常時,向監(jiān)控容器的裝置發(fā)送所述第一容器的異常消息; 接收所述監(jiān)控容器的裝置根據(jù)所述異常消息發(fā)送的重啟命令或啟動命令; 向所述第一容器發(fā)送所述重啟命令,或者向本地的第二容器發(fā)送啟動命令,或者向異地的第三容器發(fā)送啟動命令。
8.根據(jù)權(quán)利要求7所述的監(jiān)控容器的方法,其特征在于,通過socket方式與所述第一容器、所述監(jiān)控容器的裝置進行信息交互。
9.根據(jù)權(quán)利要求7或8所述的監(jiān)控容器的方法,其特征在于,所述異常消息中包括第一容器的地址,所述第一容器的地址與代理服務器系統(tǒng)中的代理服務器端的地址相同,所述代理服務器端設置在所述第一容器內(nèi)。
10.一種監(jiān)控容器的裝置,其特征在于,包括: 第一接收單元,用于接收代理服務系統(tǒng)發(fā)送的第一容器的異常消息; 處理單元,用于根據(jù)所述異常消息,通過代理服務系統(tǒng)對所述第一容器進行重啟處理或切換處理。
11.根據(jù)權(quán)利要求7的監(jiān)控容器的裝置,其特征在于,所述處理單元具體用于: 根據(jù)所述異常消息中第一容器的標識,檢測所述第一容器的重啟次數(shù)記錄; 當所述第一容器的重啟次數(shù)小于第一閾值時,通過所述代理服務系統(tǒng)向所述第一容器發(fā)送重啟命令,以使所述第一容器重啟,并繼續(xù)處理當前正在處理的業(yè)務。
12.根據(jù)權(quán)利要求11所述的監(jiān)控容器的裝置,其特征在于,所述處理單元還用于: 當所述第一容器的重啟次數(shù)大于或等于所述第一閾值時,判斷所述第一容器的切換次數(shù)是否達到第二閾值 ; 當判斷出所述第一容器的切換次數(shù)小于所述第二閾值時,通過所述代理服務系統(tǒng)向本地的第二容器發(fā)送啟動命令,以使所述第二容器處理所述第一容器當前正在處理的業(yè)務。
13.根據(jù)權(quán)利要求12所述的監(jiān)控容器的裝置,其特征在于,所述處理單元還用于: 當判斷出所述第一容器的切換次數(shù)大于或等于所述第二閾值時,判斷所述第一容器的切換次數(shù)是否達到第三閾值; 當判斷出所述第一容器的切換次數(shù)小于所述第三閾值時,通過所述代理服務系統(tǒng)向異地的第三容器發(fā)送啟動命令,以使所述第三容器處理所述第一容器當前正在處理的業(yè)務。
14.根據(jù)權(quán)利要求13所述的監(jiān)控容器的裝置,其特征在于,所述處理單元還用于: 當判斷出所述第一容器的切換次數(shù)大于或等于所述第三閾值時,發(fā)出警報,以使用戶獲知所述第一容器所在的高可用系統(tǒng)發(fā)生無法修復的故障。
15.根據(jù)權(quán)利要求10所述的監(jiān)控容器的裝置,其特征在于,所述第一接收單元具體用于: 接收所述代理服務服務系統(tǒng)中的代理服務客戶端發(fā)送的異常消息,所述異常消息是所述代理服務器端向所述代理服務客戶端發(fā)送的,所述代理服務器端還用于檢測所述第一容器的運行狀態(tài),所述異常消息中包括代理服務器端的地址,所述第一容器的地址與所述代理服務器端的地址相同; 所述處理單元具體用于: 向所述代理服務器中的代理服務客戶端發(fā)送處理信息,以使所述代理服務客戶端通過所述代理服務器端向所述第一容器發(fā)送所述處理信息以進行所述第一容器的重啟處理或切換處理; 其中,信息交互的方式為socket方式。
16.一種代理服務系統(tǒng),其特征在于,包括: 檢測單元,用于檢測第一容器的運行狀態(tài);第一發(fā)送單元,用于當發(fā)現(xiàn)所述第一容器的運行狀態(tài)異常時,向監(jiān)控容器的裝置發(fā)送所述第一容器的異常消息; 第二接收單元,用于接收所述監(jiān)控容器的裝置根據(jù)所述異常消息發(fā)送的重啟命令或啟動命令; 第二發(fā)送單元,用于向所述第一容器發(fā)送所述重啟命令,或者向本地的第二容器發(fā)送啟動命令,或者向異地的第三容器發(fā)送啟動命令。
17.根據(jù)權(quán)利 要求16所述的代理服務系統(tǒng),其特征在于,所述檢測單元和所述第一發(fā)送單元設置在所述第一容器內(nèi),所述第一發(fā)送單元的地址與所述第一容器相同。
【文檔編號】H04L29/06GK103491134SQ201310389310
【公開日】2014年1月1日 申請日期:2013年8月30日 優(yōu)先權(quán)日:2013年8月30日
【發(fā)明者】張洪輝, 任超, 陳立波 申請人:華為技術(shù)有限公司