本申請(qǐng)涉及連接池管理技術(shù)領(lǐng)域,特別涉及一種調(diào)整連接池的方法及裝置。
背景技術(shù):
現(xiàn)有的連接池技術(shù),往往只是通過配置連接池的最小連接數(shù)及最大連接數(shù)管理連接。增加連接的策略也很簡(jiǎn)單,如連接不夠用,才新建一個(gè)連接,或者連接數(shù)達(dá)到一個(gè)閾值,才新建連接等。并且,同類連接(如DB連接)配置的多個(gè)連接池也是相互獨(dú)立的。
現(xiàn)有的上述連接管理方法不夠智能、靈活,并且擴(kuò)充連接策略不可動(dòng)態(tài)擴(kuò)展。另外,由于同類連接多個(gè)連接池相互獨(dú)立,不能復(fù)用連接以提高資源利用率。例如,在遇到部分大促場(chǎng)景時(shí),如紅包發(fā)放時(shí),發(fā)放使用的DB連接池已吃緊,但是支付及查詢使用的DB連接池卻很空閑,資源無法得到充分利用。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)目的在于提供一種調(diào)整連接池的方法及裝置,以通過規(guī)則配置,靈活的管理連接,提高業(yè)務(wù)性能及系統(tǒng)可用性。
本申請(qǐng)?zhí)峁┮环N調(diào)整連接池的方法及裝置是這樣實(shí)現(xiàn)的:
一種調(diào)整連接池的方法,該方法包括:
獲取當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息;
根據(jù)預(yù)先配置的連接池管理規(guī)則、所述當(dāng)前系統(tǒng)資源利用率及所述運(yùn)行狀態(tài)信息調(diào)整連接池。
一種調(diào)整連接池的裝置,該裝置包括:
信息采集單元,獲取當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息;
連接池調(diào)整單元,用于根據(jù)預(yù)先配置的連接池管理規(guī)則、所述當(dāng)前系統(tǒng)資源利用率及所述運(yùn)行狀態(tài)信息調(diào)整連接池。
本申請(qǐng)?zhí)峁┑恼{(diào)整連接池的方法及裝置,可以通過規(guī)則配置,靈活的管理連接,提高業(yè)務(wù)性能及系統(tǒng)可用性。另外,還可以復(fù)用其他連接池的連接,以提高資源利用率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請(qǐng)?zhí)岢龅恼{(diào)整連接池的方法的一種實(shí)施例的方法流程圖;
圖2為本申請(qǐng)實(shí)施例調(diào)整連接池的裝置的結(jié)構(gòu)示意圖;
圖3為本申請(qǐng)實(shí)施例的連接池調(diào)整單元的結(jié)構(gòu)示意圖;
圖4為本申請(qǐng)實(shí)施例中復(fù)用同類連接池的方法示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
下面結(jié)合附圖對(duì)本申請(qǐng)所述的調(diào)整連接池的方法及裝置進(jìn)行詳細(xì)的說明。圖1是本申請(qǐng)?zhí)岢龅恼{(diào)整連接池的方法的一種實(shí)施例的方法流程圖。雖然本申請(qǐng)?zhí)峁┝巳缦率鰧?shí)施例或附圖所示的方法操作步驟或裝置結(jié)構(gòu),但基于常規(guī)或者無需創(chuàng)造性的勞動(dòng)在所述方法或裝置中可以包括更多或者更少的操作步驟或模塊結(jié)構(gòu)。在邏輯性上不存在必要因果關(guān)系的步驟或結(jié)構(gòu)中,這些步驟的執(zhí)行順序或裝置的模塊結(jié)構(gòu)不限于本申請(qǐng)實(shí)施例提供的執(zhí)行順序或模塊結(jié)構(gòu)。所述的方法或模塊結(jié)構(gòu)的在實(shí)際中的裝置或終端產(chǎn)品執(zhí)行時(shí),可以按照實(shí)施例或者附圖所示的方法或模塊結(jié)構(gòu)連接進(jìn)行順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。具體的如圖1所示,本申請(qǐng)?zhí)峁┑恼{(diào)整連接池的方法的一種實(shí)施例可以包括:
S102:獲取當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息;
S104:根據(jù)預(yù)先配置的連接池管理規(guī)則、所述當(dāng)前系統(tǒng)資源利用率及所述運(yùn)行狀態(tài)信息調(diào)整連接池。
通過上述調(diào)整連接池的方法,系統(tǒng)能夠利用預(yù)先配置的連接池管理規(guī)則,根據(jù)當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息調(diào)整連接池,靈活的管理連接,提高業(yè)務(wù)性能及系統(tǒng)可用性。
上述當(dāng)前業(yè)務(wù)可以包括多種,如紅包發(fā)放相關(guān)業(yè)務(wù)(紅包發(fā)放、支付及查詢等),電商購(gòu)物等。
上述當(dāng)前系統(tǒng)資源利用率可以包括內(nèi)存、CPU、硬盤IO及網(wǎng)絡(luò)IO的使用情況。當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息包含:業(yè)務(wù)調(diào)用次數(shù)(例如發(fā)紅包業(yè)務(wù)中發(fā)紅包的次數(shù))及響應(yīng)時(shí)間。根據(jù)運(yùn)行狀態(tài)信息,可以得到如下統(tǒng)計(jì)數(shù)據(jù):QPS(Query Per Second),TPS(Transaction processing systems),平均latency,80%latency,99%latency及每分鐘業(yè)務(wù)調(diào)用次數(shù)等。
本申請(qǐng)實(shí)施例中,獲取當(dāng)前系統(tǒng)資源利用率時(shí),可以事先指定端口,通過監(jiān)聽改指定端口(如端口80),獲取腳本上報(bào)的當(dāng)前系統(tǒng)資源利用率。
本申請(qǐng)實(shí)施例中,獲取當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息時(shí),可以通過如下兩種方式進(jìn)行:
第一種方式:通過API硬編碼獲取當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息;該種方式可稱為被動(dòng)獲取方式,即被動(dòng)接收業(yè)務(wù)系統(tǒng)通過API硬編碼上報(bào)的當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息。
第二種方式:通過攔截器等代理技術(shù)透明的抓取當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息。該種方式可稱為被動(dòng)獲取方式,即主動(dòng)通過攔截器透明的抓取當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息。
本申請(qǐng)調(diào)整連接池的方法的執(zhí)行主體可以為嵌入業(yè)務(wù)系統(tǒng)中的模塊。為了調(diào)整連接池,可以從后臺(tái)管理系統(tǒng)獲取預(yù)先配置好的規(guī)則。
對(duì)于規(guī)則的配置,可以根據(jù)系統(tǒng)資源利用率及業(yè)務(wù)運(yùn)行狀態(tài)中某一或某些信息進(jìn)行。舉一擴(kuò)充連接數(shù)的例子說明,如當(dāng)前連接池的連接數(shù)為n,可以配置為QPS達(dá)到某個(gè)閾值后,將連接數(shù)增加到m;或者可以配置為QPS達(dá)到某個(gè)閾值,并且CPU利用率達(dá)到某一設(shè)定值時(shí),將連接數(shù)增加到m。具體實(shí)施時(shí),也可以配置階梯數(shù)據(jù),規(guī)定每個(gè)范圍連接數(shù)為多少,例如可以配置為QPS達(dá)到某個(gè)閾值后,將連接數(shù)增加到m;QPS達(dá)到另一閾值后,將連接數(shù)增加到a,依此類推。
一實(shí)施例中,S104可以包括:判斷所述當(dāng)前系統(tǒng)資源利用率及所述運(yùn)行狀態(tài)信息是否與所述連接池管理規(guī)則中的某一規(guī)則匹配;如果是,根據(jù)匹配的規(guī)則調(diào)整連接池。預(yù)先配置的連接池管理規(guī)則中可能包括一個(gè)或多個(gè)具體的規(guī)則,根據(jù)當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息中一個(gè)或者多個(gè)信息,可以判斷匹配哪個(gè)具體規(guī)則,根據(jù)匹配的具體規(guī)則,就可以實(shí)現(xiàn)連接池的調(diào)整。
連接池的調(diào)整包括可以很多種,一實(shí)施例中,可以根據(jù)匹配的規(guī)則擴(kuò)充或縮減連接池的連接數(shù)。另一實(shí)施例中,還可以根據(jù)匹配的規(guī)則復(fù)用同類連接池的連接。同類連接池一般指物理資源是不是連接同一類數(shù)據(jù)庫(kù)。
上述執(zhí)行連接池調(diào)整方法過程中,也可以根據(jù)具體情況臨時(shí)強(qiáng)制調(diào)整連接池。具體,可以通過人工干預(yù)的方式,直接調(diào)用服務(wù)暴露的接口進(jìn)行連接數(shù)的強(qiáng)制調(diào)整,忽略上述規(guī)則。
通過本申請(qǐng)?zhí)峁┑恼{(diào)整連接池的方法,可以通過規(guī)則配置,靈活的管理連接,提高業(yè)務(wù)性能及系統(tǒng)可用性。另外,還可以復(fù)用其他連接池的連接,以提高資源利用率。
基于與上述調(diào)整連接池的方法相同的發(fā)明構(gòu)思,本申請(qǐng)?zhí)峁┮环N調(diào)整連接池的裝置,如下面實(shí)施例所述。由于該調(diào)整連接池的裝置解決問題的原理與調(diào)整連接池的方法相似,因此該調(diào)整連接池的裝置的實(shí)施可以參見調(diào)整連接池的方法的實(shí)施,重復(fù)之處不再贅述。
圖2為本申請(qǐng)實(shí)施例調(diào)整連接池的裝置的結(jié)構(gòu)示意圖,如果2所示,該調(diào)整連接池的裝置可以包括:
信息采集單元201,用于獲取當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息;信息采集單元201是調(diào)整連接池的裝置中獲取圖像的縮小比例的部分,可以是軟件、硬件或二者的結(jié)合,例如可以是完成信息獲取功能的輸入輸出接口、處理芯片等元器件。
連接池調(diào)整單元202用于根據(jù)預(yù)先配置的連接池管理規(guī)則、所述當(dāng)前系統(tǒng)資源利用率及所述運(yùn)行狀態(tài)信息調(diào)整連接池。是調(diào)整連接池的裝置中獲取圖像的縮小比例的部分,可以是軟件、硬件或二者的結(jié)合,例如可以是完成連接池調(diào)整功能的輸入輸出接口、處理芯片等元器件。
上述當(dāng)前系統(tǒng)資源利用率可以包含:內(nèi)存、CPU、硬盤IO及網(wǎng)絡(luò)IO。當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息可以包含:業(yè)務(wù)調(diào)用次數(shù)及響應(yīng)時(shí)間,根據(jù)運(yùn)行狀態(tài)信息,可以得到如下統(tǒng)計(jì)數(shù)據(jù):QPS(Query Per Second),TPS(Transaction processing systems),平均latency,80%latency,99%latency及每分鐘業(yè)務(wù)調(diào)用次數(shù)等。
一實(shí)施例中,信息采集單元201可以具體用于監(jiān)聽指定端口,獲取腳本上報(bào)的所述當(dāng)前系統(tǒng)資源利用率;以及
通過API硬編碼獲取所述當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息;或
通過攔截器抓取所述當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息。
具體實(shí)施時(shí),如圖3所示,連接池調(diào)整單元202可以包括:
匹配判斷模塊301,判斷所述當(dāng)前系統(tǒng)資源利用率及所述運(yùn)行狀態(tài)信息是否與所述連接池管理規(guī)則中的某一規(guī)則匹配;
連接池調(diào)整模塊302,用于根據(jù)匹配的規(guī)則調(diào)整連接池。具體實(shí)施時(shí),連接池調(diào)整模塊302可根據(jù)匹配的規(guī)則擴(kuò)充或縮減連接池的連接數(shù),或者根據(jù)匹配的規(guī)則復(fù)用同類連接池的連接。
通過本申請(qǐng)?zhí)峁┑恼{(diào)整連接池的裝置,可以通過規(guī)則配置,靈活的管理連接,提高業(yè)務(wù)性能及系統(tǒng)可用性。另外,還可以復(fù)用其他連接池的連接,以提高資源利用率。
下面以復(fù)用同類連接池的連接舉例說明本申請(qǐng)調(diào)整連接池的方法。如圖4所示,數(shù)據(jù)采集單元獲取當(dāng)前系統(tǒng)資源利用率及當(dāng)前業(yè)務(wù)的運(yùn)行狀態(tài)信息,采集的這些數(shù)據(jù)可以作為規(guī)則計(jì)算的依據(jù)。采集數(shù)據(jù)的方式可以根據(jù)業(yè)務(wù)系統(tǒng)的數(shù)據(jù)上報(bào)被動(dòng)獲取,也可以主動(dòng)進(jìn)行數(shù)據(jù)抓取。
基于數(shù)據(jù)采集單元獲取的上述數(shù)據(jù),規(guī)則計(jì)算模塊可以通過計(jì)算上述數(shù)據(jù)與后臺(tái)管理系統(tǒng)配置的所有規(guī)則的匹配情況,找出匹配的規(guī)則,該匹配的規(guī)則為出發(fā)連接池調(diào)整的依據(jù)。
基于上述匹配的規(guī)則,可以進(jìn)行連接池的管理。如圖4所示,連接池A與連接池B屬于相同的資源C,例如當(dāng)連接池A中的連接不夠用時(shí),可以根據(jù)匹配的規(guī)則借用連接池B中的規(guī)則,反之亦然。當(dāng)然,當(dāng)連接池A或B除了復(fù)用對(duì)方的連接,還可以根據(jù)匹配的相應(yīng)規(guī)則擴(kuò)展連接數(shù)。
通過圖4所示的后臺(tái)管理系統(tǒng),還可以忽略匹配的相應(yīng)規(guī)則,進(jìn)行人工干預(yù),強(qiáng)制調(diào)整連接池。
通過本申請(qǐng),可以通過規(guī)則配置,靈活的管理連接,提高業(yè)務(wù)性能及系統(tǒng)可用性。另外,還可以復(fù)用其他連接池的連接,以提高資源利用率。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
本發(fā)明中應(yīng)用了具體實(shí)施例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。