一種中間件線程的監(jiān)控調度系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種中間件線程的監(jiān)控調度系統(tǒng)及其監(jiān)控調度方法,包括多線程中間件系統(tǒng)與中間件監(jiān)控系統(tǒng),多線程中間件系統(tǒng)包括兩兩通信連接的請求分配組件、工作線程池組件和監(jiān)控調度組件,工作線程池組件由數個以IP地址對應優(yōu)先級分組的工作線程組構成,監(jiān)控調度組件預先設定IP地址優(yōu)先級并獲取工作線程及服務器工作狀態(tài)數據進行處理生成系統(tǒng)健康率反饋給請求分配組件,請求分配組件根據系統(tǒng)健康率和最大可用線程數獲得動態(tài)最大可用線程數,并根據動態(tài)最大可用線程數和IP地址優(yōu)先級分配工作線程。本發(fā)明動態(tài)調整可用線程數,當系統(tǒng)健康狀況不好時,即時拒絕用戶請求,解決了高并發(fā)訪問時可能出現(xiàn)的阻塞問題,提升了高并發(fā)訪問時中間件系統(tǒng)運行的穩(wěn)定性。
【專利說明】一種中間件線程的監(jiān)控調度系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明涉及一種監(jiān)控調度系統(tǒng),尤其涉及一種中間件線程的監(jiān)控調度系統(tǒng),還涉及上述系統(tǒng)的監(jiān)控調度方法。
【背景技術】
[0002]中間件系統(tǒng)是指為了降低業(yè)務系統(tǒng)開發(fā)過程中的復雜性和提升系統(tǒng)的處理能力,將應用軟件所要面臨的共性問題進行提煉、抽象,在操作系統(tǒng)之上再形成一個可復用的部分的軟件功能集合。為了應對高并發(fā)的訪問請求,一般的中間件系統(tǒng)都是多線程的,稱為多線程中間件系統(tǒng)。
[0003]如圖1所示是傳統(tǒng)的多線程中間件系統(tǒng)與中間件監(jiān)控系統(tǒng)(中間件系統(tǒng)的監(jiān)控系統(tǒng)),多線程中間件系統(tǒng)包括請求分配組件、部署在中間件容器中的應用系統(tǒng)I…N、工作線程池組件以及多線程中間件系統(tǒng)提供的一些其它組件。請求分配組件用于調度用戶請求;工作線程池組件用于創(chuàng)建工作線程執(zhí)行具體應用功能;中間件監(jiān)控系統(tǒng)用于定時采集多線程中間件系統(tǒng)運行狀態(tài)并反饋給系統(tǒng)運維人員。
[0004]上述多線程中間件系統(tǒng)的工作過程如下:初次啟動時請求分配組件創(chuàng)建一個接收線程,初次啟動時工作線程池組件創(chuàng)建一個工作線程池并設置線程池的大小,接收線程收到請求后,負責從工作線程池中獲取一個可用工作線程,并將用戶請求交給該工作線程處理,該工作線程執(zhí)行具體的應用系統(tǒng)功能完畢后返回線程池;接收線程收到請求后,如果工作線程池沒有可用工作線程,則接收線程阻塞,等待可用工作線程。
[0005]傳統(tǒng)多線程中間件系統(tǒng)在上述工作過程中雖然一定程度上保障了多線程中間件系統(tǒng)的性能與穩(wěn)定性,但是還存在以下缺陷:⑴當工作線程池沒有可用工作線程時,等待可用工作線程,造成接收線程阻塞現(xiàn)象,在高并發(fā)訪問時該現(xiàn)象尤其明顯;⑵無法監(jiān)測與停止執(zhí)行時間過長的異常工作線.程,亦無法監(jiān)測工作線程池中工作線程間的死鎖,因此不能解決上述這兩種情況將系統(tǒng)資源耗盡的問題;⑶沒有提前預警機制,只有等到系統(tǒng)不能對外提供服務的時候,中間件監(jiān)控系統(tǒng)才會獲知并發(fā)出警告。所以,傳統(tǒng)多線程中間件系統(tǒng)在處理高并發(fā)訪問時容易導致失穩(wěn)。
【發(fā)明內容】
[0006]本發(fā)明的第一個目的在于提供一種中間件線程的監(jiān)控調度系統(tǒng),避免高并發(fā)訪問時系統(tǒng)阻塞,提升高并發(fā)訪問時多線程中間件系統(tǒng)的穩(wěn)定性,同時能夠監(jiān)控和管理多線程中間件系統(tǒng)。
[0007]本發(fā)明的第二個目的在于提供一種前述中間件線程的監(jiān)控調度系統(tǒng)的監(jiān)控調度方法。
[0008]本發(fā)明的第一個目的通過如下的技術方案來實現(xiàn):一種中間件線程的監(jiān)控調度系統(tǒng),包括多線程中間件系統(tǒng)與用于監(jiān)控多線程中間件系統(tǒng)運行狀態(tài)并反饋給系統(tǒng)運維人員的中間件監(jiān)控系統(tǒng),其特征在于:所述多線程中間件系統(tǒng)包括兩兩通信連接的請求分配組件、工作線程池組件和監(jiān)控調度組件,所述工作線程池組件由數個以IP地址對應優(yōu)先級分組的工作線程組構成,每個工作線程組由數個工作線程組成,所述監(jiān)控調度組件預先設定IP地址優(yōu)先級并獲取工作線程及服務器工作狀態(tài)數據進行處理生成系統(tǒng)健康率反饋給請求分配組件,請求分配組件根據系統(tǒng)健康率和最大可用線程數獲得動態(tài)最大可用線程數,并根據動態(tài)最大可用線程數和IP地址優(yōu)先級分配工作線程。
[0009]本發(fā)明增設監(jiān)控調度組件獲得系統(tǒng)健康率反饋給請求分配組件,并根據動態(tài)最大可用線程數和IP地址優(yōu)先級分配工作線程,因此改變了傳統(tǒng)依靠一個單一固定數據(即最大可用線程數)來決定工作線程池是否空閑的情況,本發(fā)明在工作線程分配入口設置動態(tài)分配策略,與系統(tǒng)的健康狀態(tài)相結合,動態(tài)調整可用線程數,當活動線程數(被占用的工作線程的數量)大于或者等于動態(tài)最大可用線程數時,此時屬于系統(tǒng)健康狀況不好的情況,請求分配組件能夠即時拒絕用戶請求,以防止系統(tǒng)阻塞,從而解決了高并發(fā)訪問時出現(xiàn)接收線程阻塞問題,提升了高并發(fā)訪問時多線程中間件系統(tǒng)的穩(wěn)定性;另外,工作線程池以用戶請求IP地址對應優(yōu)先級分組,提供工作任務的優(yōu)先級執(zhí)行方式,能夠保障高優(yōu)先級的用戶請求更快的得到執(zhí)行。
[0010]作為本發(fā)明的一種實施方式,所述監(jiān)控調度組件主要由依次通信連接的線程狀態(tài)查看與參數設置模塊、緩存模塊、工作線程池監(jiān)控管理模塊組成,所述緩存模塊還與請求分配組件相連,所述工作線程池監(jiān)控管理模塊還與工作線程池組件相連,所述線程狀態(tài)查看與參數設置模塊提供人工查看監(jiān)控界面并用于設置系統(tǒng)參數和IP地址優(yōu)先級儲存至緩存模塊,所述工作線程池監(jiān)控管理模塊用于采集工作線程及服務器工作狀態(tài)數據進行處理生成系統(tǒng)健康率儲存至緩存模塊,由緩存模塊將系統(tǒng)健康率和IP地址優(yōu)先級反饋給請求分配組件。
[0011]作為本發(fā)明的一種推薦實施方式,所述工作線程池監(jiān)控管理模塊主要由工作線程監(jiān)控管理定時線程、分別用于采集服務器CPU平均使用率、內存平均使用率及工作線程工作狀態(tài)的數據采集模塊、分別與所述各數據采集模塊對應連接的計算模塊組成,計算模塊還與緩存模塊相連,所述服務器CPU平均使用率、內存平均使用率即為所述服務器工作狀態(tài)數據,所述工作線程監(jiān)控管 理定時線程分別與工作線程池組件、各數據采集模塊連接,用于驅動各數據采集模塊在設定時間內進行數據采集,其中,與采集服務器CPU平均使用率的數據采集模塊相連的計算模塊用于計算在設定時間內服務器CPU的平均使用率,與采集服務器內存平均使用率的數據采集模塊相連的計算模塊用于計算在設定時間內服務器內存的平均使用率,與采集工作線程工作狀態(tài)的數據采集模塊相連的計算模塊用于計算超過設定時間運行的工作線程數,所述工作線程監(jiān)控管理定時線程根據采集的數據計算獲得系統(tǒng)健康率并儲存至緩存模塊。
[0012]本發(fā)明系統(tǒng)健康率的計算公式如下:
[0013]
【權利要求】
1.一種中間件線程的監(jiān)控調度系統(tǒng),包括多線程中間件系統(tǒng)與用于監(jiān)控多線程中間件系統(tǒng)運行狀態(tài)并反饋給系統(tǒng)運維人員的中間件監(jiān)控系統(tǒng),其特征在于:所述多線程中間件系統(tǒng)包括兩兩通信連接的請求分配組件、工作線程池組件和監(jiān)控調度組件,所述工作線程池組件由數個以IP地址對應優(yōu)先級分組的工作線程組構成,每個工作線程組由數個工作線程組成,所述監(jiān)控調度組件預先設定IP地址優(yōu)先級并獲取工作線程及服務器工作狀態(tài)數據進行處理生成系統(tǒng)健康率反饋給請求分配組件,請求分配組件根據系統(tǒng)健康率和最大可用線程數獲得動態(tài)最大可用線程數,并根據動態(tài)最大可用線程數和IP地址優(yōu)先級分配工作線程。
2.根據權利要求1所述的中間件線程的監(jiān)控調度系統(tǒng),其特征在于:所述監(jiān)控調度組件主要由依次通信連接的線程狀態(tài)查看與參數設置模塊、緩存模塊、工作線程池監(jiān)控管理模塊組成,所述緩存模塊還與請求分配組件相連,所述工作線程池監(jiān)控管理模塊還與工作線程池組件相連,所述線程狀態(tài)查看與參數設置模塊提供人工查看監(jiān)控界面并用于設置系統(tǒng)參數和IP地址優(yōu)先級儲存至緩存模塊,所述工作線程池監(jiān)控管理模塊用于采集工作線程及服務器工作狀態(tài)數據進行處理生成系統(tǒng)健康率儲存至緩存模塊,由緩存模塊將系統(tǒng)健康率和IP地址優(yōu)先級反饋給請求分配組件。
3.根據權利要求2所述的中間件線程的監(jiān)控調度系統(tǒng),其特征在于:所述工作線程池監(jiān)控管理模塊主要由工作線程監(jiān)控管理定時線程、分別用于采集服務器CPU平均使用率、內存平均使用率及工作線程工作狀態(tài)的數據采集模塊、分別與所述各數據采集模塊對應連接的計算模塊組成,計算模塊還與緩存模塊相連,所述服務器CPU平均使用率、內存平均使用率即為所述服務器工作狀態(tài)數據,所述工作線程監(jiān)控管理定時線程分別與工作線程池組件、各數據采集模塊連接,用于驅動各數據采集模塊在設定時間內進行數據采集,其中,與采集服務器CPU平均使用率的數據采集模塊相連的計算模塊用于計算在設定時間內服務器CPU的平均使用率,與采集服務器內存平均使用率的數據采集模塊相連的計算模塊用于計算在設定時間內服務器內存的平均使用率,與采集工作線程工作狀態(tài)的數據采集模塊相連的計算模塊用于計算超過設定時間運行的工作線程數,所述工作線程監(jiān)控管理定時線程根據采集的數據計算獲得系統(tǒng)健康率并儲存至緩存模塊。
4.根據權利要求3所述的中 間件線程的監(jiān)控調度系統(tǒng),其特征在于: 所述系統(tǒng)健康率的計算公式如下:
5.根據權利要求3或4所述的中間件線程的監(jiān)控調度系統(tǒng),其特征在于:所述用于采集服務器CPU使用率、內存使用率的數據采集模塊采集的數據以時間維度寫入緩存模塊,所述用于采集工作線程工作狀態(tài)的數據采集模塊采集的數據以工作線程名稱寫入緩存模塊。
6.根據權利要求5所述的中間件線程的監(jiān)控調度系統(tǒng),其特征在于:所述工作線程池監(jiān)控管理模塊包括問題線程中斷模塊,所述問題線程中斷模塊分別與工作線程監(jiān)控管理定時線程、用于采集工作線程工作狀態(tài)的數據采集模塊相連,所述問題線程中斷模塊判斷工作線程運行時間超過設定的閾值時向工作線程池組件發(fā)出中斷該工作線程的信號實現(xiàn)自動干預。
7.根據權利要求6所述的中間件線程的監(jiān)控調度系統(tǒng),其特征在于:所述監(jiān)控調度組件包括系統(tǒng)狀態(tài)預警模塊,所述系統(tǒng)狀態(tài)預警模塊分別與工作線程監(jiān)控管理定時線程、數據采集模塊和中間件監(jiān)控系統(tǒng)相連,所述系統(tǒng)狀態(tài)預警模塊從數據采集模塊獲取表征系統(tǒng)健康狀態(tài)的各種數據,并比較該數據與存儲在緩存模塊中的系統(tǒng)參數,當該數據不符合系統(tǒng)參數設定時向中間件監(jiān)控系統(tǒng)發(fā)送預警信息,由中間件監(jiān)控系統(tǒng)通知人工干預。
8.—種權利要求1所述的中間件線程的監(jiān)控調度系統(tǒng)的監(jiān)控調度方法,其特征在于具體包括以下步驟: ⑴創(chuàng)建用戶請求; ⑵請求分配組件提取用戶請求的IP地址; ⑶判斷當前工作線程池.組件的活動線程數是否小于最大可用線程數:i如果活動線程數等于最大可用線程數,為用戶請求分配一個線程,將服務器忙的信息返回至用戶端; ii如果活動線程數小于最大可用線程數,轉入步驟⑷; ⑷判斷活動線程數是否小于動態(tài)最大可用線程數,監(jiān)控調度組件根據工作線程及服務器工作狀態(tài)數據進行處理生成系統(tǒng)健康率反饋給請求分配組件,由請求分配組件根據系統(tǒng)健康率和最大可用線程數獲得動態(tài)最大可用線程數: i如果活動線程數大于或等于動態(tài)最大可用線程數,為用戶請求分配一個線程,將服務器忙的信息返回至用戶端; ii如果活動線程數小于動態(tài)最大可用線程數,轉入步驟(5); (5)按照監(jiān)控調度組件預先設定的IP地址對應的優(yōu)先級為用戶請求分配工作線程。
9.根據權利要求8所述的中間件線程的監(jiān)控調度系統(tǒng)的監(jiān)控調度方法,其特征在于: 所述系統(tǒng)健康率的計算公式為:
10.根據權利要求8或9所述的中間件線程的監(jiān)控調度系統(tǒng)的監(jiān)控調度方法,其特征在于:所述監(jiān)控調度組件判斷工作線程運行時間超過設定的閾值時向工作線程池組件發(fā)出中斷該工作線程的信號實現(xiàn)自動干預;所述監(jiān)控調度組件獲取表征系統(tǒng)健康狀態(tài)的各種數據,當該數據不在系統(tǒng)參數設定范圍內時向中間件監(jiān)控系統(tǒng)發(fā)送預警信息,由中間件監(jiān)控系統(tǒng)通知人工干預。`
【文檔編號】H04L29/08GK103428272SQ201310298602
【公開日】2013年12月4日 申請日期:2013年7月16日 優(yōu)先權日:2013年7月16日
【發(fā)明者】郭世亮 申請人:無限極(中國)有限公司