基于任務分配的自動出票系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及一種基于任務分配的自動出票系統(tǒng)。
【背景技術】
[0002]現(xiàn)有的自動出票系統(tǒng)工作時通常只有一個服務器,這嚴重影響了出票業(yè)務的處理速度和效率,對于具有大吞吐量需求的出票業(yè)務,現(xiàn)有的自動出票系統(tǒng)已經(jīng)漸漸無法滿足需求。
【發(fā)明內(nèi)容】
[0003]本發(fā)明要解決的技術問題是為了克服現(xiàn)有技術中自動出票系統(tǒng)出票業(yè)務的處理速度和效率很慢,無法滿足大吞吐量需求的缺陷,提供一種基于任務分配的自動出票系統(tǒng)。
[0004]本發(fā)明是通過下述技術方案來解決上述技術問題的:
[0005]本發(fā)明提供了一種基于任務分配的自動出票系統(tǒng),其特點在于,包括:
[0006]任務分配模塊,用于在接收到表征出票任務的外部請求時,根據(jù)任務類型將不同的出票任務分別置入對應的消息隊列中,所述消息隊列采用先進先出的數(shù)據(jù)結構;
[0007]任務取出模塊,用于從所述消息隊列中取出出票任務;
[0008]多個任務處理模塊,每個任務處理模塊均包括一組可自動擴展的處理線程,每個處理線程中均包含出票任務的處理邏輯,所述任務處理模塊用于通過執(zhí)行處理線程來處理出票任務。
[0009]較佳地,所述自動出票系統(tǒng)還包括管理模塊,用于執(zhí)行數(shù)據(jù)監(jiān)控及報警、任務處理模塊的配置和管理及連接池的管理。
[0010]較佳地,所述自動出票系統(tǒng)還包括日志模塊,用于記錄所述自動出票系統(tǒng)的所有運行日志。
[0011 ] 較佳地,所述運行日志的存儲格式包括文本日志、數(shù)據(jù)庫日志、TraceLog ( 一種日志格式)及CentralLog ( 一種日志格式)。
[0012]較佳地,所述消息隊列采用異步通信機制。
[0013]較佳地,所述自動出票系統(tǒng)還包括數(shù)據(jù)庫,用于存儲所述消息隊列。
[0014]較佳地,所述自動出票系統(tǒng)還包括消息隊列管理模塊,用于對所述消息隊列進行監(jiān)控和管理,包括日志查詢、計時計數(shù)器查詢、消息隊列積壓情況的監(jiān)控和報警以及配置信息的查詢和修改。
[0015]較佳地,所述任務處理模塊還用于在所述消息隊列的任務量超過一第一閾值時自動增加處理線程,并在任務量低于一第二閾值時自動減少處理線程。
[0016]較佳地,所述自動出票系統(tǒng)為分布式系統(tǒng),采用不同的服務器執(zhí)行不同任務類型的出票任務。
[0017]本發(fā)明的積極進步效果在于:本發(fā)明的自動出票系統(tǒng)是一種高性能、高可用、可擴展的分布式自動出票系統(tǒng),具有出票任務順序存儲及分配、大吞吐量、日志傳輸、支持異常報警等特性,同時具有很好的平臺無關性,并能夠很好地支持并發(fā)與異步調(diào)用,適用于大吞吐量、順序任務和日志數(shù)據(jù)傳輸?shù)葓鼍啊?br>【附圖說明】
[0018]圖1為本發(fā)明的較佳實施例的基于任務分配的自動出票系統(tǒng)的模塊示意圖。
【具體實施方式】
[0019]下面通過實施例的方式進一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實施例范圍之中。
[0020]如圖1所示,本發(fā)明的基于任務分配的自動出票系統(tǒng)包括任務分配模塊1、任務取出模塊2、多個任務處理模塊3、管理模塊4、日志模塊5、數(shù)據(jù)庫6及消息隊列管理模塊7。[0021 ] 本發(fā)明的自動出票系統(tǒng)以WebService ( 一種平臺獨立的、低耦合的、自包含的、基于可編程的應用程序)方式對外提供服務,調(diào)用方可以采用不同語言與平臺進行調(diào)用,這樣就徹底解決了客戶端與服務端的耦合,并且很好地形成了對服務的重用。
[0022]所述任務分配模塊I用于在接收到用于表征出票任務的外部請求時,根據(jù)任務類型將不同的出票任務分別置入指定的對應的消息隊列中,對于不同的應用,可以同時部署多個消息隊列,不同的消息隊列會接收不同的消息,例如Register、Pay、Issue、Ticket、Query等消息隊列,當某個消息隊列出現(xiàn)異常時,不會對其他消息隊列中的出票任務處理產(chǎn)生影響。
[0023]所述消息隊列采用先進先出的數(shù)據(jù)結構,因此能保證數(shù)據(jù)按照特定的順序來處理。為了保持數(shù)據(jù)持久化,所述消息隊列會被存儲到所述數(shù)據(jù)庫6中,這樣一旦系統(tǒng)出現(xiàn)故障,消息隊列中未處理的出票任務也不會丟失,等到系統(tǒng)故障解決后,可以從第一條未處理的出票任務開始繼續(xù)執(zhí)行。
[0024]所述任務取出模塊2會從所述消息隊列中取出對應的出票任務,因為消息隊列提供了 “只取出一次”的保證,因此無論有多少進程從隊列中取數(shù)據(jù),每一個出票任務只會被處理一次,所述任務取出模塊2同時提供了數(shù)據(jù)緩存、延遲取出、批量取出以及輕量級路由等功能,保證了數(shù)據(jù)處理的多樣性。
[0025]每個任務處理模塊3均包括一組可自動擴展的處理線程,每個處理線程中均包含出票任務的處理邏輯,所述任務處理模塊3用于通過執(zhí)行處理線程來處理出票任務。所述任務處理模塊3還在所述消息隊列的任務量超過一第一閾值時自動增加處理線程,并在所述消息隊列的任務量低于一第二閾值時自動減少處理線程,其中所述第一閾值和所述第二閾值均可以根據(jù)需要進行設置,且所述第一閾值大于或等于所述第二閾值,從而實現(xiàn)對系統(tǒng)資源的合理利用。
[0026]所述管理模塊4則用于執(zhí)行數(shù)據(jù)監(jiān)控及報警、任務處理模塊的配置和管理以及連接池的管理等操作,通過對連接池的控制,可以緩解對外部資源的大量沖擊和浪費。其中,所述管理模塊4與所述多個任務處理模塊3可集成在同一個主處理程序中。
[0027]所述日志模塊5則用于記錄所述自動出票系統(tǒng)的所有運行日志,并且提供便捷的配置來實現(xiàn)多種不同形式的日志存儲方式,所述運行日志的存儲格式具體包括文本日志、數(shù)據(jù)庫日志、TraceLogN CentralLog 等。
[0028]所述消息隊列管理模塊7用于對所述消息隊列進行監(jiān)控和管理,包括日志查詢、計時計數(shù)器查詢、消息隊列積壓情況的監(jiān)控和報警以及配置信息的查詢和修改等。
[0029]本發(fā)明的自動出票系統(tǒng)是分布式系統(tǒng),通過將不同任務類型的出票業(yè)務操作與數(shù)據(jù)處理以不同的服務形式部署并運行在不同的服務器上,從而能夠有效地緩解單個服務器的壓力,進而可以有效地分配與利用服務器資源。
[0030]當自動出票系統(tǒng)需要處理的都是執(zhí)行時間較長的出票任務時,本發(fā)明中引入消息隊列使之成為出票任務處理的緩沖區(qū),而所述消息隊列采用異步通信機制,使得發(fā)送方和接收方都不用等待對方返回成功消息,就可以繼續(xù)執(zhí)行下面的處理,從而提高了數(shù)據(jù)處理的能力。
[0031]在任務量和數(shù)據(jù)量較大的情況下,本發(fā)明的自動出票系統(tǒng)可以自動增加處理線程來保證出票任務處理的及時性,也可以結合消息隊列與后臺配置,有效降低數(shù)據(jù)庫處理數(shù)據(jù)的負荷,避免高峰期對內(nèi)部系統(tǒng)及外部資源造成沖擊。
[0032]雖然以上描述了本發(fā)明的【具體實施方式】,但是本領域的技術人員應當理解,這些僅是舉例說明,本發(fā)明的保護范圍是由所附權利要求書限定的。本領域的技術人員在不背離本發(fā)明的原理和實質的前提下,可以對這些實施方式做出多種變更或修改,但這些變更和修改均落入本發(fā)明的保護范圍。
【主權項】
1.一種基于任務分配的自動出票系統(tǒng),其特征在于,包括: 任務分配模塊,用于在接收到表征出票任務的外部請求時,根據(jù)任務類型將不同的出票任務分別置入對應的消息隊列中,所述消息隊列采用先進先出的數(shù)據(jù)結構; 任務取出模塊,用于從所述消息隊列中取出出票任務; 多個任務處理模塊,每個任務處理模塊均包括一組可自動擴展的處理線程,每個處理線程中均包含出票任務的處理邏輯,所述任務處理模塊用于通過執(zhí)行處理線程來處理出票任務。2.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述自動出票系統(tǒng)還包括管理模塊,用于執(zhí)行數(shù)據(jù)監(jiān)控及報警、任務處理模塊的配置和管理及連接池的管理。3.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述自動出票系統(tǒng)還包括日志模塊,用于記錄所述自動出票系統(tǒng)的所有運行日志。4.如權利要求3所述的自動出票系統(tǒng),其特征在于,所述運行日志的存儲格式包括文本日志、數(shù)據(jù)庫日志、TraceLog及CentralLog。5.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述消息隊列采用異步通信機制。6.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述自動出票系統(tǒng)還包括數(shù)據(jù)庫,用于存儲所述消息隊列。7.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述自動出票系統(tǒng)還包括消息隊列管理模塊,用于對所述消息隊列進行監(jiān)控和管理,包括日志查詢、計時計數(shù)器查詢、消息隊列積壓情況的監(jiān)控和報警以及配置信息的查詢和修改。8.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述任務處理模塊還用于在所述消息隊列的任務量超過一第一閾值時自動增加處理線程,并在任務量低于一第二閾值時自動減少處理線程。9.如權利要求1所述的自動出票系統(tǒng),其特征在于,所述自動出票系統(tǒng)為分布式系統(tǒng),采用不同的服務器執(zhí)行不同任務類型的出票任務。
【專利摘要】本發(fā)明公開了一種基于任務分配的自動出票系統(tǒng),包括:任務分配模塊,用于在接收到表征出票任務的外部請求時,根據(jù)任務類型將不同的出票任務分別置入對應的消息隊列中,消息隊列采用先進先出的數(shù)據(jù)結構;任務取出模塊,用于從消息隊列中取出出票任務;多個任務處理模塊,每個任務處理模塊均包括一組可自動擴展的處理線程,每個處理線程中均包含出票任務的處理邏輯,任務處理模塊用于通過執(zhí)行處理線程來處理出票任務。本發(fā)明的自動出票系統(tǒng)是一種高性能、高可用、可擴展的分布式自動出票系統(tǒng),具有出票任務順序存儲及分配、大吞吐量、日志傳輸、支持異常報警等特性,同時具有很好的平臺無關性,并能夠很好地支持并發(fā)與異步調(diào)用。
【IPC分類】G06F9/48
【公開號】CN105183549
【申請?zhí)枴緾N201510536338
【發(fā)明人】潘衛(wèi)華, 蘇杰
【申請人】攜程計算機技術(上海)有限公司
【公開日】2015年12月23日
【申請日】2015年8月27日