探測MySQL運行信息的方法與裝置制造方法
【專利摘要】本發(fā)明公開了一種探測MySQL運行信息的方法與裝置,采用長連接的方式,對MySQL進行周期性探測,并緩存每個周期的探測結(jié)果,在接到探測請求時,從緩存中提取探測結(jié)果。從而在待探測MySQL負載高或本裝置所在系統(tǒng)網(wǎng)絡(luò)并發(fā)量大時,也能保證正常探測,提高了探測的持續(xù)性和穩(wěn)定性,尤其適用于對可靠性要求較高的MySQL集群監(jiān)控運營。
【專利說明】探測MySQL運行信息的方法與裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,特別是涉及一種探測MySQL運行信息的方法與裝置。
【背景技術(shù)】
[0002]SQL (Structured Query Language,結(jié)構(gòu)化查詢語言)是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及管理關(guān)系數(shù)據(jù)庫系統(tǒng)。
[0003]MySQL是一個小型關(guān)系數(shù)據(jù)庫管理系統(tǒng),開發(fā)者為瑞典MySQL AB公司(于2008年I月被SUN公司收購,2009年SUN被Oracle收購,目前屬于Oracle)。關(guān)系數(shù)據(jù)庫基于關(guān)系數(shù)據(jù)模型將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個大倉庫內(nèi),具有靈活性的同時保持存取速度。
[0004]傳統(tǒng)的探測MySQL運行信息的裝置,包括MySQL標準安裝包提供的工具,都采用基于短連接的實現(xiàn)方式。這種基于短連接的主要機制如下:
[0005]I)用戶使用該裝置,或者周期性觸發(fā)該裝置時,先建立與MySQL的連接;
[0006]2)待連接建立之后觸發(fā)探測的操作,例如發(fā)送SQL語句;
[0007]3)待結(jié)果返回之后,或者待超時之后,斷開與MySQL的連接;
[0008]4)最終返回結(jié)果。
[0009]由于每次信息探測都需要執(zhí)行完整的連接、獲取信息、斷開連接過程,基于短連接的探測MySQL運行信息的裝置有如下缺點:
[0010]I)在目標系統(tǒng)MySQL負載高時,會無法探測信息。原因在于目標系統(tǒng)MySQL負載高時,信息探測裝置也無法連接上MySQL,進而無法探測信息。
[0011]2)在裝置安裝的系統(tǒng)網(wǎng)絡(luò)并發(fā)量巨大時,也會無法探測信息。安裝裝置的計算機系統(tǒng)可能也會出現(xiàn)并發(fā)量巨大的情況(例如同時運行多種探測工具),本地IP端口號可能耗盡,造成探測裝置無法獲得端口號連接目標MySQL,進而無法探測信息。
[0012]總結(jié)來說,基于短連接的探測MySQL運行信息的裝置無法保證在任何情況下都探測到MySQL信息。在正常的運營環(huán)境中,高負載的情況下通常最需要及時探測到MySQL的運行信息以供決策分析和故障處理。因此基于短連接的探測MySQL運行信息的裝置很難用于高可靠MySQL集群監(jiān)控運營中。
【發(fā)明內(nèi)容】
[0013]基于上述情況,本發(fā)明實施例提出了一種探測MySQL運行信息的方法與裝置,以提高探測MySQL運行信息的可靠性。
[0014]一種探測MySQL運行信息的方法,周期性執(zhí)行以下步驟:
[0015]確認已連接上待探測的MySQL ;
[0016]向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0017]緩存待探測的MySQL返回的結(jié)果,[0018]周期性執(zhí)行以上步驟的同時,監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回上個周期的探測結(jié)果。
[0019]一種探測MySQL運行信息的裝置,包括周期探測單元和監(jiān)聽單元,
[0020]所述周期探測單元用于對待探測的MySQL進行周期性探測,每個周期的探測過程包括:
[0021 ] 確認已連接上待探測的MySQL ;
[0022]向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0023]緩存待探測的MySQL返回的結(jié)果,
[0024]所述監(jiān)聽單元用于監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果。
[0025]本發(fā)明實施例探測MySQL運行信息的方法與裝置,采用長連接的方式,對MySQL進行周期性探測,并緩存每個周期的探測結(jié)果,在接到探測請求時,從緩存中提取探測結(jié)果。從而在待探測MySQL負載高或本裝置所在系統(tǒng)網(wǎng)絡(luò)并發(fā)量大時,也能保證正常探測,提高了探測的持續(xù)性和穩(wěn)定性,尤其適用于對可靠性要求較高的MySQL集群監(jiān)控運營。
【專利附圖】
【附圖說明】
[0026]圖1為本發(fā)明探測MySQL運行信息的方法實施例一的流程示意圖;
[0027]圖2為本發(fā)明探測MySQL運行信息的方法實施例三的流程示意圖;
[0028]圖3為本發(fā)明探測MySQL運行信息的裝置實施例一的結(jié)構(gòu)示意圖。
【具體實施方式】
[0029]下面結(jié)合附圖與實施例詳細解釋本發(fā)明的方案,首先介紹探測MySQL運行信息的方法的實施例。
[0030]實施例一
[0031]本實施例探測MySQL運行信息的方法,如圖1所示,周期性執(zhí)行如下步驟:
[0032]步驟SlOl、確認已連接上待探測的MySQL ;
[0033]步驟S102、向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0034]步驟S103、緩存待探測的MySQL返回的結(jié)果,
[0035]步驟S104、周期性執(zhí)行以上步驟的同時,監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回上個周期的探測結(jié)果。
[0036]為了提高探測可靠性,本實施例采用長連接的方式來克服傳統(tǒng)的短連接方式存在的缺陷。所謂長連接是指長時間保持會話的TCP連接,在本實施例中具體是指通過TCP協(xié)議建立與MySQL的連接之后,不主動關(guān)閉連接,并且周期性不斷的進行通訊。
[0037]如圖1所示,步驟S101-S103循環(huán)執(zhí)行,從而與待探測的MySQL保持連接,在目標MySQL負載高或本方法所應(yīng)用的系統(tǒng)網(wǎng)絡(luò)并發(fā)量大時,減少因無法連接導致無法探測的可能,提高了探測的可靠性。本實施例還采用緩存機制,緩存每個周期的探測結(jié)果,在客戶端發(fā)來探測請求時,直接從緩存中獲取上個周期的探測結(jié)果,有利于將探測結(jié)果快速返回客戶端。
[0038]實施例二[0039]本實施例探測MySQL運行信息的方法,周期性執(zhí)行如下步驟:
[0040]步驟SlOl、確認已連接上待探測的MySQL ;
[0041]步驟S102、向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0042]步驟S103、緩存待探測的MySQL返回的結(jié)果;
[0043]步驟S104、周期性執(zhí)行以上步驟的同時,監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回上個周期的探測結(jié)果。
[0044]待探測的MySQL實例有多個時,本實施例為每一個待探測的MySQL實例建立一個探測任務(wù),每個探測任務(wù)在時間周期到來時,負責對所對應(yīng)的MySQL實例進行探測,并緩存探測結(jié)果。執(zhí)行步驟S104監(jiān)聽到客戶端的探測請求時,從緩存中查找并返回對應(yīng)探測任務(wù)上個周期的探測結(jié)果。
[0045]每個探測任務(wù)的探測周期可以根據(jù)客戶端的需求而設(shè)定。
[0046]實施例三
[0047]為了進一步完善探測MySQL運行信息的方法,如圖2所示,本實施例對執(zhí)行過程中可能出現(xiàn)的幾種異常情況做出了應(yīng)對,下面是本實施例的步驟。
[0048]步驟SlOl、確認已連接上待探測的MySQL ;
[0049]步驟S102、向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0050]步驟S103、緩存待探測的MySQL返回的結(jié)果;
[0051]步驟S104、周期性執(zhí)行以上步驟S101-S103的同時,監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回上個周期的探測結(jié)果;
[0052]步驟S105、在執(zhí)行步驟SlOl確認已連接上待探測的MySQL的過程中,若發(fā)現(xiàn)未連接上待探測的MySQL,則嘗試連接直至成功;
[0053]步驟S106、在執(zhí)行步驟S103緩存待探測的MySQL返回的結(jié)果的過程中,若待探測的MySQL超過預(yù)定時間仍未返回結(jié)果,則返回步驟S101確認是否已連接上待探測的MySQL ;若發(fā)現(xiàn)與待探測的MySQL的連接被斷開,則嘗試連接直至成功;
[0054]步驟S107、在執(zhí)行步驟S104從緩存中查找并返回上個周期的探測結(jié)果的過程中,若未查找到上個周期的探測結(jié)果,則向客戶端返回信息未找到。從而無論探測成功與否,在客戶端發(fā)來請求時,都給出明確的答復(fù)。
[0055]下面介紹探測MySQL運行信息的裝置的實施例。
[0056]實施例一
[0057]本實施例探測MySQL運行信息的裝置,如圖3所示,包括周期探測單元101和監(jiān)聽單元102。
[0058]所述周期探測單元用于對待探測的MySQL進行周期性探測,每個周期的探測過程包括:
[0059]確認已連接上待探測的MySQL ;
[0060]向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0061]緩存待探測的MySQL返回的結(jié)果,
[0062]所述監(jiān)聽單元用于監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果。
[0063]本實施例的裝置中,周期探測單元101采用長連接方式對待探測的MySQL執(zhí)行周期性探測,并將探測結(jié)果緩存在內(nèi)存數(shù)據(jù)緩存中。監(jiān)聽單元102在監(jiān)聽到客戶端的探測請求時,將周期探測單元緩存的探測結(jié)果發(fā)給客戶端。
[0064]由以上描述可知,本實施例對應(yīng)上述探測MySQL運行信息的方法的實施例一,具體地,周期探測單元101對應(yīng)步驟S101-S103,監(jiān)聽單元102對應(yīng)步驟S104,本實施例的有益效果不再贅述。
[0065]實施例二
[0066]本實施例探測MySQL運行信息的裝置,包括周期探測單元101和監(jiān)聽單元102。
[0067]所述周期探測單元用于對待探測的MySQL進行周期性探測,每個周期的探測過程包括:
[0068]確認已連接上待探測的MySQL ;
[0069]向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0070]緩存待探測的MySQL返回的結(jié)果。
[0071]所述監(jiān)聽單元用于監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果。
[0072]本實施例的裝置中,周期探測單元101采用長連接方式對待探測的MySQL執(zhí)行周期性探測,并緩存探測結(jié)果。監(jiān)聽單元102在監(jiān)聽到客戶端的探測請求時,將周期探測單元緩存的探測結(jié)果發(fā)給客戶端。
[0073]在本實施例中,當待探測的MySQL有多個時,每個待探測的MySQL向本裝置進行注冊。本裝置的周期探測單元101為每一個注冊的MySQL實例建立一個探測任務(wù),每個探測任務(wù)在時間周期到來時,以所對應(yīng)的MySQL為待探測對象進行周期性探測。所述監(jiān)聽單元102則在監(jiān)聽到探測請求時,從緩存中查找并返回對應(yīng)探測任務(wù)上個周期的探測結(jié)果。
[0074]每個探測任務(wù)的探測周期可以相同或不同,并均可以根據(jù)客戶端的需求而設(shè)定。
[0075]實施例三
[0076]本實施例探測MySQL運行信息的裝置,包括周期探測單元101和監(jiān)聽單元102。
[0077]所述周期探測單元用于對待探測的MySQL進行周期性探測,每個周期的探測過程包括:
[0078]確認已連接上待探測的MySQL ;
[0079]向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求;
[0080]緩存待探測的MySQL返回的結(jié)果。
[0081]所述監(jiān)聽單元用于監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果。
[0082]本實施例的裝置中,周期探測單元101采用長連接方式對待探測的MySQL執(zhí)行周期性探測,并緩存探測結(jié)果。監(jiān)聽單元102在監(jiān)聽到客戶端的探測請求時,將周期探測單元緩存的探測結(jié)果發(fā)給客戶端。
[0083]周期探測單元101和監(jiān)聽單元102在工作過程中都可能出現(xiàn)異常情況,本實施例對以下幾種異常情況作出應(yīng)對。
[0084]所述周期探測單元101還用于周期性檢測是否已連接上待探測的MySQL,若未連接上待探測的MySQL,則嘗試連接直至成功;
[0085]所述周期探測單元101還用于檢測待探測的MySQL是否成功返回結(jié)果,若待探測的MySQL超過預(yù)定時間仍未返回結(jié)果,則重新確認已連接上待探測的MySQL ;若與待探測的MySQL的連接被斷開,則重新嘗試連接直至成功;
[0086]所述監(jiān)聽單元102還用于在從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果的過程中,若未查找到上個周期的探測結(jié)果,則返回信息未找到。
[0087]綜上上述實施例,本發(fā)明基于長連接的方式實現(xiàn)了一種新型的MySQL運行信息探測方法與裝置,解決了高負載情況下的探測問題,周期性穩(wěn)定的探測MySQL運行信息,適用于高可靠MySQL集群監(jiān)控運營。本發(fā)明實施例也通過緩存機制,緩存探測的結(jié)果,保障客戶端獲取信息時總是可以給出確定的結(jié)果:成功則為運行信息本身,失敗則給出明確答復(fù)。
[0088]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
【權(quán)利要求】
1.一種探測MySQL運行信息的方法,其特征在于,周期性執(zhí)行以下步驟: 確認已連接上待探測的MySQL ; 向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求; 緩存待探測的MySQL返回的結(jié)果, 周期性執(zhí)行以上步驟的同時,監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回上個周期的探測結(jié)果。
2.根據(jù)權(quán)利要求1所述的探測MySQL運行信息的方法,其特征在于,為每一個待探測的MySQL建立一個探測任務(wù),每個探測任務(wù)以所對應(yīng)的MySQL為待探測對象周期性執(zhí)行所述周期性執(zhí)行的步驟,在監(jiān)聽到探測請求時,從緩存中查找并返回對應(yīng)探測任務(wù)上個周期的探測結(jié)果。
3.根據(jù)權(quán)利要求1或2所述的探測MySQL運行信息的方法,其特征在于,在執(zhí)行所述確認已連接上待探測的MySQL的過程中,若未連接上待探測的MySQL,則嘗試連接直至成功。
4.根據(jù)權(quán)利要求3所述的探測MySQL運行信息的方法,其特征在于,在執(zhí)行所述緩存待探測的MySQL返回的結(jié)果的過程中,若待探測的MySQL超過預(yù)定時間仍未返回結(jié)果,則返回所述確認已連接上待探測的MySQL ;若與待探測的MySQL的連接被斷開,則返回所述嘗試連接直至成功。
5.根據(jù)權(quán)利要求1或2所述的探測MySQL運行信息的方法,其特征在于,在執(zhí)行所述從緩存中查找并返回上個周期的探測結(jié)果的過程中,若未查找到上個周期的探測結(jié)果,則返回信息未找到。
6.一種探測MySQL 運行信息的裝置,其特征在于,包括周期探測單元和監(jiān)聽單元, 所述周期探測單元用于對待探測的MySQL進行周期性探測,每個周期的探測過程包括: 確認已連接上待探測的MySQL ; 向待探測的MySQL發(fā)送基于MySQL協(xié)議的探測請求; 緩存待探測的MySQL返回的結(jié)果, 所述監(jiān)聽單元用于監(jiān)聽探測請求,并在監(jiān)聽到探測請求時,從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果。
7.根據(jù)權(quán)利要求6所述的探測MySQL運行信息的裝置,其特征在于,所述周期探測單元還用于為每一個待探測的MySQL建立一個探測任務(wù),每個探測任務(wù)以所對應(yīng)的MySQL為待探測對象進行所述周期性探測,所述監(jiān)聽單元還用于在監(jiān)聽到探測請求時,從緩存中查找并返回對應(yīng)探測任務(wù)上個周期的探測結(jié)果。
8.根據(jù)權(quán)利要求6或7所述的探測MySQL運行信息的裝置,其特征在于,所述周期探測單元還用于周期性檢測是否已連接上待探測的MySQL,若未連接上待探測的MySQL,則嘗試連接直至成功。
9.根據(jù)權(quán)利要求8所述的探測MySQL運行信息的裝置,其特征在于,所述周期探測單元還用于檢測待探測的MySQL是否成功返回結(jié)果,若待探測的MySQL超過預(yù)定時間仍未返回結(jié)果,則重新確認已連接上待探測的MySQL ;若與待探測的MySQL的連接被斷開,則重新嘗試連接直至成功。
10.根據(jù)權(quán)利要求6或7所 述的探測MySQL運行信息的裝置,其特征在于,所述監(jiān)聽單元還用于在從緩存中查找并返回所述周期探測單元上個周期的探測結(jié)果的過程中,若未查找到上個周期的探測結(jié)果,`則返回信息未找到。
【文檔編號】G06F11/30GK103870377SQ201210532217
【公開日】2014年6月18日 申請日期:2012年12月11日 優(yōu)先權(quán)日:2012年12月11日
【發(fā)明者】李宇 申請人:深圳市騰訊計算機系統(tǒng)有限公司