一種高效可靠的多任務(wù)處理方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種高效可靠的多任務(wù)處理方法及系統(tǒng),屬于計(jì)算機(jī)網(wǎng)絡(luò)【技術(shù)領(lǐng)域】。本發(fā)明將整個(gè)系統(tǒng)分為兩個(gè)端點(diǎn):一個(gè)端點(diǎn)稱為生產(chǎn)端,即客戶端將請(qǐng)求發(fā)送到WEB服務(wù)器,WEB服務(wù)器將請(qǐng)求封裝成消息發(fā)送到消息服務(wù)器上。然后將消息發(fā)送成功的結(jié)果返回。另一個(gè)端點(diǎn)是消費(fèi)端,即業(yè)務(wù)邏輯處理單元從消息服務(wù)器上取得消息,并解析消息成相關(guān)的請(qǐng)求,然后對(duì)其進(jìn)行處理,處理完成以后發(fā)送消費(fèi)完成的確認(rèn)消息給消息服務(wù)器,消息服務(wù)器將此條消息從服務(wù)器中刪除。本發(fā)明節(jié)省了WEB服務(wù)器的系統(tǒng)資源,降低了系統(tǒng)的耦合性,提高了擴(kuò)展性;同時(shí)提升了用戶體驗(yàn),保持用戶操作了連續(xù)性。
【專利說明】一種高效可靠的多任務(wù)處理方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種高效可靠的多任務(wù)處理方法及系統(tǒng),屬于計(jì)算機(jī)網(wǎng)絡(luò)【技術(shù)領(lǐng)域】?!颈尘凹夹g(shù)】
[0002]在當(dāng)前的WEB系統(tǒng)中,絕大多數(shù)是基于HTTP的請(qǐng)求和響應(yīng)的B/S架構(gòu)的,整個(gè)過程如下:客戶端(瀏覽器)發(fā)送請(qǐng)求到WEB服務(wù)器,服務(wù)器端接收請(qǐng)求并進(jìn)行業(yè)務(wù)邏輯的處理,最后將處理后得到的結(jié)果返回到客戶端。現(xiàn)有技術(shù)在服務(wù)器端業(yè)務(wù)邏輯復(fù)雜,處理比較耗時(shí)的情況下會(huì)出現(xiàn)如下問題:
[0003]對(duì)于服務(wù)器端某些時(shí)性要求并不高,但業(yè)務(wù)邏輯非常復(fù)雜,處理耗時(shí)非常大,客戶端的往往響應(yīng)的時(shí)間比較長,甚至?xí)?dǎo)致客戶端遲遲無法得到響應(yīng),嚴(yán)重影響用戶體驗(yàn),同時(shí),長時(shí)間未返回會(huì)造成session失效,極大的影響了用戶操作的連續(xù)性。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)問題,本發(fā)明的目的在于提供一種高效可靠的多任務(wù)處理方法及系統(tǒng);本發(fā)明將服務(wù)器端接收客戶端的請(qǐng)求和服務(wù)器端對(duì)請(qǐng)求進(jìn)行業(yè)務(wù)邏輯的處理進(jìn)行物理上的分離,將請(qǐng)求封裝成消息發(fā)送到消息服務(wù)器上,業(yè)務(wù)邏輯處理單元從消息服務(wù)器獲取消息并解析成請(qǐng)求之后進(jìn)行業(yè)務(wù)邏輯的處理。
[0005]本發(fā)明將整個(gè)系統(tǒng)分為兩個(gè)端點(diǎn):一個(gè)端點(diǎn)稱為生產(chǎn)端,即客戶端將請(qǐng)求發(fā)送到WEB服務(wù)器,WEB服務(wù)器將請(qǐng)求封裝成消息發(fā)送到消息服務(wù)器上。然后將消息發(fā)送成功的結(jié)果返回。另一個(gè)端點(diǎn)是消費(fèi)端,即業(yè)務(wù)邏輯處理單元從消息服務(wù)器上取得消息,并解析消息成相關(guān)的請(qǐng)求,然后對(duì)其進(jìn)行處理,處理完成以后發(fā)送消費(fèi)完成的確認(rèn)消息給消息服務(wù)器,消息服務(wù)器將此條消息從服務(wù)器中刪除。
[0006]本發(fā)明的技術(shù)方案為:
[0007]一種高效可靠的多任務(wù)處理方法,其步驟為:
[0008]DffEB服務(wù)器解析客戶端請(qǐng)求,獲取客戶端請(qǐng)求的參數(shù);
[0009]2)WEB服務(wù)器將客戶端請(qǐng)求封裝成消息發(fā)送到消息服務(wù)器集群的主消息服務(wù)器上;其中,WEB服務(wù)器將客戶端請(qǐng)求參數(shù)中業(yè)務(wù)邏輯處理的請(qǐng)求參數(shù)組裝成字節(jié)流作為所封裝消息的內(nèi)容;
[0010]3)主消息服務(wù)器接收消息并將其進(jìn)行持久化到一共享數(shù)據(jù)庫,然后再將消息發(fā)送到相應(yīng)的業(yè)務(wù)邏輯處理單元;
[0011]4)業(yè)務(wù)邏輯處理單元將收到的消息解析成客戶端請(qǐng)求后對(duì)其進(jìn)行處理,并發(fā)送反饋信息給主消息服務(wù)器;
[0012]5)如果業(yè)務(wù)邏輯處理單元執(zhí)行成功,則主消息服務(wù)器將持久化到該共享數(shù)據(jù)庫中的該消息刪除。
[0013]進(jìn)一步的,在于WEB服務(wù)器監(jiān)聽消息服務(wù)器集群中各個(gè)消息服務(wù)器的連接情況,確定可達(dá)的所述主消息服務(wù)器。[0014]進(jìn)一步的,WEB服務(wù)器根據(jù)設(shè)定的發(fā)送頻率將所封裝消息發(fā)送到所述主消息服務(wù)器。
[0015]進(jìn)一步的,所述消息服務(wù)器集群包括若干臺(tái)消息服務(wù)器,在同一時(shí)間內(nèi),將其中一臺(tái)消息服務(wù)器設(shè)為主消息服務(wù)器,提供服務(wù),其余消息服務(wù)器設(shè)為輔消息服務(wù)器,并形成輔消息服務(wù)器隊(duì)列;如果當(dāng)前主消息服務(wù)器無法提供服務(wù),則將輔消息服務(wù)器隊(duì)列中最靠前的一臺(tái)可達(dá)的輔消息服務(wù)器設(shè)為主消息服務(wù)器;如果原主消息服務(wù)器恢復(fù)正常,則將原主消息服務(wù)器列入輔消息服務(wù)器隊(duì)列的末尾處。
[0016]進(jìn)一步的,所述主消息服務(wù)器持久化消息到所述共享數(shù)據(jù)庫的方法為:按照消息內(nèi)容中的業(yè)務(wù)邏輯以隊(duì)列的方式存儲(chǔ)消息,不同業(yè)務(wù)邏輯處理單元對(duì)應(yīng)不同的隊(duì)列。
[0017]進(jìn)一步的,所述業(yè)務(wù)邏輯處理單元根據(jù)設(shè)定的頻率接收主消息服務(wù)器發(fā)送來的消息;所述消息為二進(jìn)制字節(jié)流消息。
[0018]—種高效可靠的多任務(wù)處理系統(tǒng),其特征在于包括一 WEB服務(wù)器、一消息服務(wù)器集群、以業(yè)務(wù)處理系統(tǒng);其中,業(yè)務(wù)處理系統(tǒng)包括若干業(yè)務(wù)邏輯處理單元,WEB服務(wù)器通過網(wǎng)絡(luò)與客戶端連接,消息服務(wù)器集群通過網(wǎng)絡(luò)分別與WEB服務(wù)器、業(yè)務(wù)處理系統(tǒng)連接;
[0019]所述WEB服務(wù)器用于接收客戶端的請(qǐng)求,并對(duì)客戶端請(qǐng)求進(jìn)行解析后封裝為消息發(fā)送給消息服務(wù)器集群;接收消息服務(wù)器集群返回的反饋消息,將其反饋給客戶端;
[0020]所述消息服務(wù)器集群用于接收WEB服務(wù)器封裝后的消息并將其進(jìn)行持久化到一共享數(shù)據(jù)庫,然后再將消息發(fā)送到相應(yīng)的業(yè)務(wù)處理系統(tǒng);
[0021]所述業(yè)務(wù)處理系統(tǒng)用于將收到的消息解析成客戶端請(qǐng)求后對(duì)其進(jìn)行處理,并發(fā)送反饋信息給消息服務(wù)器集群。
[0022]進(jìn)一步的,所述消息服務(wù)器集群按照消息內(nèi)容中的業(yè)務(wù)邏輯以隊(duì)列的方式將消息持久化到所述共享數(shù)據(jù)庫,不同的隊(duì)列對(duì)應(yīng)所述業(yè)務(wù)系統(tǒng)中不同業(yè)務(wù)邏輯處理單元。
[0023]進(jìn)一步的,所述消息服務(wù)器集群如果收到業(yè)務(wù)處理系統(tǒng)反饋消息為執(zhí)行成功,則消息服務(wù)器集群將刪除持久化到所述共享數(shù)據(jù)庫中的該消息。
[0024]進(jìn)一步的,所述WEB服務(wù)器對(duì)客戶端的請(qǐng)求采用異步處理方式進(jìn)行處理;所述業(yè)務(wù)處理系統(tǒng)采用多線程處理方式處理客戶端請(qǐng)求。
[0025]與現(xiàn)有技術(shù)相比,本發(fā)明產(chǎn)生的技術(shù)效果:
[0026]1、將客戶端的請(qǐng)求進(jìn)行異步處理,有效的提升了用戶體驗(yàn),保持用戶操作了連續(xù)性。
[0027]2、復(fù)雜的業(yè)務(wù)邏輯的處理從WEB服務(wù)器當(dāng)中分離出來,Web服務(wù)器只負(fù)責(zé)請(qǐng)求的解析、信息封裝和收發(fā),節(jié)省了 WEB服務(wù)器的系統(tǒng)資源。
[0028]3、將復(fù)雜的業(yè)務(wù)邏輯獨(dú)立出來,便于采用多線程等提升性能的手段,降低了系統(tǒng)的耦合性,提高了擴(kuò)展性。
【專利附圖】
【附圖說明】
[0029]圖1為本發(fā)明的系統(tǒng)結(jié)構(gòu)圖;
[0030]圖2為WEB服務(wù)器工作流程圖;
[0031]圖3為消息服務(wù)器工作流程圖;
[0032]圖4為業(yè)務(wù)邏輯處理單元工作流程圖?!揪唧w實(shí)施方式】
[0033]本發(fā)明主要有三個(gè)部分組成:WEB服務(wù)器、消息服務(wù)器集群、業(yè)務(wù)處理系統(tǒng)(包括若干業(yè)務(wù)邏輯處理單元);消息服務(wù)器集群中包括一消息服務(wù)器共享的持久化消息數(shù)據(jù)庫,主要作用是防止消息丟失,保障業(yè)務(wù)邏輯中所處理的消息能夠順序的進(jìn)行處理。F5是負(fù)載均衡的硬件設(shè)備。如圖1所示。
[0034]WEB服務(wù)器主要功能是接受并解析HTTP請(qǐng)求,然后將請(qǐng)求封裝成消息格式并發(fā)送到消息服務(wù)器上。所以WEB服務(wù)器這端主要由3部分組成:HTTP請(qǐng)求解析模塊,消息封裝模塊和消息發(fā)送模塊,如圖2所示。
[0035]HTTP請(qǐng)求解析模塊:主要是解析HTTP請(qǐng)求,獲取請(qǐng)求的參數(shù)。
[0036]消息封裝模塊:將解析模塊獲取的請(qǐng)求參數(shù)中業(yè)務(wù)邏輯處理的請(qǐng)求參數(shù)組裝成字節(jié)流作為消息的內(nèi)容。
[0037]消息服務(wù)器監(jiān)聽模塊:監(jiān)聽集群中各個(gè)消息服務(wù)器的連接情況。
[0038]消息發(fā)送模塊:根據(jù)指定的發(fā)送頻率將字節(jié)流消息發(fā)送到消息服務(wù)器監(jiān)聽模塊所確定的可達(dá)的消息服務(wù)器。
[0039]消息服務(wù)器集群主要由若干臺(tái)消息服務(wù)器組成,在同一時(shí)間內(nèi),只有一臺(tái)消息服務(wù)器提供服務(wù),稱為主消息服務(wù)器,其余的都是輔消息服務(wù)器,并形成輔消息服務(wù)器隊(duì)列。如果主消息服務(wù)器因故障無法提供服務(wù),比如路由不可達(dá),則由輔消息服務(wù)器隊(duì)列中的最靠前的一臺(tái)可達(dá)的輔消息服務(wù)器接管服務(wù),變?yōu)橹飨⒎?wù)器。如果原來的主消息服務(wù)器恢復(fù)正常,則原主消息服務(wù)器進(jìn)入輔消息服務(wù)器隊(duì)列的末尾處。
[0040]主消息服務(wù)器的主要功能是接收消息并將其進(jìn)行持久化到數(shù)據(jù)庫,即按順序存放在持久化數(shù)據(jù)庫中,所有消息服務(wù)器集群都共享該數(shù)據(jù)庫,然后再將消息發(fā)送到相應(yīng)的業(yè)務(wù)邏輯處理單元并接收其反饋信息,如果業(yè)務(wù)處理單元執(zhí)行成功,則將保存在數(shù)據(jù)庫中的持久化消息進(jìn)行刪除。消息服務(wù)器主要有以下幾個(gè)模塊組成:消息接收模塊,消息識(shí)別模塊,消息發(fā)送模塊,消息持久化管理模塊,持久化消息數(shù)據(jù)庫。如圖3所示。
[0041]消息接收模塊:主要是接收WEB服務(wù)發(fā)送來的封裝過的請(qǐng)求消息和業(yè)務(wù)邏輯處理單元發(fā)送過來的反饋信息。
[0042]消息識(shí)別模塊:對(duì)接收到的消息來源,發(fā)送目的,消息隊(duì)列的工D,消息類型進(jìn)行識(shí)別,并將結(jié)果發(fā)送到持久化消息管理模塊。
[0043]持久化消息管理模塊:對(duì)持久化消息DB進(jìn)行增刪的操作。持久化消息將按照消息內(nèi)容中的業(yè)務(wù)邏輯以隊(duì)列的方式存儲(chǔ)消息,不同業(yè)務(wù)邏輯處理單元對(duì)應(yīng)不同的隊(duì)列。
[0044]持久化消息DB:保存所有未被業(yè)務(wù)邏輯處理單元消費(fèi)的消息。
[0045]消息發(fā)送模塊:將不同隊(duì)列里的消息發(fā)送各個(gè)業(yè)務(wù)邏輯處理單元處理。每一業(yè)務(wù)邏輯處理單元處理同一類消息。
[0046]業(yè)務(wù)邏輯處理單元主要是接收消息服務(wù)器發(fā)送來的消息,并解析成對(duì)應(yīng)的請(qǐng)求信息,執(zhí)行相應(yīng)的業(yè)務(wù)邏輯。主要由消息接收模塊,業(yè)務(wù)處理模塊,反饋信息發(fā)送模塊。如圖4所示。
[0047]消息接收模塊:主要功能是根據(jù)設(shè)定的頻率接收主消息服務(wù)器發(fā)送來的二進(jìn)制字節(jié)流消息。[0048]業(yè)務(wù)處理模塊:將字節(jié)流解析成為對(duì)應(yīng)的請(qǐng)求,并執(zhí)行相應(yīng)的業(yè)務(wù)邏輯操作。
[0049]反饋信息發(fā)送模塊:如果業(yè)務(wù)處理成功,將執(zhí)行成功的消息發(fā)送到主消息服務(wù)器。如果失敗,則將失敗的消息以郵件或者其他方式通知給客戶端的用戶。
【權(quán)利要求】
1.一種高效可靠的多任務(wù)處理方法,其步驟為: DffEB服務(wù)器解析客戶端請(qǐng)求,獲取客戶端請(qǐng)求的參數(shù); 2)WEB服務(wù)器將客戶端請(qǐng)求封裝成消息發(fā)送到消息服務(wù)器集群的主消息服務(wù)器上;其中,WEB服務(wù)器將客戶端請(qǐng)求參數(shù)中業(yè)務(wù)邏輯處理的請(qǐng)求參數(shù)組裝成字節(jié)流作為所封裝消息的內(nèi)容; 3)主消息服務(wù)器接收消息并將其進(jìn)行持久化到消息服務(wù)器集群的共享數(shù)據(jù)庫,然后再將消息發(fā)送到相應(yīng)的業(yè)務(wù)邏輯處理單元; 4)業(yè)務(wù)邏輯處理單元將收到的消息解析成客戶端請(qǐng)求后對(duì)其進(jìn)行處理,并發(fā)送反饋信息給主消息服務(wù)器; 5)如果業(yè)務(wù)邏輯處理單元執(zhí)行成功,則主消息服務(wù)器將持久化到該共享數(shù)據(jù)庫中的該消息刪除。
2.如權(quán)利要求1所述的方法,其特征在于WEB服務(wù)器監(jiān)聽消息服務(wù)器集群中各個(gè)消息服務(wù)器的連接情況,確定可達(dá)的所述主消息服務(wù)器。
3.如權(quán)利要求1或2所述的方法,其特征在于WEB服務(wù)器根據(jù)設(shè)定的發(fā)送頻率將所封裝消息發(fā)送到所述主消息服務(wù)器。
4.如權(quán)利要求1或2所述的方法,其特征在于所述消息服務(wù)器集群包括若干臺(tái)消息服務(wù)器,在同一時(shí)間內(nèi),將其中一臺(tái)消息服務(wù)器設(shè)為主消息服務(wù)器,提供服務(wù),其余消息服務(wù)器設(shè)為輔消息服務(wù)器,并形成輔消息服務(wù)器隊(duì)列;如果當(dāng)前主消息服務(wù)器無法提供服務(wù),則將輔消息服務(wù)器隊(duì)列中最靠前的一臺(tái)可達(dá)的`輔消息服務(wù)器設(shè)為主消息服務(wù)器;如果原主消息服務(wù)器恢復(fù)正常,則將原主消息服務(wù)器列入輔消息服務(wù)器隊(duì)列的末尾處。
5.如權(quán)利要求1所述的方法,其特征在于所述主消息服務(wù)器持久化消息到所述共享數(shù)據(jù)庫的方法為:按照消息內(nèi)容中的業(yè)務(wù)邏輯以隊(duì)列的方式存儲(chǔ)消息,不同業(yè)務(wù)邏輯處理單元對(duì)應(yīng)不同的隊(duì)列。
6.如權(quán)利要求1所述的方法,其特征在于所述業(yè)務(wù)邏輯處理單元根據(jù)設(shè)定的頻率接收主消息服務(wù)器發(fā)送來的消息;所述消息為二進(jìn)制字節(jié)流消息。
7.—種高效可靠的多任務(wù)處理系統(tǒng),其特征在于包括一 WEB服務(wù)器、一消息服務(wù)器集群、以業(yè)務(wù)處理系統(tǒng);其中,業(yè)務(wù)處理系統(tǒng)包括若干業(yè)務(wù)邏輯處理單元,WEB服務(wù)器通過網(wǎng)絡(luò)與客戶端連接,消息服務(wù)器集群通過網(wǎng)絡(luò)分別與WEB服務(wù)器、業(yè)務(wù)處理系統(tǒng)連接; 所述WEB服務(wù)器用于接收客戶端的請(qǐng)求,并對(duì)客戶端請(qǐng)求進(jìn)行解析后封裝為消息發(fā)送給消息服務(wù)器集群;接收消息服務(wù)器集群返回的反饋消息,將其反饋給客戶端; 所述消息服務(wù)器集群用于接收WEB服務(wù)器封裝后的消息并將其進(jìn)行持久化到消息服務(wù)器集群的共享數(shù)據(jù)庫,然后再將消息發(fā)送到相應(yīng)的業(yè)務(wù)處理系統(tǒng); 所述業(yè)務(wù)處理系統(tǒng)用于將收到的消息解析成客戶端請(qǐng)求后對(duì)其進(jìn)行處理,并發(fā)送反饋信息給消息服務(wù)器集群。
8.如權(quán)利要求7所述的多任務(wù)處理系統(tǒng),其特征在于所述消息服務(wù)器集群按照消息內(nèi)容中的業(yè)務(wù)邏輯以隊(duì)列的方式將消息持久化到所述共享數(shù)據(jù)庫,不同的隊(duì)列對(duì)應(yīng)所述業(yè)務(wù)系統(tǒng)中不同業(yè)務(wù)邏輯處理單元。
9.如權(quán)利要求7或8所述的多任務(wù)處理系統(tǒng),其特征在于所述消息服務(wù)器集群如果收到業(yè)務(wù)處理系統(tǒng)反饋消息為執(zhí)行成功,則消息服務(wù)器集群將刪除持久化到所述共享數(shù)據(jù)庫中的該消息。
10.如權(quán)利要求7所述的多任務(wù)處理系統(tǒng),其特征在于所述WEB服務(wù)器對(duì)客戶端的請(qǐng)求采用異步處理方式進(jìn)行處理;所述`業(yè)務(wù)處理系統(tǒng)采用多線程處理方式處理客戶端請(qǐng)求。
【文檔編號(hào)】G06F9/46GK103685363SQ201210328285
【公開日】2014年3月26日 申請(qǐng)日期:2012年9月7日 優(yōu)先權(quán)日:2012年9月7日
【發(fā)明者】歐陽萬斌, 常安寧 申請(qǐng)人:中國科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心