麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法與流程

文檔序號(hào):12492617閱讀:556來(lái)源:國(guó)知局
一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法與流程

本發(fā)明涉及服務(wù)資源分配技術(shù)領(lǐng)域,尤其涉及一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法。



背景技術(shù):

近年來(lái),隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的不斷發(fā)展,Internet用戶(hù)數(shù)成指數(shù)倍增加,互聯(lián)網(wǎng)應(yīng)用得到了迅速普及。技術(shù)的進(jìn)步激發(fā)了用戶(hù)需求的增長(zhǎng),業(yè)務(wù)也變得更加復(fù)雜,這就要求服務(wù)器提供高并發(fā)訪(fǎng)問(wèn)及合理分配服務(wù)資源的能力。

傳統(tǒng)的單個(gè)服務(wù)器處理能力有限,無(wú)法處理高并發(fā)業(yè)務(wù)請(qǐng)求,而將單個(gè)普通的服務(wù)器置換成更高性能的服務(wù)器其成本又過(guò)高,并且又造成了閑置服務(wù)器資源的浪費(fèi)。因此將多臺(tái)服務(wù)器構(gòu)建成為一個(gè)服務(wù)器集群系統(tǒng),共同處理外部請(qǐng)求的做法,已成為國(guó)內(nèi)外構(gòu)建高性能服務(wù)器的主要方法。

集群系統(tǒng)比起使用傳統(tǒng)的單個(gè)服務(wù)器要復(fù)雜得多,如何為業(yè)務(wù)請(qǐng)求合理分配集群中的服務(wù)資源是最關(guān)鍵的問(wèn)題,它將直接影響集群系統(tǒng)是否能提供等于或接近于預(yù)期的性能。例如當(dāng)大量請(qǐng)求同時(shí)到達(dá)時(shí),若服務(wù)資源分配不合理將導(dǎo)致某些服務(wù)器節(jié)點(diǎn)長(zhǎng)期處于負(fù)載過(guò)重狀態(tài),而另外某些服務(wù)器則較長(zhǎng)時(shí)間處于空閑狀態(tài)。上述這種情況嚴(yán)重浪費(fèi)了集群系統(tǒng)的資源優(yōu)勢(shì),用戶(hù)的請(qǐng)求也得不到及時(shí)的響應(yīng),集群系統(tǒng)的整體性能也并沒(méi)有多大的提升,這與引入集群系統(tǒng)的初衷是不相符的。因此必須采用一種較好的負(fù)載均衡方案,以便將任務(wù)盡可能合理地分配到集群系統(tǒng)中的各服務(wù)器節(jié)點(diǎn)。

負(fù)載均衡技術(shù)伴隨著集群技術(shù)的出現(xiàn)而出現(xiàn),目的是將請(qǐng)求均勻地調(diào)度給集群中的節(jié)點(diǎn),盡量做到負(fù)載均衡。目前常用的負(fù)載均衡算法分為以下兩類(lèi):

(1)靜態(tài)調(diào)度算法

靜態(tài)調(diào)度算法出現(xiàn)時(shí)間最早,是其他算法的基礎(chǔ)和雛形。其基本思想就是預(yù)先定義好一些調(diào)度規(guī)則,將所有的請(qǐng)求按照規(guī)則進(jìn)行分配,而與系統(tǒng)的當(dāng)前狀態(tài),比如負(fù)載量,資源利用率等信息無(wú)關(guān)。

(2)動(dòng)態(tài)調(diào)度算法

相對(duì)于靜態(tài)調(diào)度來(lái)說(shuō),動(dòng)態(tài)調(diào)度算法加入了一些反饋機(jī)制,這種機(jī)制可以動(dòng)態(tài)地收集當(dāng)前的集群信息,包括各個(gè)節(jié)點(diǎn)的負(fù)載、新請(qǐng)求的類(lèi)型、數(shù)量、帶寬的利用率、請(qǐng)求延時(shí)等等。利用這些信息,我們可以動(dòng)態(tài)改變服務(wù)器的權(quán)值和其他的一些屬性,改變新連接的走向。這樣的措施在負(fù)載高峰和不穩(wěn)定的時(shí)候,能夠起到很好的調(diào)節(jié)作用,避免服務(wù)傾斜和宕機(jī)的情況出現(xiàn),提高集群的整體性能。

由于動(dòng)態(tài)調(diào)度算法能根據(jù)系統(tǒng)的實(shí)時(shí)信息動(dòng)態(tài)地改變資源分配策略,在現(xiàn)實(shí)場(chǎng)景中具有更好的性能,目前國(guó)內(nèi)涉及到負(fù)載均衡技術(shù)的專(zhuān)利中,采用動(dòng)態(tài)調(diào)度算法的較多。

但是,現(xiàn)有技術(shù)中關(guān)于分配服務(wù)資源的方案大都是從負(fù)載均衡的角度出發(fā)的,很少有針對(duì)業(yè)務(wù)優(yōu)先級(jí)的資源分配方案。在服務(wù)資源充裕的情況下,由于所有業(yè)務(wù)都能及時(shí)分配到服務(wù)資源,優(yōu)先級(jí)對(duì)于業(yè)務(wù)的重要性可能不大。然而,在服務(wù)資源緊缺時(shí),不是所有的業(yè)務(wù)都能及時(shí)分配到服務(wù)資源,對(duì)于核心的、緊急的業(yè)務(wù)就應(yīng)該優(yōu)先分配到服務(wù)資源,此時(shí),優(yōu)先級(jí)對(duì)于業(yè)務(wù)的重要性就不言而喻了。



技術(shù)實(shí)現(xiàn)要素:

鑒于上述的分析,本發(fā)明旨在提供一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法,該方法充分考慮業(yè)務(wù)優(yōu)先級(jí),按優(yōu)先級(jí)分配服務(wù)資源,用以解決傳統(tǒng)負(fù)載均衡技術(shù)中對(duì)業(yè)務(wù)優(yōu)先級(jí)考慮不足的問(wèn)題。

本發(fā)明的目的主要是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:

一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法,設(shè)置調(diào)度器;該調(diào)度器與服務(wù)器集群中的所有服務(wù)器相連;該調(diào)度器存儲(chǔ)有所有服務(wù)器的標(biāo)識(shí),組成該服務(wù)器集群的服務(wù)器標(biāo)識(shí)隊(duì)列;

所述高并發(fā)服務(wù)資源分配方法包括如下步驟:

步驟S1,調(diào)度器接收用戶(hù)發(fā)出的業(yè)務(wù)請(qǐng)求;

步驟S2,所述調(diào)度器為接收到的每個(gè)業(yè)務(wù)請(qǐng)求生成一個(gè)進(jìn)程;

步驟S3,所述調(diào)度器采用輪詢(xún)方式轉(zhuǎn)發(fā)所接收到的業(yè)務(wù)請(qǐng)求給服務(wù)器,當(dāng)有服務(wù)器服務(wù)資源充足,接受該業(yè)務(wù)請(qǐng)求時(shí),相應(yīng)的進(jìn)程結(jié)束;當(dāng)所有服務(wù)器都服務(wù)資源不足,暫停接入請(qǐng)求時(shí),轉(zhuǎn)入步驟S4;

步驟S4,所述調(diào)度器將未被服務(wù)器接受的業(yè)務(wù)請(qǐng)求存儲(chǔ)下來(lái);

步驟S5,所述調(diào)度器從配置文件中調(diào)取所存儲(chǔ)的業(yè)務(wù)請(qǐng)求的業(yè)務(wù)優(yōu)先級(jí);

步驟S6、按照業(yè)務(wù)優(yōu)先級(jí)及業(yè)務(wù)請(qǐng)求發(fā)出時(shí)間,調(diào)度器將存儲(chǔ)的業(yè)務(wù)請(qǐng)求插入到相應(yīng)的業(yè)務(wù)請(qǐng)求隊(duì)列中的相應(yīng)位置;

具體地,業(yè)務(wù)請(qǐng)求隊(duì)列由優(yōu)先級(jí)相同的業(yè)務(wù)請(qǐng)求組成,每一個(gè)業(yè)務(wù)請(qǐng)求隊(duì)列中,按用戶(hù)發(fā)出業(yè)務(wù)請(qǐng)求的時(shí)間先后順序排隊(duì);

步驟S7,所述調(diào)度器根據(jù)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)優(yōu)先級(jí)及該業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)數(shù)量設(shè)定重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔t,具體地,滿(mǎn)足niti<njtj,其中i、j表示業(yè)務(wù)請(qǐng)求隊(duì)列標(biāo)號(hào),i標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列業(yè)務(wù)優(yōu)先級(jí)高于j標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列的業(yè)務(wù)優(yōu)先級(jí),ni、ti分別為i標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔,nj、tj分別為j標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔;

步驟S8,所述調(diào)度器為每條業(yè)務(wù)請(qǐng)求隊(duì)列生成一個(gè)進(jìn)程;

步驟S9,所述調(diào)度器每隔時(shí)間t,采用輪詢(xún)方式重發(fā)相應(yīng)的業(yè)務(wù)請(qǐng)求隊(duì)列,直到該業(yè)務(wù)請(qǐng)求隊(duì)列的所有業(yè)務(wù)請(qǐng)求被服務(wù)器接受,結(jié)束該進(jìn)程。

進(jìn)一步,所述步驟S3包括如下子步驟:

步驟S301,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);具體地,用戶(hù)將每一業(yè)務(wù)類(lèi)型所需服務(wù)資源單位數(shù)存儲(chǔ)在配置文件中,供調(diào)度器獲取;

步驟S302,所述調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S303,所述調(diào)度器將接收的業(yè)務(wù)請(qǐng)求及獲取到的所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S304,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需服務(wù)資源單位數(shù);是,該服務(wù)器接受并處理該業(yè)務(wù)請(qǐng)求,結(jié)束該進(jìn)程;否,該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S301~S304,直到有一服務(wù)器接受該業(yè)務(wù)請(qǐng)求,結(jié)束相應(yīng)進(jìn)程,或所有服務(wù)器均返回“業(yè)務(wù)暫停接入”響應(yīng),轉(zhuǎn)步驟S4。

進(jìn)一步,所述業(yè)務(wù)優(yōu)先級(jí)由用戶(hù)需求決定,用戶(hù)根據(jù)任務(wù)的緊急、重要程度,設(shè)置業(yè)務(wù)優(yōu)先級(jí),將業(yè)務(wù)優(yōu)先級(jí)寫(xiě)入配置文件中,供調(diào)度器調(diào)取。

進(jìn)一步,所述步驟S9包括如下子步驟:

步驟S901,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求隊(duì)列第一個(gè)業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);

步驟S902,調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S903,t時(shí)間間隔后,所述調(diào)度器將該業(yè)務(wù)請(qǐng)求隊(duì)列中第一個(gè)業(yè)務(wù)請(qǐng)求及該業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S904,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需資源單位數(shù);是,該服務(wù)器接受并處理所述的第一個(gè)業(yè)務(wù)請(qǐng)求,調(diào)度器將該業(yè)務(wù)請(qǐng)求從業(yè)務(wù)請(qǐng)求隊(duì)列中刪除;否,該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S901~S904,直到該業(yè)務(wù)請(qǐng)求隊(duì)列中的所有業(yè)務(wù)請(qǐng)求均被服務(wù)器接受,結(jié)束該進(jìn)程。

進(jìn)一步,調(diào)度器采用兩臺(tái)服務(wù)器以主備方式實(shí)現(xiàn)。

本發(fā)明為解決上述技術(shù)問(wèn)題,提供了另一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法,具體為:

設(shè)置調(diào)度器;該調(diào)度器與服務(wù)器集群中的所有服務(wù)器相連;該調(diào)度器存儲(chǔ)有所有服務(wù)器的標(biāo)識(shí),組成該服務(wù)器集群的服務(wù)器標(biāo)識(shí)隊(duì)列;調(diào)度器每隔一定時(shí)間向所有服務(wù)器詢(xún)問(wèn)服務(wù)資源消耗情況,獲得服務(wù)器集群的總資源消耗比;

所述高并發(fā)服務(wù)資源分配方法包括如下步驟:

步驟S1,調(diào)度器接收用戶(hù)發(fā)出的業(yè)務(wù)請(qǐng)求;

步驟S2,調(diào)度器判斷當(dāng)前服務(wù)器集群的總資源消耗比是否達(dá)到調(diào)度器所設(shè)置的閾值;判斷結(jié)果為是時(shí),轉(zhuǎn)步驟S5;判斷結(jié)果為否時(shí),轉(zhuǎn)步驟S3;

步驟S3,所述調(diào)度器為接收到的每個(gè)業(yè)務(wù)請(qǐng)求生成一個(gè)進(jìn)程;

步驟S4,所述調(diào)度器采用輪詢(xún)方式轉(zhuǎn)發(fā)所接收到的業(yè)務(wù)請(qǐng)求給服務(wù)器,當(dāng)有服務(wù)器服務(wù)資源充足,接受該業(yè)務(wù)請(qǐng)求時(shí),相應(yīng)的進(jìn)程結(jié)束;

步驟S5,所述調(diào)度器將所述業(yè)務(wù)請(qǐng)求存儲(chǔ)下來(lái);

步驟S6,所述調(diào)度器從配置文件中調(diào)取所存儲(chǔ)的業(yè)務(wù)請(qǐng)求的業(yè)務(wù)優(yōu)先級(jí);業(yè)務(wù)優(yōu)先級(jí)由用戶(hù)需求決定,用戶(hù)根據(jù)任務(wù)的緊急、重要程度,設(shè)置業(yè)務(wù)優(yōu)先級(jí),將業(yè)務(wù)優(yōu)先級(jí)寫(xiě)入配置文件中,供調(diào)度器調(diào)取;

步驟S7、按照業(yè)務(wù)優(yōu)先級(jí)及業(yè)務(wù)請(qǐng)求發(fā)出的時(shí)間,將該業(yè)務(wù)請(qǐng)求插入到相應(yīng)業(yè)務(wù)請(qǐng)求隊(duì)列中的相應(yīng)位置;

具體地,業(yè)務(wù)請(qǐng)求隊(duì)列由優(yōu)先級(jí)相同的業(yè)務(wù)請(qǐng)求組成,每一個(gè)業(yè)務(wù)請(qǐng)求隊(duì)列中,按用戶(hù)發(fā)出業(yè)務(wù)請(qǐng)求的時(shí)間先后順序排隊(duì);

步驟S8,所述調(diào)度器根據(jù)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)優(yōu)先級(jí)及該業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)數(shù)量設(shè)定重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔t,具體地,滿(mǎn)足niti<njtj,其中i、j表示業(yè)務(wù)請(qǐng)求隊(duì)列標(biāo)號(hào),i業(yè)務(wù)請(qǐng)求隊(duì)列業(yè)務(wù)優(yōu)先級(jí)高于j業(yè)務(wù)請(qǐng)求隊(duì)列的業(yè)務(wù)優(yōu)先級(jí),ni、ti分別為i業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔,nj、tj分別為j業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔;

步驟S9,所述調(diào)度器為每條業(yè)務(wù)請(qǐng)求隊(duì)列生成一個(gè)進(jìn)程;

步驟S10,所述調(diào)度器每隔時(shí)間t,采用輪詢(xún)方式重發(fā)相應(yīng)的業(yè)務(wù)請(qǐng)求隊(duì)列,直到該業(yè)務(wù)請(qǐng)求隊(duì)列的所有業(yè)務(wù)請(qǐng)求被服務(wù)器接受,停止重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列,結(jié)束該進(jìn)程;

進(jìn)一步,所述閾值由用戶(hù)需求決定,根據(jù)實(shí)際情況設(shè)置,設(shè)置原則是隨著對(duì)業(yè)務(wù)優(yōu)先級(jí)側(cè)重程度的增大,減小該閾值。

進(jìn)一步,所述閾值取為75%。

進(jìn)一步,所述步驟S4包括如下子步驟:

步驟S401,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);具體地,用戶(hù)將每一業(yè)務(wù)類(lèi)型所需服務(wù)資源單位數(shù)存儲(chǔ)在配置文件中,供調(diào)度器獲取;

步驟S402,所述調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S403,所述調(diào)度器將獲取到的所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S404,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需服務(wù)資源單位數(shù);是,該服務(wù)器接受并處理該業(yè)務(wù)請(qǐng)求,結(jié)束該進(jìn)程,否,該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S401~S404,直到有一服務(wù)器接受該業(yè)務(wù)請(qǐng)求。

進(jìn)一步,所述步驟S10包括如下子步驟:

步驟S1001,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求隊(duì)列第一個(gè)業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);

步驟S1002,t時(shí)間間隔后,調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S1003,所述調(diào)度器將該業(yè)務(wù)請(qǐng)求隊(duì)列中第一個(gè)業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S1004,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需資源單位數(shù);是,該服務(wù)器接受并處理業(yè)務(wù)請(qǐng)求隊(duì)列中的第一個(gè)業(yè)務(wù)請(qǐng)求,相應(yīng)的業(yè)務(wù)請(qǐng)求從業(yè)務(wù)請(qǐng)求隊(duì)列中刪除;否,則該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S1001~S1004,直到該業(yè)務(wù)請(qǐng)求隊(duì)列中的所有業(yè)務(wù)請(qǐng)求均被服務(wù)器接受,停止重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列,結(jié)束該進(jìn)程。

本發(fā)明有益效果如下:

1、本發(fā)明設(shè)置調(diào)度器為高并發(fā)業(yè)務(wù)分配服務(wù)資源,對(duì)高并發(fā)業(yè)務(wù)中的每一條業(yè)務(wù)請(qǐng)求生成一個(gè)進(jìn)程,每個(gè)進(jìn)程獨(dú)立處理一條業(yè)務(wù)請(qǐng)求。對(duì)任一條業(yè)務(wù)請(qǐng)求采用輪詢(xún)的方式分配服務(wù)資源,在保證資源能相對(duì)均勻分配的同時(shí),實(shí)現(xiàn)較為簡(jiǎn)單。

2、本發(fā)明設(shè)計(jì)了一種根據(jù)業(yè)務(wù)優(yōu)先級(jí)實(shí)現(xiàn)服務(wù)資源分配的機(jī)制,保證了在服務(wù)資源緊缺時(shí),優(yōu)先級(jí)高的業(yè)務(wù)能夠優(yōu)先獲取到服務(wù)資源。

3、本發(fā)明通過(guò)業(yè)務(wù)請(qǐng)求重發(fā)的時(shí)間間隔的大小來(lái)實(shí)現(xiàn)業(yè)務(wù)優(yōu)先級(jí),該優(yōu)先級(jí)的實(shí)現(xiàn)方式保證了不同優(yōu)先級(jí)的業(yè)務(wù)都能在一定時(shí)間內(nèi)獲取到服務(wù)資源,不會(huì)出現(xiàn)優(yōu)先級(jí)低的業(yè)務(wù)在很長(zhǎng)一段時(shí)間內(nèi)都無(wú)法獲取服務(wù)資源的情況,因此非常適合于高并發(fā)業(yè)務(wù)的場(chǎng)景

4、通過(guò)設(shè)置閾值,由用戶(hù)在認(rèn)為必要的時(shí)候即開(kāi)啟基于優(yōu)先權(quán)的分配策略,保證在服務(wù)資源已相對(duì)不足時(shí),使優(yōu)先級(jí)高的業(yè)務(wù)能夠優(yōu)先獲取到服務(wù)資源。

本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分的從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。

附圖說(shuō)明

附圖僅用于示出具體實(shí)施例的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制,在整個(gè)附圖中,相同的參考符號(hào)表示相同的部件。

圖1為本發(fā)明實(shí)施例一流程示意圖。

圖2為本發(fā)明實(shí)施例三流程示意圖。

具體實(shí)施方式

下面結(jié)合附圖來(lái)具體描述本發(fā)明的優(yōu)選實(shí)施例,其中,附圖構(gòu)成本申請(qǐng)一部分,并與本發(fā)明的實(shí)施例一起用于闡釋本發(fā)明的原理。

實(shí)施例一、

本實(shí)施例,在進(jìn)行服務(wù)資源分配之前,設(shè)置調(diào)度器;調(diào)度器可以是服務(wù)器集群中的任一服務(wù)器,可以單獨(dú)進(jìn)行調(diào)度,也可以同時(shí)處理業(yè)務(wù)請(qǐng)求。該調(diào)度器與服務(wù)器集群中的所有服務(wù)器相連;該調(diào)度器存儲(chǔ)有所有服務(wù)器的標(biāo)識(shí),組成該服務(wù)器集群的服務(wù)器標(biāo)識(shí)隊(duì)列。調(diào)度器采用一個(gè)具有多塊網(wǎng)卡的高性能網(wǎng)絡(luò)服務(wù)器實(shí)現(xiàn)。為了提高容錯(cuò)性,采用主備方式,用兩臺(tái)服務(wù)器實(shí)現(xiàn)雙機(jī)熱備分(即把一套系統(tǒng)同時(shí)部署到兩臺(tái)服務(wù)器上,主機(jī)系統(tǒng)如果出現(xiàn)故障,則立即切換到備機(jī)上運(yùn)行)。

本實(shí)施例公開(kāi)了一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法,如圖1所示,

包括如下步驟:

步驟S1,調(diào)度器接收用戶(hù)發(fā)出的業(yè)務(wù)請(qǐng)求;

步驟S2,所述調(diào)度器為接收到的每個(gè)業(yè)務(wù)請(qǐng)求生成一個(gè)進(jìn)程;

步驟S3,所述調(diào)度器采用輪詢(xún)方式轉(zhuǎn)發(fā)所接收到的業(yè)務(wù)請(qǐng)求給服務(wù)器,當(dāng)有服務(wù)器服務(wù)資源充足,接受該業(yè)務(wù)請(qǐng)求時(shí),相應(yīng)的進(jìn)程結(jié)束;當(dāng)所有服務(wù)器都服務(wù)資源不足,暫停接入請(qǐng)求時(shí),轉(zhuǎn)入步驟S4;

包括如下子步驟:

步驟S301,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);具體地,用戶(hù)將每一業(yè)務(wù)類(lèi)型所需服務(wù)資源單位數(shù)存儲(chǔ)在配置文件中,供調(diào)度器獲取;

不同業(yè)務(wù)對(duì)服務(wù)資源的需求不同,給每種業(yè)務(wù)賦予一個(gè)服務(wù)資源單位數(shù),例如a業(yè)務(wù)對(duì)資源需求量較小,賦予其1個(gè)單位的服務(wù)資源,b業(yè)務(wù)對(duì)服務(wù)資源需求量稍大,賦予其2個(gè)單位的資源,同時(shí)設(shè)定服務(wù)器總的資源單位數(shù),當(dāng)設(shè)置為10000個(gè)單位時(shí),服務(wù)器能同時(shí)并發(fā)處理最多10000個(gè)a業(yè)務(wù)請(qǐng)求或者5000個(gè)b業(yè)務(wù)請(qǐng)求,或者8000個(gè)a業(yè)務(wù)和1000個(gè)b業(yè)務(wù)。

步驟S302,所述調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S303,所述調(diào)度器將接收的業(yè)務(wù)請(qǐng)求及獲取到的所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S304,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需服務(wù)資源單位數(shù);是,該服務(wù)器接受并處理該業(yè)務(wù)請(qǐng)求,結(jié)束該進(jìn)程,否,該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S301~S304,直到有一服務(wù)器接受該業(yè)務(wù)請(qǐng)求,相應(yīng)進(jìn)程結(jié)束;或所有服務(wù)器均返回“業(yè)務(wù)暫停接入”響應(yīng),轉(zhuǎn)入步驟S4。

步驟S4,所述調(diào)度器將未被服務(wù)器接受的業(yè)務(wù)請(qǐng)求存儲(chǔ)下來(lái);

步驟S5,所述調(diào)度器從配置文件中調(diào)取所存儲(chǔ)的業(yè)務(wù)請(qǐng)求的業(yè)務(wù)優(yōu)先級(jí);業(yè)務(wù)優(yōu)先級(jí)由用戶(hù)需求決定,根據(jù)任務(wù)的緊急、重要程度,設(shè)置業(yè)務(wù)優(yōu)先級(jí),將業(yè)務(wù)優(yōu)先級(jí)寫(xiě)入配置文件中,供調(diào)度器調(diào)取;

在服務(wù)資源相對(duì)充裕時(shí),不同業(yè)務(wù)對(duì)資源的爭(zhēng)用并不明顯,因?yàn)檫@些業(yè)務(wù)都能及時(shí)分配到服務(wù)資源,但是在服務(wù)資源緊缺時(shí),現(xiàn)有的資源并不能及時(shí)滿(mǎn)足所有的業(yè)務(wù),此時(shí),資源分配的優(yōu)先級(jí)就顯得尤為重要了。對(duì)于那些緊急的、重要的、核心的業(yè)務(wù)需要賦予它們相對(duì)較高的優(yōu)先級(jí),保證它們優(yōu)先分配到資源,而對(duì)于那些不緊急的、次要的、非核心的業(yè)務(wù)可以賦予它們相對(duì)較低的優(yōu)先級(jí)。

步驟S6、按照業(yè)務(wù)優(yōu)先級(jí)及業(yè)務(wù)請(qǐng)求發(fā)出時(shí)間,調(diào)度器將存儲(chǔ)的業(yè)務(wù)請(qǐng)求插入到相應(yīng)的業(yè)務(wù)請(qǐng)求隊(duì)列中的相應(yīng)位置;

具體地,業(yè)務(wù)請(qǐng)求隊(duì)列由優(yōu)先級(jí)相同的業(yè)務(wù)請(qǐng)求組成,每一個(gè)業(yè)務(wù)請(qǐng)求隊(duì)列中,按用戶(hù)發(fā)出業(yè)務(wù)請(qǐng)求的時(shí)間先后順序排隊(duì);

步驟S7,調(diào)度器根據(jù)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)優(yōu)先級(jí)及該業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)數(shù)量設(shè)定重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔t,具體地,滿(mǎn)足niti<njtj,其中i、j表示業(yè)務(wù)請(qǐng)求隊(duì)列標(biāo)號(hào),i標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列業(yè)務(wù)優(yōu)先級(jí)高于j標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列的業(yè)務(wù)優(yōu)先級(jí),ni、ti分別為i標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔,nj、tj分別為j標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔;

步驟S8,所述調(diào)度器為每條業(yè)務(wù)請(qǐng)求隊(duì)列生成一個(gè)進(jìn)程;

步驟S9,所述調(diào)度器每隔時(shí)間t,采用輪詢(xún)方式重發(fā)相應(yīng)的業(yè)務(wù)請(qǐng)求隊(duì)列,直到該業(yè)務(wù)請(qǐng)求隊(duì)列的所有業(yè)務(wù)請(qǐng)求被服務(wù)器接受,結(jié)束該進(jìn)程;包括如下子步驟:

步驟S901,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求隊(duì)列第一個(gè)業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);

步驟S902,調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S903,t時(shí)間間隔后,所述調(diào)度器將該業(yè)務(wù)請(qǐng)求隊(duì)列中第一個(gè)業(yè)務(wù)請(qǐng)求及該業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S904,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需資源單位數(shù);是,該服務(wù)器接受并處理所述的第一個(gè)業(yè)務(wù)請(qǐng)求,調(diào)度器將該業(yè)務(wù)請(qǐng)求從業(yè)務(wù)請(qǐng)求隊(duì)列中刪除;否,該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S901~S904,直到該業(yè)務(wù)請(qǐng)求隊(duì)列中的所有業(yè)務(wù)請(qǐng)求均被服務(wù)器接受,結(jié)束該進(jìn)程。

本實(shí)施例集群中服務(wù)器的工作狀態(tài)分為負(fù)載未滿(mǎn)、滿(mǎn)負(fù)載兩個(gè)狀態(tài)。負(fù)載未滿(mǎn),指的是集群中還有未達(dá)到滿(mǎn)負(fù)載的服務(wù)器。如果單個(gè)服務(wù)器已經(jīng)達(dá)到工作的最大負(fù)荷,即滿(mǎn)負(fù)載,就會(huì)拒絕新的請(qǐng)求,當(dāng)集群中所有的服務(wù)器都滿(mǎn)負(fù)荷運(yùn)轉(zhuǎn)時(shí),則整個(gè)集群處于滿(mǎn)負(fù)載狀態(tài),無(wú)法處理新的請(qǐng)求。當(dāng)集群負(fù)載未滿(mǎn)時(shí),不同業(yè)務(wù)間不區(qū)分優(yōu)先級(jí),即調(diào)度器以相同優(yōu)先級(jí)為不同業(yè)務(wù)分配服務(wù)資源。此時(shí),調(diào)度器采用輪詢(xún)調(diào)度的方式來(lái)為每個(gè)業(yè)務(wù)分配服務(wù)資源。如果調(diào)度器隊(duì)列中所有的服務(wù)器都返回“業(yè)務(wù)暫停接入”響應(yīng),說(shuō)明此時(shí)服務(wù)器集群已經(jīng)處于滿(mǎn)負(fù)載狀態(tài),則進(jìn)入滿(mǎn)負(fù)載階段。當(dāng)集群處于滿(mǎn)負(fù)載狀態(tài)時(shí),服務(wù)資源已處于匱乏狀態(tài),調(diào)度器的請(qǐng)求被所有服務(wù)器響應(yīng)“業(yè)務(wù)暫停接入”后,說(shuō)明集群中已經(jīng)沒(méi)有可用的服務(wù)資源。

本實(shí)施例通過(guò)設(shè)定調(diào)度器重發(fā)業(yè)務(wù)請(qǐng)求的頻率(即時(shí)間間隔)來(lái)控制服務(wù)資源的分配。具體來(lái)說(shuō),當(dāng)調(diào)度器發(fā)現(xiàn)服務(wù)器集群已達(dá)到滿(mǎn)負(fù)載時(shí),會(huì)將當(dāng)前的業(yè)務(wù)請(qǐng)求臨時(shí)存儲(chǔ)下來(lái),每隔一段時(shí)間t重發(fā)該請(qǐng)求,直到該請(qǐng)求被接收才停止重發(fā)。此時(shí),如果有幾種不同類(lèi)型的業(yè)務(wù)在爭(zhēng)用服務(wù)資源,為了讓更緊急的、重要的、核心的業(yè)務(wù)優(yōu)先快速地分配到服務(wù)資源,可以把調(diào)度器重發(fā)該類(lèi)型業(yè)務(wù)請(qǐng)求的頻率設(shè)定的高些,即把重發(fā)該請(qǐng)求的時(shí)間間隔t的值設(shè)定的小些。

實(shí)施例二、

為便于理解,給出一個(gè)具體的運(yùn)用實(shí)例。

在核心通信系統(tǒng)中,有三種業(yè)務(wù)都需要使用計(jì)算服務(wù)器集群提供的計(jì)算服務(wù),其優(yōu)先級(jí)從高到低分別為關(guān)鍵控制業(yè)務(wù)、操作管理業(yè)務(wù)、一般查詢(xún)業(yè)務(wù)。

假設(shè)計(jì)算服務(wù)器集群由10臺(tái)單計(jì)算服務(wù)器組成,并對(duì)外提供接入控制器ServController作為統(tǒng)一訪(fǎng)問(wèn)點(diǎn)即調(diào)度器,由ServController負(fù)責(zé)接收轉(zhuǎn)發(fā)用戶(hù)端的業(yè)務(wù)請(qǐng)求給計(jì)算服務(wù)器集群進(jìn)行處理。在計(jì)算服務(wù)器集群運(yùn)算能力尚有空閑時(shí),對(duì)于三種業(yè)務(wù)的計(jì)算資源請(qǐng)求,ServController以相同優(yōu)先級(jí),采用輪詢(xún)方式調(diào)用10臺(tái)計(jì)算服務(wù)器。當(dāng)選擇的計(jì)算服務(wù)器計(jì)算負(fù)荷已滿(mǎn),則該計(jì)算服務(wù)器向ServController返回“業(yè)務(wù)暫停接入”響應(yīng),ServController根據(jù)返回值選擇列表中下一個(gè)計(jì)算服務(wù)器使用,依次類(lèi)推,當(dāng)列表中的所有計(jì)算服務(wù)器都輪詢(xún)一遍并且都返回“業(yè)務(wù)暫停接入”的情況下,ServController臨時(shí)存儲(chǔ)該業(yè)務(wù)請(qǐng)求消息,間隔n秒時(shí)間后重新選擇計(jì)算服務(wù)器。

此時(shí)所有計(jì)算服務(wù)器都處于滿(mǎn)負(fù)荷的情況下,ServController自動(dòng)激活優(yōu)先級(jí)分配策略,通過(guò)自動(dòng)設(shè)定不同業(yè)務(wù)重發(fā)時(shí)間間隔n的大小來(lái)控制高優(yōu)先級(jí)的業(yè)務(wù)優(yōu)先獲取到計(jì)算資源進(jìn)行處理。如設(shè)定關(guān)鍵控制業(yè)務(wù)n=1s,操作管理業(yè)務(wù)n=2s,一般查詢(xún)業(yè)務(wù)n=5s,當(dāng)計(jì)算服務(wù)器集群運(yùn)算滿(mǎn)負(fù)荷時(shí),三種業(yè)務(wù)請(qǐng)求都被響應(yīng)“業(yè)務(wù)暫停接入”,此時(shí),ServController分別在1s、2s、5s后再次重發(fā)三種業(yè)務(wù)請(qǐng)求,1s后,任意一臺(tái)計(jì)算服務(wù)器從滿(mǎn)負(fù)荷變成了空閑,則關(guān)鍵控制業(yè)務(wù)最先獲得計(jì)算服務(wù)資源;2s后,另一臺(tái)計(jì)算服務(wù)器從滿(mǎn)負(fù)荷變成了空閑,且沒(méi)有更高資源分配優(yōu)先級(jí)的業(yè)務(wù)存在,此時(shí)操作管理業(yè)務(wù)即可獲得計(jì)算服務(wù)資源。顯然,通過(guò)這種方式,資源分配優(yōu)先級(jí)較高的業(yè)務(wù)能夠在爭(zhēng)用資源時(shí)優(yōu)先獲得服務(wù)資源,優(yōu)先級(jí)低的業(yè)務(wù)也不會(huì)在很長(zhǎng)一段時(shí)間內(nèi)都無(wú)法獲取服務(wù)資源。

實(shí)施例三、

上述實(shí)施例一、二均在服務(wù)器集群滿(mǎn)負(fù)載情況下,才開(kāi)啟基于優(yōu)先級(jí)分配服務(wù)資源,為了使緊急、重要的業(yè)務(wù)更快的獲取業(yè)務(wù)資源,本實(shí)施例提供了一種基于閾值開(kāi)啟優(yōu)先級(jí)分配服務(wù)資源的實(shí)例。

本實(shí)施例公開(kāi)了一種基于業(yè)務(wù)優(yōu)先級(jí)的高并發(fā)服務(wù)資源分配方法,調(diào)度器每隔一定時(shí)間向所有服務(wù)器詢(xún)問(wèn)服務(wù)資源消耗情況,獲得服務(wù)器集群的總資源消耗比,當(dāng)該總資源消耗比達(dá)到調(diào)度器設(shè)置的闕值時(shí),說(shuō)明此時(shí)服務(wù)資源已經(jīng)不夠充裕,為了讓緊急的業(yè)務(wù)優(yōu)先獲取到資源,停止之前的不分優(yōu)先級(jí)平均分配資源的分配方式,而是先轉(zhuǎn)發(fā)優(yōu)先級(jí)較高的業(yè)務(wù)請(qǐng)求,再轉(zhuǎn)發(fā)優(yōu)先級(jí)較低的業(yè)務(wù)請(qǐng)求。

如圖2所示,包括如下步驟:

步驟S1,調(diào)度器接收用戶(hù)發(fā)出的業(yè)務(wù)請(qǐng)求;

步驟S2,調(diào)度器判斷當(dāng)前服務(wù)器集群的總資源消耗比是否達(dá)到調(diào)度器所設(shè)置的閾值;判斷結(jié)果為是時(shí),轉(zhuǎn)步驟S5;判斷結(jié)果為否時(shí),轉(zhuǎn)步驟S3;該閾值由用戶(hù)需求決定,根據(jù)實(shí)際情況設(shè)置,隨著對(duì)業(yè)務(wù)優(yōu)先級(jí)的側(cè)重程度的增大,減小該閾值;最佳閾值為75%,即在資源消耗比達(dá)到75%以上服務(wù)資源已相對(duì)緊張時(shí)即開(kāi)啟優(yōu)先權(quán)分配策略,以保證增加調(diào)度器程序、考慮優(yōu)先級(jí)分配服務(wù)資源兩者的均衡。

步驟S3,所述調(diào)度器為接收到的每個(gè)業(yè)務(wù)請(qǐng)求生成一個(gè)進(jìn)程;

步驟S4,所述調(diào)度器采用輪詢(xún)方式轉(zhuǎn)發(fā)所接收到的業(yè)務(wù)請(qǐng)求給服務(wù)器,當(dāng)有服務(wù)器服務(wù)資源充足,接受該業(yè)務(wù)請(qǐng)求時(shí),相應(yīng)的進(jìn)程結(jié)束;

包括如下子步驟:

步驟S401,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);具體地,用戶(hù)將每一業(yè)務(wù)類(lèi)型所需服務(wù)資源單位數(shù)存儲(chǔ)在配置文件中,供調(diào)度器獲取;

步驟S402,所述調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S403,所述調(diào)度器將獲取到的所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S404,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需服務(wù)資源單位數(shù);是,該服務(wù)器接受并處理該業(yè)務(wù)請(qǐng)求,結(jié)束該進(jìn)程,否,該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S401~S404,直到有一服務(wù)器接受該業(yè)務(wù)請(qǐng)求。

步驟S5,所述調(diào)度器將所述業(yè)務(wù)請(qǐng)求存儲(chǔ)下來(lái);

步驟S6,所述調(diào)度器從配置文件中調(diào)取所存儲(chǔ)的業(yè)務(wù)請(qǐng)求的業(yè)務(wù)優(yōu)先級(jí);業(yè)務(wù)優(yōu)先級(jí)由用戶(hù)需求決定,用戶(hù)根據(jù)任務(wù)的緊急、重要程度,設(shè)置業(yè)務(wù)優(yōu)先級(jí),將業(yè)務(wù)優(yōu)先級(jí)寫(xiě)入配置文件中,供調(diào)度器調(diào)取;

步驟S7、按照業(yè)務(wù)優(yōu)先級(jí)及業(yè)務(wù)請(qǐng)求發(fā)出的時(shí)間,將該業(yè)務(wù)請(qǐng)求插入到相應(yīng)業(yè)務(wù)請(qǐng)求隊(duì)列中的相應(yīng)位置;

具體地,業(yè)務(wù)請(qǐng)求隊(duì)列由優(yōu)先級(jí)相同的業(yè)務(wù)請(qǐng)求組成,每一個(gè)業(yè)務(wù)請(qǐng)求隊(duì)列中,按用戶(hù)發(fā)出業(yè)務(wù)請(qǐng)求的時(shí)間先后順序排隊(duì);

步驟S8,調(diào)度器根據(jù)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)優(yōu)先級(jí)及該業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)數(shù)量設(shè)定重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔t,具體地,滿(mǎn)足niti<njtj,其中i、j表示業(yè)務(wù)請(qǐng)求隊(duì)列標(biāo)號(hào),i標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列業(yè)務(wù)優(yōu)先級(jí)高于j標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列的業(yè)務(wù)優(yōu)先級(jí),ni、ti分別為i標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔,nj、tj分別為j標(biāo)號(hào)業(yè)務(wù)請(qǐng)求隊(duì)列中的業(yè)務(wù)請(qǐng)求數(shù)量及重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列的時(shí)間間隔;

步驟S9,所述調(diào)度器為每條業(yè)務(wù)請(qǐng)求隊(duì)列生成一個(gè)進(jìn)程;

步驟S10,所述調(diào)度器每隔時(shí)間t,采用輪詢(xún)方式重發(fā)相應(yīng)的業(yè)務(wù)請(qǐng)求隊(duì)列,直到該業(yè)務(wù)請(qǐng)求隊(duì)列的所有業(yè)務(wù)請(qǐng)求被服務(wù)器接受,停止重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列,結(jié)束該進(jìn)程;包括如下子步驟:

步驟S1001,調(diào)度器從配置文件中獲取該業(yè)務(wù)請(qǐng)求隊(duì)列第一個(gè)業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù);

步驟S1002,t時(shí)間間隔后,調(diào)度器將服務(wù)器標(biāo)識(shí)隊(duì)列中的隊(duì)頭元素出隊(duì)并插入隊(duì)尾;

步驟S1003,所述調(diào)度器將該業(yè)務(wù)請(qǐng)求隊(duì)列中第一個(gè)業(yè)務(wù)請(qǐng)求所需服務(wù)資源單位數(shù)轉(zhuǎn)發(fā)給隊(duì)尾標(biāo)識(shí)的服務(wù)器;

步驟S1004,所述隊(duì)尾標(biāo)識(shí)的服務(wù)器判斷自身剩余服務(wù)資源單位數(shù)是否大于等于調(diào)度器轉(zhuǎn)發(fā)的所需資源單位數(shù);是,該服務(wù)器接受并處理業(yè)務(wù)請(qǐng)求隊(duì)列中的第一個(gè)業(yè)務(wù)請(qǐng)求,相應(yīng)的業(yè)務(wù)請(qǐng)求從業(yè)務(wù)請(qǐng)求隊(duì)列中刪除;否,則該服務(wù)器向調(diào)度器返回“業(yè)務(wù)暫停接入”響應(yīng);

重復(fù)上述步驟S1001~S1004,直到該業(yè)務(wù)請(qǐng)求隊(duì)列中的所有業(yè)務(wù)請(qǐng)求均被服務(wù)器接受,停止重發(fā)該業(yè)務(wù)請(qǐng)求隊(duì)列,結(jié)束該進(jìn)程。

本發(fā)明具有以下優(yōu)點(diǎn):

1、本發(fā)明采用輪詢(xún)的方式為高并發(fā)業(yè)務(wù)分配服務(wù)資源,在保證資源能相對(duì)均勻分配的同時(shí),實(shí)現(xiàn)較為簡(jiǎn)單。

2、本發(fā)明設(shè)計(jì)了一種按業(yè)務(wù)優(yōu)先級(jí)的資源分配機(jī)制,保證了在服務(wù)資源相對(duì)緊缺時(shí),優(yōu)先級(jí)高的業(yè)務(wù)能夠優(yōu)先獲取到服務(wù)資源。

3、本發(fā)明通過(guò)業(yè)務(wù)請(qǐng)求重發(fā)的時(shí)間間隔的大小來(lái)實(shí)現(xiàn)業(yè)務(wù)優(yōu)先級(jí),該優(yōu)先級(jí)的實(shí)現(xiàn)方式保證了不同優(yōu)先級(jí)的業(yè)務(wù)都能在一定時(shí)間內(nèi)獲取到服務(wù)資源,不會(huì)出現(xiàn)優(yōu)先級(jí)低的業(yè)務(wù)在很長(zhǎng)一段時(shí)間內(nèi)都無(wú)法獲取服務(wù)資源的情況,因此非常適合于高并發(fā)業(yè)務(wù)的場(chǎng)景。

本領(lǐng)域技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法的全部或部分流程,可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。其中,所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)為磁盤(pán)、光盤(pán)、只讀存儲(chǔ)記憶體或隨機(jī)存儲(chǔ)記憶體等。

以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
主站蜘蛛池模板: 平塘县| 三穗县| 岳阳市| 洛阳市| 亚东县| 永州市| 揭西县| 和林格尔县| 林口县| 二连浩特市| 宁津县| 民和| 广德县| 武定县| 商河县| 张家川| 屏南县| 乐东| 吉安市| 中超| 金寨县| 遵义县| 峨山| 延川县| 潼南县| 土默特左旗| 革吉县| 巩留县| 大邑县| 阳新县| 阿城市| 荆州市| 云霄县| 北流市| 甘德县| 新宁县| 重庆市| 巍山| 寻甸| 维西| 申扎县|