一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置和方法
【專利摘要】本發(fā)明公開一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置和方法,該裝置包括接收模塊、監(jiān)測模塊、第一判斷模塊和重啟模塊。監(jiān)測模塊基于接收模塊接收的應(yīng)用服務(wù)器的Java進程的Id號,實時監(jiān)測應(yīng)用服務(wù)器的進程狀態(tài);第一判斷模塊判斷所述監(jiān)測模塊的監(jiān)測結(jié)果是否為所述Java進程消失,并在判斷結(jié)果為是時,通過重啟模塊重啟應(yīng)用服務(wù)器,以保證應(yīng)用服務(wù)器恢復(fù)運行??梢?,本發(fā)明通過其包括的各個功能模塊實現(xiàn)了實時、自動檢測應(yīng)用服務(wù)器的進程狀態(tài),災(zāi)難監(jiān)測、消除的過程無需人工干預(yù),省時省力,提高了災(zāi)難消除的效率以及系統(tǒng)的容災(zāi)能力,且能夠及時處理災(zāi)難,降低了由JVM宕機等問題導(dǎo)致的災(zāi)難的影響。
【專利說明】一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于應(yīng)用服務(wù)容災(zāi)、恢復(fù)【技術(shù)領(lǐng)域】,尤其涉及一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置和方法。
【背景技術(shù)】
[0002]目前,飛騰CPU (中央處理器,Central ProcessingUnit)、麒麟操作系統(tǒng)或龍芯平臺等國產(chǎn)環(huán)境下,應(yīng)用服務(wù)器運行的環(huán)境不夠穩(wěn)定,經(jīng)常出現(xiàn)JVM( Java Virtual Machine,Java虛擬機)宕機等災(zāi)難性情況,這些情況導(dǎo)致應(yīng)用服務(wù)器不能正常提供服務(wù)。
[0003]針對上述情況,當(dāng)前在國產(chǎn)環(huán)境下對于應(yīng)用服務(wù)器沒有容災(zāi)設(shè)備。一般采用人工方式檢測、判斷應(yīng)用服務(wù)器的進程狀態(tài),并在檢測到JVM宕機等災(zāi)難現(xiàn)象時,通過人工干預(yù)排查、消除災(zāi)難,以保證應(yīng)用服務(wù)器正常運行。但該方式由于采用人工干預(yù),費時費力,災(zāi)難消除的效率較低,且不能保證在災(zāi)難發(fā)生的第一時間檢測、排除災(zāi)難,導(dǎo)致災(zāi)難消除不及時,擴大了災(zāi)難的影響。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的在于提供一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置和方法,以解決上述問題,減少人工干預(yù)的工作量,提高災(zāi)難消除的效率,降低災(zāi)難的影響。
[0005]為此,本發(fā)明公開如下技術(shù)方案:
[0006]一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置,包括接收模塊、監(jiān)測模塊、第一判斷模塊和重啟模塊,其中:
[0007]所述接收模塊,用于接收應(yīng)用服務(wù)器發(fā)送的其所啟動的Java進程的Id號;
[0008]所述監(jiān)測模塊,用于基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)器的進程狀態(tài);
[0009]所述第一判斷模塊,用于判斷所述監(jiān)測模塊的監(jiān)測結(jié)果是否為所述Java進程消失,若判斷結(jié)果為是,則執(zhí)行所述重啟模塊;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行所述監(jiān)測模塊;
[0010]所述重啟模塊,用于重啟應(yīng)用服務(wù)器。
[0011]優(yōu)選的,所述接收模塊,還用于接收應(yīng)用服務(wù)器發(fā)送的日志文件地址和應(yīng)用訪問地址。
[0012]優(yōu)選的,所述裝置還包括訪問模塊、第二判斷模塊、分析模塊、第三判斷模塊和參數(shù)調(diào)整模塊,其中:
[0013]所述訪問模塊,用于按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用;
[0014]所述第二判斷模塊,用于判斷所述訪問模塊訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間是否大于預(yù)設(shè)數(shù)值,若判斷結(jié)果為是,則執(zhí)行所述分析模塊;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行所述訪問模塊;[0015]所述分析模塊,用于利用所述日志文件地址,獲取日志文件,并對所獲取的日志文件進行分析,得到分析結(jié)果;
[0016]所述第三判斷模塊,用于依據(jù)所述分析結(jié)果,判斷所述應(yīng)用的響應(yīng)時間大于所述預(yù)設(shè)數(shù)值的原因是否是內(nèi)存溢出,若判斷結(jié)果為是,則執(zhí)行所述參數(shù)調(diào)整模塊;否則,若判斷結(jié)果為否,則執(zhí)行所述重啟模塊;
[0017]所述參數(shù)調(diào)整模塊,用于調(diào)整JVM相應(yīng)參數(shù),以使JVM內(nèi)存大小滿足在訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間在所述預(yù)設(shè)數(shù)值內(nèi);轉(zhuǎn)至執(zhí)行重啟模塊。
[0018]優(yōu)選的,所述預(yù)設(shè)數(shù)值具體為10秒。
[0019]一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法,包括:
[0020]接收應(yīng)用服務(wù)器發(fā)送的其所啟動的Java進程的Id號;
[0021]基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)的進程狀態(tài);
[0022]判斷所述監(jiān)測的監(jiān)測結(jié)果是否為所述Java進程消失,若判斷結(jié)果為是,則重啟應(yīng)用服務(wù)器;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行步驟:基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)器的進程狀態(tài)。
[0023]優(yōu)選的,所述方法還包括:
[0024]接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用訪問地址和日志文件地址;
[0025]按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用;
[0026]判斷訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間是否大于預(yù)設(shè)數(shù)值,若判斷結(jié)果為是,則利用所述日志文件地址,獲取日志文件,并對所獲取的日志文件進行分析,得到分析結(jié)果;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行步驟:按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用;
[0027]依據(jù)所述分析結(jié)果,判斷所述應(yīng)用的響應(yīng)時間大于所述預(yù)設(shè)數(shù)值的原因是否是內(nèi)存溢出;
[0028]當(dāng)判斷結(jié)果為是時,調(diào)整JVM相應(yīng)參數(shù),以使JVM內(nèi)存大小滿足在訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間在所述預(yù)設(shè)數(shù)值內(nèi);之后,重啟應(yīng)用服務(wù)器;
[0029]當(dāng)判斷結(jié)果為否時,重啟應(yīng)用服務(wù)器。
[0030]由于本發(fā)明實施例提供的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置,包括了接收模塊、監(jiān)測模塊、第一判斷模塊和重啟模塊。監(jiān)測模塊基于接收模塊接收的應(yīng)用服務(wù)器的Java進程的Id號,實時監(jiān)測應(yīng)用服務(wù)器的進程狀態(tài),第一判斷模塊判斷所述監(jiān)測模塊的監(jiān)測結(jié)果是否為所述Java進程消失,并在監(jiān)測結(jié)果為是時,通過重啟模塊重啟應(yīng)用服務(wù)器,以保證應(yīng)用服務(wù)器恢復(fù)運行??梢?,本發(fā)明通過其包括的各個功能模塊實現(xiàn)了實時、自動檢測應(yīng)用服務(wù)器的進程狀態(tài),災(zāi)難監(jiān)測、消除的過程無需人工干預(yù),省時省力,提高了災(zāi)難消除的效率以及系統(tǒng)的容災(zāi)能力,且能夠及時處理災(zāi)難,降低了由JVM宕機等問題導(dǎo)致的災(zāi)難的影響。
【專利附圖】
【附圖說明】
[0031]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0032]圖1是本發(fā)明實施例一提供的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置的一種結(jié)構(gòu)示意圖;
[0033]圖2是本發(fā)明實施例二提供的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置的另一種結(jié)構(gòu)示意圖;
[0034]圖3是本發(fā)明實施例二提供的容災(zāi)裝置實例的工作流程圖;
[0035]圖4是本發(fā)明實施例三提供的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法的一種流程圖;
[0036]圖5是本發(fā)明實施例三提供的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法的另一種流程圖;
【具體實施方式】
[0037]為了引用和清楚起見,下文中使用的技術(shù)名詞、簡寫或縮寫總結(jié)解釋如下:
[0038]JVM:是Java Virtual Machine (Java虛擬機)的縮寫,JVM是一種用于計算設(shè)備的規(guī)范,它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。Java虛擬機包括一套字節(jié)碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域。JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使Java程序只需生成在Java虛擬機上運行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行,JVM是JEE應(yīng)用服務(wù)器的運行依賴。
[0039]國產(chǎn)環(huán)境:飛騰CPU、麒麟操作系統(tǒng)和龍芯平臺。
[0040]JVM宕機:因為內(nèi)存不穩(wěn)定java程序被強行關(guān)閉。
[0041]應(yīng)用恢復(fù)時間:客戶對應(yīng)用停止服務(wù)的最大容忍時間
[0042]應(yīng)用檢測時間:應(yīng)用檢測時間為應(yīng)用恢復(fù)時間減去應(yīng)用服務(wù)器啟動時間。
[0043]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0044]實施例一
[0045]本發(fā)明實施例一公開一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置,請參見圖1,該裝置包括接收模塊100、監(jiān)測模塊200、第一判斷模塊300和重啟模塊400,其中:
[0046]接收模塊100,用于接收應(yīng)用服務(wù)器發(fā)送的其所啟動的Java進程的Id(Identity,身份標(biāo)識)號。
[0047]具體地,本發(fā)明的裝置以及應(yīng)用服務(wù)器啟動之后,應(yīng)用服務(wù)器向本發(fā)明裝置進行注冊,將其啟動的Java進程的Id號通知給本發(fā)明的裝置,接收模塊100接收所述Java進程的Id號。
[0048]監(jiān)測模塊200,用于基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)器的進程狀態(tài)。
[0049]其中,監(jiān)測模塊200以接收模塊100接收的Java進程的Id號為依據(jù),對應(yīng)用服務(wù)器的進程狀態(tài)進行實時監(jiān)測,以實時了解應(yīng)用服務(wù)器的進程狀態(tài)。
[0050]第一判斷模塊300,用于判斷所述監(jiān)測模塊的監(jiān)測結(jié)果是否為所述Java進程消失,若判斷結(jié)果為是,則執(zhí)行重啟模塊400;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行監(jiān)測模塊200。
[0051]重啟模塊400,用于重啟應(yīng)用服務(wù)器。[0052]若監(jiān)測到Java進程消失,則表明當(dāng)前出現(xiàn)了 JVM宕機現(xiàn)象,應(yīng)用服務(wù)器不能繼續(xù)提供正常服務(wù)。此時,重啟模塊400重啟應(yīng)用服務(wù)器,使其恢復(fù)正常運行。
[0053]綜上所述,本發(fā)明實施例提供的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置,包括了接收模塊100、監(jiān)測模塊200、第一判斷模塊300和重啟模塊400。監(jiān)測模塊200基于接收模塊100接收的應(yīng)用服務(wù)器的Java進程的Id號,實時監(jiān)測應(yīng)用服務(wù)器的進程狀態(tài),第一判斷模塊300判斷所述監(jiān)測模塊的監(jiān)測結(jié)果是否為所述Java進程消失,并在監(jiān)測結(jié)果為是時,通過重啟模塊400重啟應(yīng)用服務(wù)器,以保證應(yīng)用服務(wù)器恢復(fù)運行??梢?,本發(fā)明通過其包括的各個功能模塊實現(xiàn)了實時、自動檢測應(yīng)用服務(wù)器的進程狀態(tài),災(zāi)難監(jiān)測、消除的過程無需人工干預(yù),省時省力,提高了災(zāi)難消除的效率以及系統(tǒng)的容災(zāi)能力,且能夠及時處理災(zāi)難,降低了由JVM宕機等問題導(dǎo)致的災(zāi)難的影響。
[0054]實施例二
[0055]本發(fā)明實施例二繼續(xù)對實施例一的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置進行完善和補充,公開了該裝置的另一種結(jié)構(gòu),請參見圖2,其除了包括接收模塊100、監(jiān)測模塊200、第一判斷模塊300和重啟模塊400之外,還包括訪問模塊500、第二判斷模塊600、分析模塊700、第三判斷模塊800和參數(shù)調(diào)整模塊900。
[0056]同時,對接收模塊100的功能進行了擴充,本實施例二中,接收模塊100還用于接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用訪問地址和日志文件地址。
[0057]具體地,應(yīng)用服務(wù)器向本發(fā)明的裝置注冊其啟動的Java進程的Id號、日志文件地址和應(yīng)用訪問地址,該接收模塊100接收應(yīng)用服務(wù)器的上述注冊信息,為后續(xù)各模塊的工作提供依據(jù)。
[0058]訪問模塊500,用于按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)應(yīng)用。
[0059]第二判斷模塊600,用于判斷所述訪問模塊訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間是否大于預(yù)設(shè)數(shù)值,若判斷結(jié)果為是,則執(zhí)行所述分析模塊700 ;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行訪問模塊500;。
[0060]訪問模塊500以及第二判斷模塊600通過實際訪問應(yīng)用來檢測、驗證所述應(yīng)用的響應(yīng)時間,并將應(yīng)用的響應(yīng)時間與預(yù)先設(shè)置的數(shù)值進行比較,以判斷該應(yīng)用是否存在響應(yīng)過慢的問題。具體地,預(yù)設(shè)數(shù)值可由本領(lǐng)域技術(shù)人員依據(jù)實際制定的對應(yīng)用響應(yīng)速度的評判基準(zhǔn)進行設(shè)定,本實施例中,設(shè)定該數(shù)值為10s,即當(dāng)應(yīng)用的響應(yīng)時間超過IOs時,認定應(yīng)用響應(yīng)過慢,即應(yīng)用出現(xiàn)災(zāi)難性情況。
[0061]分析模塊700,用于利用所述日志文件地址,獲取日志文件,并對所獲取的日志文件進行分析,得到分析結(jié)果。
[0062]第三判斷模塊800,用于依據(jù)所述分析結(jié)果,判斷所述應(yīng)用的響應(yīng)時間大于所述預(yù)設(shè)數(shù)值的原因是否是內(nèi)存溢出,若判斷結(jié)果為是,則執(zhí)行參數(shù)調(diào)整模塊900 ;否則,若判斷結(jié)果為否,則執(zhí)行重啟模塊400。
[0063]所述參數(shù)調(diào)整模塊900,用于調(diào)整JVM相應(yīng)參數(shù),以使JVM內(nèi)存大小滿足在訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間在所述預(yù)設(shè)數(shù)值內(nèi);之后,轉(zhuǎn)至執(zhí)行重啟模塊400。
[0064]當(dāng)應(yīng)用響應(yīng)過慢時,分析模塊700通過對日志文件進行分析查找出現(xiàn)該響應(yīng)過慢問題的原因。若分析結(jié)果表明,是由于內(nèi)存溢出等問題導(dǎo)致的應(yīng)用響應(yīng)速度慢,則參數(shù)調(diào)整模塊900調(diào)整相應(yīng)的JVM參數(shù),例如具體調(diào)整JVM內(nèi)存大小,擴大JVM的內(nèi)存,以克服內(nèi)存溢出,進而消除應(yīng)用響應(yīng)過慢的問題。之后通過重啟模塊400重啟應(yīng)用服務(wù)器,以為應(yīng)用恢復(fù)正常運行提供保障。如果日志中分析不出問題,則直接重啟應(yīng)用服務(wù)器。
[0065]本實施例二對實施例一中的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置進行了功能擴充,在能夠檢測應(yīng)用服務(wù)器的進程狀態(tài)、解決應(yīng)用服務(wù)器的JVM宕機問題的基礎(chǔ)上,本實施例二增加了由于內(nèi)存不足、內(nèi)存溢出導(dǎo)致的應(yīng)用(業(yè)務(wù)系統(tǒng))響應(yīng)過慢這一災(zāi)難問題的檢測和災(zāi)難消除功能,提聞了容災(zāi)能力。
[0066]本實施例二繼續(xù)公開本發(fā)明裝置的一應(yīng)用實例。本實例中,容災(zāi)裝置具體為在應(yīng)用服務(wù)器外,使用C語言啟動的一個守護進程,基于以上對本發(fā)明的描述,該守護進行具體負責(zé)兩部分工作:一個是守護應(yīng)用服務(wù)器的Java進程,具體基于應(yīng)用服務(wù)器啟動后注冊的Java進程的Id號監(jiān)控Java進程的狀態(tài),如果Java進程消失,則重新啟動應(yīng)用服務(wù)器;守護進程的另一個工作是按照應(yīng)用檢測時間基于應(yīng)用服務(wù)器注冊的應(yīng)用訪問地址訪問應(yīng)用,在應(yīng)用響應(yīng)時間大于IOs時,進行日志分析,并根據(jù)分析結(jié)果決定是否需要調(diào)整JVM相應(yīng)參數(shù),最后重啟應(yīng)用服務(wù)器。請參見圖3,該守護進程的工作過程具體如下:
[0067]S301:守護進程啟動。
[0068]S302:守護進程接收應(yīng)用服務(wù)器注冊的Java進程的Id號、日志文件地址和應(yīng)用訪問地址。
[0069]S303:守護進程守護Java進程。
[0070]S304:如果Java進程消失,重啟應(yīng)用服務(wù)器。
[0071]S305:守護進程按照應(yīng)用檢測時間訪問應(yīng)用訪問地址。
[0072]S306:如果應(yīng)用的響應(yīng)時間大于10秒,則分析應(yīng)用服務(wù)器日志文件,若是因為內(nèi)存溢出等問題導(dǎo)致的響應(yīng)慢,則調(diào)整JVM參數(shù),重啟應(yīng)用服務(wù)器;若日志中分析不出問題,則直接重啟應(yīng)用服務(wù)器。
[0073]實施例三
[0074]本發(fā)明實施例三公開一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法。該方法與實施例一及實施例二中的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置相對應(yīng)。
[0075]首先,相應(yīng)于實施例一中容災(zāi)裝置的結(jié)構(gòu),公開國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法的一種流程,其參見圖4,其包括:
[0076]S401:接收應(yīng)用服務(wù)器發(fā)送的其所啟動的Java進程的Id號。
[0077]S402:基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)器的進程狀態(tài)。
[0078]S403:判斷所述監(jiān)測的監(jiān)測結(jié)果是否為所述Java進程消失,若判斷結(jié)果為是,則執(zhí)行步驟S404 ;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行步驟S402。
[0079]S404:重啟應(yīng)用服務(wù)器。
[0080]相應(yīng)于實施例二中容災(zāi)裝置的結(jié)構(gòu),本實施例二繼續(xù)擴充上述容災(zāi)方法,請參見圖5,該方法還包括:
[0081]S405:接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用訪問地址和日志文件地址。
[0082]S406:按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用。
[0083]S407:判斷訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間是否大于預(yù)設(shè)數(shù)值,若判斷結(jié)果為是,則執(zhí)行步驟S408 ;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行步驟S406。
[0084]S408:利用所述日志文件地址,獲取日志文件,并對所獲取的日志文件進行分析,得到分析結(jié)果。
[0085]S409:依據(jù)所述分析結(jié)果,判斷所述應(yīng)用的響應(yīng)時間大于所述預(yù)設(shè)數(shù)值的原因是否是內(nèi)存溢出;若判斷結(jié)果為是,則執(zhí)行步驟S410 ;否則,若判斷結(jié)果為否,則執(zhí)行步驟S411。
[0086]S410:調(diào)整JVM相應(yīng)參數(shù),以使JVM內(nèi)存大小滿足在訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間在所述預(yù)設(shè)數(shù)值內(nèi)。
[0087]S411:重啟應(yīng)用服務(wù)器。
[0088]對于本發(fā)明實施例三公開的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法而言,由于其與以上各實施例公開的國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置相對應(yīng),所以描述的比較簡單,相關(guān)相似之處請參見以上各實施例中國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置部分的說明即可,此處不再詳述。
[0089]綜上所述,本發(fā)明的裝置或方法能夠?qū)崟r、自動檢測應(yīng)用服務(wù)器的進程狀態(tài)和應(yīng)用響應(yīng)時間,減少了人工干預(yù)的工作量,提高了系統(tǒng)的容災(zāi)能力,能夠降低由于國產(chǎn)環(huán)境下JVM巖機、內(nèi)存不足等問題導(dǎo)致的災(zāi)難的影響。
[0090]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0091]為了描述的方便,描述以上裝置時以功能分為各種模塊或單元分別描述。當(dāng)然,在實施本申請時可以把各模塊或單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。
[0092]通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬 件平臺的方式來實現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如R0M/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實施例或者實施例的某些部分所述的方法。
[0093]最后,還需要說明的是,在本文中,諸如第一、第二、第三和第四等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0094]以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
【權(quán)利要求】
1.一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)裝置,其特征在于,包括接收模塊、監(jiān)測模塊、第一判斷模塊和重啟模塊,其中: 所述接收模塊,用于接收應(yīng)用服務(wù)器發(fā)送的其所啟動的Java進程的Id號; 所述監(jiān)測模塊,用于基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)器的進程狀態(tài); 所述第一判斷模塊,用于判斷所述監(jiān)測模塊的監(jiān)測結(jié)果是否為所述Java進程消失,若判斷結(jié)果為是,則執(zhí)行所述重啟模塊;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行所述監(jiān)測模塊;所述重啟模塊,用于重啟應(yīng)用服務(wù)器。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述接收模塊,還用于接收應(yīng)用服務(wù)器發(fā)送的日志文件地址和應(yīng)用訪問地址。
3.根據(jù)權(quán)利要求2所述的裝置,其特征在于,還包括訪問模塊、第二判斷模塊、分析模塊、第三判斷模塊和參數(shù)調(diào)整模塊,其中: 所述訪問模塊,用于按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用; 所述第二判斷模塊,用于判斷所述訪問模塊訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間是否大于預(yù)設(shè)數(shù)值,若判斷結(jié)果為是,則執(zhí)行所述分析模塊;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行所述訪問模塊; 所述分析模塊,用于利用所述日志文件地址,獲取日志文件,并對所獲取的日志文件進行分析,得到分析結(jié)果; 所述第三判斷模塊,用于依據(jù)所述分析結(jié)果,判斷所述應(yīng)用的響應(yīng)時間大于所述預(yù)設(shè)數(shù)值的原因是否是內(nèi)存溢出,若判斷結(jié)果為是,則執(zhí)行所述參數(shù)調(diào)整模塊;否則,若判斷結(jié)果為否,則執(zhí)行所述重啟模塊; 所述參數(shù)調(diào)整模塊,用于調(diào)整JVM相應(yīng)參數(shù),以使JVM內(nèi)存大小滿足在訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間在所述預(yù)設(shè)數(shù)值內(nèi);轉(zhuǎn)至執(zhí)行重啟模塊。
4.根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述預(yù)設(shè)數(shù)值具體為10秒。
5.一種國產(chǎn)環(huán)境下應(yīng)用服務(wù)容災(zāi)方法,其特征在于,包括: 接收應(yīng)用服務(wù)器發(fā)送的其所啟動的Java進程的Id號; 基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)的進程狀態(tài); 判斷所述監(jiān)測的監(jiān)測結(jié)果是否為所述Java進程消失,若判斷結(jié)果為是,則重啟應(yīng)用服務(wù)器;否則,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行步驟:基于所述Java進程的Id號實時監(jiān)測所述應(yīng)用服務(wù)器的進程狀態(tài)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括: 接收應(yīng)用服務(wù)器發(fā)送的應(yīng)用訪問地址和日志文件地址; 按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用; 判斷訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間是否大于預(yù)設(shè)數(shù)值,若判斷結(jié)果為是,則利用所述日志文件地址,獲取日志文件,并對所獲取的日志文件進行分析,得到分析結(jié)果;否貝U,若判斷結(jié)果為否,則轉(zhuǎn)至執(zhí)行步驟:按照應(yīng)用檢測時間,根據(jù)所述應(yīng)用訪問地址訪問相應(yīng)的應(yīng)用; 依據(jù)所述分析結(jié)果,判斷所述應(yīng)用的響應(yīng)時間大于所述預(yù)設(shè)數(shù)值的原因是否是內(nèi)存溢出;當(dāng)判斷結(jié)果為是時,調(diào)整JVM相應(yīng)參數(shù),以使JVM內(nèi)存大小滿足在訪問所述應(yīng)用時,所述應(yīng)用的響應(yīng)時間在所述預(yù)設(shè)數(shù)值內(nèi);之后,重啟應(yīng)用服務(wù)器; 當(dāng)判斷結(jié)果為否時,重啟應(yīng)`用服務(wù)器。
【文檔編號】H04L12/24GK103701651SQ201310754096
【公開日】2014年4月2日 申請日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】趙欣, 郭慶廣, 翟魯超, 車帥, 何忠勝, 王毅 申請人:山東中創(chuàng)軟件工程股份有限公司