一種自適應均衡資料庫訪問服務的方法與流程
2023-10-28 19:50:42 1

本發明涉及數據處理技術領域,特別是涉及一種自適應均衡資料庫訪問服務的方法。
背景技術:
資料庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。隨著移動網際網路的迅猛發展,個性化定製服務需求的增長,資料庫的應用更加廣泛和重要。但是,資料庫的訪問性能也成為系統性能提升的瓶頸之一。
資料庫訪問服務的能力必須與業務特徵匹配,才能更好提升系統整體性能。系統業務量很大,且數據業務量的變化與相對時間(工作日時間等)和操作類型關聯;即要求支持高並發的持續訪問資料庫的能力,同時可以高效率應對某段時間段內某單類型操作是主要操作的場景。
開發人員和維護人員需要了解系統數據訪問量的變化特徵和性能瓶頸,以便於優化資料庫訪問服務。
技術實現要素:
為克服相關技術中存在的問題,本發明提供一種自適應均衡資料庫訪問服務的方法。
本發明至少通過如下技術方案之一實現。
一種自適應均衡資料庫訪問服務的方法,包括:接收來自網站伺服器的訪問請求;分析所述訪問請求中的欄位;解析所述訪問請求所請求的操作類型,驗證操作權限;通過所述訪問請求的操作類型,選擇處理所述操作類型的處理器資源處理;統計與預測所述不同操作類型的所述訪問請求包數據量的變化,自適應均衡調節處理所述不同操作類型的所述處理器資源;以及記錄訪問所述資料庫的操作。
進一步實施地,所述接收來自網站伺服器的訪問請求,包括:
利用位於資料庫上的資料庫訪問層,逐條捕捉來自網站伺服器的訪問請求,並將所述訪問請求寫入伺服器的內存中,以供分析。
進一步實施地,所述分析所述訪問請求中的欄位,包括:
在所述的內容中預先規定好請求包中操作類型欄位的位置,根據規定的位置提取指定欄位;
在所述的內容中預先規定好請求包中用戶信息欄位的位置,根據規定的位置提取指定欄位的用戶信息;
進一步實施地,所述解析所述訪問請求所請求的操作類型,包括:
查詢所述伺服器的內存中預先建立的訪問字典中是否存在與所述訪問請求所請求的操作類型相應的欄位值;若有,則可獲取所述訪問請求所請求的操作類型;否則,請求包錯誤。
首先驗證所述訪問請求所請求的操作類型,若不符合則判斷所述訪問請求錯誤,使得該所述訪問請求不需要通過後續的在所述私密資料庫中的用戶操作權限檢查,可以減少對所述私密資料庫的訪問,使得系統的反應性能提高。
進一步實施地,所述驗證操作權限,包括:
在所述的內容中資料庫預先建立一個私密的資料庫表;結合所述訪問請求的操作類型和用戶信息,驗證所述訪問請求的操作權限。
進一步實施地,所述預先建立一個私密的資料庫表,包括:
以用戶的唯一ID作為主鍵建立一個所述私密資料庫表,每個條數據記錄了擁有權限的數據以及具體的權限。
進一步實施地,所述驗證所述訪問請求的操作權限,包括:
在所述的資料庫表中查詢,是否存在與所述訪問請求的用戶信息相匹配的條數據;若有,則把所述訪問請求的所述操作類型以及操作數據與所述數據中的表中數據比較;如果一致,則權限驗證通過;若不一致,則權限驗證失敗。
進一步實施地,所述通過所述訪問請求的操作類型,選擇處理所述操作類型的處理器資源處理,包括:
在所述的內容中預先建立處理所述不同操作類型請求的處理資源池;將不同操作類型的所述訪問請求重定向到處理相應操作類型的所述處理資源池。
進一步實施地,所述預先建立處理不同操作類型請求的所述處理資源池,包括:初始化資源管理中心;
根據所述不同操作類型的種數,創建若干個可調節大小的所述處理資源池;
將不同操作的具體處理方案加載到對應的所述處理資源池中。
進一步實施地,所述統計所述不同操作類型的所述訪問請求包數據量的變化,包括:通過位於所述資料庫上的資料庫訪問層實時統計所述不同操作類型訪問請求的數量;
通過所述資源管理中心,實時統計所述每個處理資源池剩餘的訪問請求的數量。
進一步實施地,預測所述不同操作類型的所述訪問請求的數據變化,包括:
根據最近一段時間所述資料庫處理的所述不同操作類型訪問請求的數量變化,預測當前相對時間內所述訪問請求數量可能的變化;
根據最近一段時間所述資源管理中心統計的所述每個處理資源池剩餘的訪問請求的數量變化,預測當前相對時間內所述訪問請求數量可能的變化;
根據過去一段時間歷史記錄文件記錄的所述訪問請求數量的數據,預測當前相對時間內所述訪問請求數量可能的變化。
進一步實施地,所述自適應均衡調節處理所述不同操作類型的所述處理器資源,包括:
根據預測的當前相對時間內所述訪問請求數量可能的變化,適應均衡調節所述各個處理不同操作類型的處理資源池的容量;
根據用戶在配置文件中的預設條件,在所述預設條件下調節所述各個處理不同操作類型的處理資源池的容量。
進一步實施地,所述自適應均衡調節處理所述不同操作類型的所述處理器資源,還包括:
用戶根據過去一段時間內歷史記錄文件記錄的所述訪問請求數量的數據,分析某段時間所述訪問請求的數量變化規律,在配置文件裡指定在所述某段時間配置所述處理不同操作類型的處理資源池的容量變化;
資源管理中心根據所述預測變化的結果,自適應調節所述處理不同操作類型的處理資源池的容量。
進一步實施地,所述記錄訪問所述資料庫的操作,包括:
記錄所有訪問所述資料庫的操作記錄
輸出以某些時間段為單位各個不同操作類型的訪問請求的數量變化的記錄文件;
輸出以某些時間段為單位各個不同操作類型的訪問請求的處理速度變化的記錄文件。
與現有技術相比,本發明具有如下優點和技術效果:
本發明實現了自適應均衡資料庫訪問服務,資料庫訪問服務的能力能與業務特徵匹配,進而能更好提升系統整體性能,能支持高並發的持續訪問資料庫的能力,同時可以高效率應對某段時間段內某單類型操作是主要操作的場景。
附圖說明
圖1是本發明一個實施例的自適應均衡資料庫訪問服務的方法的模塊示意方框圖。
圖2是本發明一個實施例的自適應均衡資料庫訪問服務的方法示意圖。
具體實施方式
在此提供的方法和技巧不與任何特定的計算機、虛擬系統或者其他固有相關。各種通用系統也可以與基於在此的示數一起使用。此外,本發明也不針對任何特定程式語言,程式語言僅僅是實現思想的工具,以下涉及上述具體說明時僅僅是為了披露本發明的一種實施方式。
本實例的一種自適應均衡資料庫訪問服務的方法,包括:接收來自網站伺服器的訪問請求;分析所述訪問請求中的欄位;解析所述訪問請求所請求的操作類型,驗證操作權限;通過所述訪問請求的操作類型,選擇處理所述操作類型的處理器資源處理;統計與預測所述不同操作類型的所述訪問請求包數據量的變化,自適應均衡調節處理所述不同操作類型的所述處理器資源;以及記錄訪問所述資料庫的操作。
所述接收來自網站伺服器的訪問請求,包括:
利用位於資料庫上的資料庫訪問層,逐條捕捉來自網站伺服器的訪問請求,並將所述訪問請求寫入伺服器的內存中,以供分析。所述分析所述訪問請求中的欄位,包括:
在所述的內容中預先規定好請求包中操作類型欄位的位置,根據規定的位置提取指定欄位; 在所述的內容中預先規定好請求包中用戶信息欄位的位置,根據規定的位置提取指定欄位的用戶信息;所述解析所述訪問請求所請求的操作類型,包括:
查詢所述伺服器的內存中預先建立的訪問字典中是否存在與所述訪問請求所請求的操作類型相應的欄位值;若有,則可獲取所述訪問請求所請求的操作類型;否則,請求包錯誤。
首先驗證所述訪問請求所請求的操作類型,若不符合則判斷所述訪問請求錯誤,使得該所述訪問請求不需要通過後續的在所述私密資料庫中的用戶操作權限檢查,可以減少對所述私密資料庫的訪問,使得系統的反應性能提高。
進一步實施地,所述驗證操作權限,包括:
在所述的內容中資料庫預先建立一個私密的資料庫表;結合所述訪問請求的操作類型和用戶信息,驗證所述訪問請求的操作權限。所述預先建立一個私密的資料庫表,包括:
以用戶的唯一ID作為主鍵建立一個所述私密資料庫表,每個條數據記錄了擁有權限的數據以及具體的權限。
所述驗證所述訪問請求的操作權限,包括:
在所述的資料庫表中查詢,是否存在與所述訪問請求的用戶信息相匹配的條數據;若有,則把所述訪問請求的所述操作類型以及操作數據與所述數據中的表中數據比較;如果一致,則權限驗證通過;若不一致,則權限驗證失敗。
所述通過所述訪問請求的操作類型,選擇處理所述操作類型的處理器資源處理,包括:
在所述的內容中預先建立處理所述不同操作類型請求的處理資源池;將不同操作類型的所述訪問請求重定向到處理相應操作類型的所述處理資源池。
所述預先建立處理不同操作類型請求的所述處理資源池,包括:初始化資源管理中心;
根據所述不同操作類型的種數,創建若干個可調節大小的所述處理資源池;
將不同操作的具體處理方案加載到對應的所述處理資源池中。
所述統計所述不同操作類型的所述訪問請求包數據量的變化,包括:通過位於所述資料庫上的資料庫訪問層實時統計所述不同操作類型訪問請求的數量;
通過所述資源管理中心,實時統計所述每個處理資源池剩餘的訪問請求的數量。
預測所述不同操作類型的所述訪問請求的數據變化,包括:
根據最近一段時間所述資料庫處理的所述不同操作類型訪問請求的數量變化,預測當前相對時間內所述訪問請求數量可能的變化;
根據最近一段時間所述資源管理中心統計的所述每個處理資源池剩餘的訪問請求的數量變化,預測當前相對時間內所述訪問請求數量可能的變化;
根據過去一段時間歷史記錄文件記錄的所述訪問請求數量的數據,預測當前相對時間內所述訪問請求數量可能的變化。
進一步實施地,所述自適應均衡調節處理所述不同操作類型的所述處理器資源,包括:
根據預測的當前相對時間內所述訪問請求數量可能的變化,適應均衡調節所述各個處理不同操作類型的處理資源池的容量;
根據用戶在配置文件中的預設條件,在所述預設條件下調節所述各個處理不同操作類型的處理資源池的容量。所述自適應均衡調節處理所述不同操作類型的所述處理器資源,還包括:
用戶根據過去一段時間內歷史記錄文件記錄的所述訪問請求數量的數據,分析某段時間所述訪問請求的數量變化規律,在配置文件裡指定在所述某段時間配置所述處理不同操作類型的處理資源池的容量變化;
資源管理中心根據所述預測變化的結果,自適應調節所述處理不同操作類型的處理資源池的容量。所述記錄訪問所述資料庫的操作,包括:
記錄所有訪問所述資料庫的操作記錄
輸出以某些時間段為單位各個不同操作類型的訪問請求的數量變化的記錄文件;
輸出以某些時間段為單位各個不同操作類型的訪問請求的處理速度變化的記錄文件。
以下再進一步舉例說明能實現發明的一種實例。圖1是本發明一個實施例的自適應均衡資料庫訪問服務的方法的模塊示意方框圖。該方法可一般性的概括有:請求捕捉模塊100、請求包分析模塊101、資源管理中心模塊102、統計模塊103、預測與配置模塊104、反饋處理中心模塊105、日誌生成模塊106。
請求捕捉模塊100:位於資料庫整體的外部,接收所有向資料庫發送的請求。這樣將捕獲的所有請求包寫入內存,以供其他模塊分析使用。
請求包分析模塊101:根據預先指定好的協議規範,獲取當前請求包的用戶信息和操作類型;將獲取的操作類型值與內存中的字典值比較,即可確認實際的操作類型;根據預先建立的數據權限表,驗證權限的合法性。如果失敗,則剔除請求包。
預先指定好的協議規範,可以使用XML作為協議傳輸的載體,根據預先指定用戶信息欄位和操作類型欄位對應的唯一欄位名稱,即可獲取相關的欄位值。
資料庫的操作類型一般以原子性的類別區分,就是創建、更新、刪除和讀取等四種類型。在預設的字典中,每個不同的二進位序列表示一種類型。
數據的操作權限一般由具體用戶、操作權限、數據三者決定。操作權限是數據操作類型中若干種,至多四種。數據權限表格須以用戶的唯一ID作為主鍵,便於迅速的查找;表中每條元素含有對某種數據的具體操作權限。
資源管理中心模塊102:統一管理伺服器的計算與存儲資源;一般地,分別初始化創建、更新、刪除和讀取等四種類型的處理器資源池。
初始化創建、更新、刪除和讀取等四種類型的處理器資源池包括兩個部分,一是根據當前伺服器的空閒資源大小,創建四個適合大小的資源池;二是將不同類型的處理實施步驟加載到資源池中。
資源池的大小由類中的隊列大小控制,每種類型包處理池都有一個隊列,不同隊列元素的類包含承載處理不同處理步驟的方法,每個請求包都需要資源池即隊列中的處理類處理。隊列越大,資源池越大,可容納的處理類越多,處理速度越快。
統計模塊103:實時統計不同操作類型請求包的數量,以10分鐘為一個時間段,每10分鐘創建一個新的字典,以時間值(精確到秒)作為字典的鍵值,以完整收到請求包的時間點為基準,將對應的字典值加1;將舊的字典輸出到日誌生成模塊106,以便生成報表記錄;實時統計每個處理資源池中剩餘的請求包的數量,通過資源管理中心模塊102不斷上報各個資源池空閒的大小,記錄各個資源池的壓力度。
預測與配置模塊104:預測請求包數量可能的變化,根據統計模塊103提供的字典值,分析不同類型的請求包數量的變化趨勢,將不同類型的處理需求以字典值形成通知反饋處理中心模塊105;根據日誌生成模塊106提供的報表數據,用戶預測當前相對時間內請求包數量可能的變化。
以字典值形成通知反饋處理中心模塊105不同類型的處理需求的將要變化關係。一般地,鍵值是操作類型;這裡規定變化趨勢值為。根據統計數據計算增長速度,計算出增長斜率,最大值為5。
日誌生成模塊106提供的報表數據是一天為單位,顯示出不同類型請求包的變化曲線。一般地,業務與星期幾、幾點有較強的相關性;分析報表,可以在配置文件中預先規定每個處理資源池的大小。配置文件支持設置資源池最小值、資源池最大值和變化時間點等參數。
反饋處理中心模塊105:綜合預測與配置模塊104的結果,參考數據包可能的變化趨勢,以及當前資源池處理速度作出決策,將結果下達給資源管理中心模塊102,要求系統內各個資源池作出相應調整。
決策資源池增大至少要滿足以下兩個條件中的一個:一是請求包數據量明顯增大,一般趨勢值高於(含)3;二是請求包數據量變化不明顯,但是資源池的空閒大小卻在不斷下降,一般空閒大小小於總大小的1/5。
反饋處理中心模塊105還需要在閒時釋放系統資源。一般地,決策資源池減小至少要滿足以下三個條件中的一個:一是請求包數據量明顯減少,一般鍵值低於(含)-3;二是請求包數據量變化不明顯,但是資源池的空閒大小卻在不斷增大;三是請求包數據量與資源池的空閒大小基本不變,但是資源池的空閒大小較大,一般空閒大小大於總大小的1/3。
日誌生成模塊106包括:日誌記載了整個系統的各個模塊基本運行信息,記載了整個系統的數據包的基本流向和狀態。系統的日誌記錄由統一的模塊專門持久化到磁碟上。
日誌生成模塊106還包括:將統計模塊103的字典值,寫入日誌文件中;設置日誌記錄需遵循以下原則:一條信息是一行:便於後期閱讀和自動化分析;日誌要嚴格分級:調節分級參數,可以獲得詳細或者簡單的記錄信息,避免磁碟空間的浪費。
圖2是根據本發明一個實施例的自適應均衡資料庫訪問服務的方法示意圖,如圖所示該方法包括一下步驟:
步驟S201,捕捉目標資料庫的訪問請求。
步驟S202,分析訪問資料庫的請求包;解析請求對目標數據的操作類型以及驗證操作權限。
步驟S203,對應處理器處理相關請求。
步驟S204,統計與預測不同類型的請求數的變化。
步驟S205,調節處理器資源。
步驟S206,記錄分析訪問資料庫的操作。
本實施例對不同類型處理的能力使用資源池大小量化,通過改變處理類的隊列大小進而自適應調節各個處理器的處理請求的能力。
本實施例對數據傳遞使用了較多的字典作為傳輸介質,方便了對內容的讀取、配置和查詢。
在上述提供的說明書中,介紹了大量具體細節。然而能夠理解,本發明的實施例可以在沒有這些具體細節說明下實踐。在一些實例中,並未詳細公示出公知的方法、結構和技術,以便不模糊對本說明書的理解。
類似地,應當理解遵循具體實施方式的權利要求書由此明確地進入該具體實施方法,其中每個權利要求本身都作為本發明的單獨實施例。
應當注意的是上述實施例對本發明進行說明而不是本發明進行限制,並且本領域技術人員在不脫離所附權利要求的範圍的情況下可設計出替換實施例。
至此,本領域技術人員應認識到,雖然本文已詳盡描述了本發明的示例性實施例,但是在不脫離本發明思想和範圍的情況下,仍可根據本發明公開的內容直接確定或推導出符合本發明原理的變形和修改。因此,本發明的範圍應被理解和認定為覆蓋了所有這些變形或修改。