欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法

文檔序號:7890265閱讀:190來源:國知局
專利名稱:處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法,特別是涉及一種利用分布式隊列處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法。
背景技術(shù)
消息中間件是實現(xiàn)系統(tǒng)間數(shù)據(jù)集成的工具,通過建立系統(tǒng)間的消息發(fā)布和訂閱關(guān)系建立起系統(tǒng)間的連接。由消息源系統(tǒng)(Origin System)將消息發(fā)送到消息中間件服務(wù)器,即消息服務(wù)器(Message Server),服務(wù)器根據(jù)訂閱關(guān)系將消息傳遞到消息目標系統(tǒng),消息目標系統(tǒng)接收到消息后根據(jù)內(nèi)容完成相應(yīng)的業(yè)務(wù)處理。目前眾多消息中間件產(chǎn)片在實現(xiàn)中間件服務(wù)器轉(zhuǎn)發(fā)消息到消息目標系統(tǒng)的機制是消息目標系統(tǒng)定時連接到消息服務(wù)器,查詢是否有屬于本系統(tǒng)的消息,如果有則將消息取過來,這是一種輪詢的處理方法。然而,目前采用輪詢處理方法的中間件大多存在以下缺點1、過于重量級,維護成本高,集群布署擴展繁鎖;2、效率低,開發(fā)人員學習成本高,監(jiān)控管理代價高。

發(fā)明內(nèi)容
為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明的主要目的在于提供一種處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法,其通過利用分布式異步隊列方式傳送異步消息,實現(xiàn)了高效、可靠的異步消息傳輸,同時本發(fā)明通過分布式集群結(jié)構(gòu),具有擴展性強、完備的容錯機制、使用方便,維護成本低、監(jiān)控管理方便等優(yōu)點。為達到上述及其他目的,本發(fā)明提供一種處理異步消息的系統(tǒng),利用分布式異步隊列處理異步消息,其至少包括多個集群端,每個集群端均包含應(yīng)用服務(wù)器及多個客戶端,每個客戶端根據(jù)預(yù)設(shè)規(guī)則選擇隊列服務(wù)器,當發(fā)送消息時,每個集群端作為發(fā)送端擇相應(yīng)的隊列服務(wù)器將消息采用分布式隊列方式進行異步傳送;當需處理任務(wù)時,每個集群端作為監(jiān)聽端則創(chuàng)建監(jiān)聽線程,設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器,以異步方式處理任務(wù);以及隊列服務(wù)器端,包含多個隊列服務(wù)器,其用于接收每個集群端發(fā)送的異步消息及存儲需處理的任務(wù)。進一步地,該多個集群端采用分布式部署。進一步地,該預(yù)設(shè)規(guī)則為基于權(quán)重的輪詢調(diào)度算法。進一步地,該隊列服務(wù)器端還利用日志文件記錄每個任務(wù)的相關(guān)信息。為達到上述及其他目的,本發(fā)明提供一種處理異步消息的系統(tǒng)之發(fā)送消息的方法,包括如下步驟創(chuàng)建套接字發(fā)送端;接收客戶端發(fā)送的消息;檢查套接字連接池是否存在;
4
若存在,則使用原有套接字連接池,否則,則創(chuàng)建新的套接字連接池;根據(jù)基于權(quán)重的負載檢查連接的可用性,若不可用,則自動重新連接;選擇一套接字連接池;創(chuàng)建發(fā)送消息任務(wù)并將任務(wù)放入任務(wù)池中;以及異步發(fā)送套接字消息。進一步地,當連接斷掉、網(wǎng)絡(luò)異?;蜿犃蟹?wù)器端異常時,該連接不可用。進一步地,當于異步發(fā)送消息時發(fā)送端發(fā)生異常時,該發(fā)送端將該任務(wù)重新放入任務(wù)池中,重新發(fā)送。進一步地,于發(fā)送過程中,若因網(wǎng)絡(luò)問題導致連接超時或服務(wù)器端處理任務(wù)超時或讀取響應(yīng)信息超時,該發(fā)送端重新將該任務(wù)放入任務(wù)池中發(fā)送。進一步地,該發(fā)送端連接池中的每個連接不與具體隊列綁定,在該發(fā)送端發(fā)送時會動態(tài)設(shè)置連接所使用的隊列名稱。為達到上述及其他目的,本發(fā)明提供一種處理異步消息的系統(tǒng)之監(jiān)聽處理任務(wù)的方法,包括如下步驟創(chuàng)建監(jiān)聽線程,設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器;各監(jiān)聽線程循環(huán)監(jiān)聽隊列服務(wù)器;于有任務(wù)處理時相應(yīng)的客戶端接受任務(wù);刪除隊列服務(wù)器端的該任務(wù);客戶端處理該任務(wù);于處理成功后刪除任務(wù)文件。進一步地,客戶端接受任務(wù)后還包括如下步驟判斷任務(wù)文件中是否有該任務(wù)存在;若有,則刪除隊列服務(wù)器端的該任務(wù),否則將該任務(wù)寫入任務(wù)文件。進一步地,若該客戶端處理該任務(wù)失敗三次以上,則將該任務(wù)寫入失敗隊列,并啟動一定時器定時處理失敗隊列中的任務(wù),同時刪除該任務(wù)文件。進一步地,于處理成功后刪除任務(wù)文件后,還包括記錄日志到日志文件的步驟。進一步地,對于每個隊列服務(wù)器端,采用單線程循環(huán)監(jiān)聽多隊列的任務(wù)。與現(xiàn)有技術(shù)相比,本發(fā)明一種處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法,其通過利用分布式異步隊列方式傳送異步消息,實現(xiàn)了高效、可靠的異步消息傳輸,同時本發(fā)明通過分布式集群結(jié)構(gòu),具有擴展性強、完備的容錯機制、使用方便,維護成本低、監(jiān)控管理方便等優(yōu)點。


圖I為本發(fā)明一種處理異步消息的系統(tǒng)之較佳實施例的系統(tǒng)架構(gòu)圖;圖2為本發(fā)明一種處理異步消息的系統(tǒng)發(fā)送消息的方法之較佳實施例的步驟流程圖;圖3為本發(fā)明一種處理異步消息的系統(tǒng)監(jiān)聽處理任務(wù)的方法之較佳實施例的步驟流程圖。
具體實施例方式以下通過特定的具體實例并結(jié)合

本發(fā)明的實施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭示的內(nèi)容輕易地了解本發(fā)明的其它優(yōu)點與功效。本發(fā)明亦可通過其它不同的具體實例加以施行或應(yīng)用,本說明書中的各項細節(jié)亦可基于不同觀點與應(yīng)用,在不背離本發(fā)明的精神下進行各種修飾與變更。圖I為本發(fā)明一種處理異步消息的系統(tǒng)之較佳實施例的系統(tǒng)架構(gòu)圖。如圖I所示, 本發(fā)明一種處理異步消息的系統(tǒng),其主要利用分布式異步隊列處理異步消息,至少包括多個集群端110及隊列服務(wù)器端120。其中每個集群端110采用分布式部署,每個集群端110均包含有應(yīng)用服務(wù)器及多個客戶端,每個客戶端會根據(jù)基于權(quán)重的roundrobin (輪詢調(diào)度)算法選擇隊列服務(wù)器, 當發(fā)送消息時,每個集群端110作為發(fā)送端選擇相應(yīng)的隊列服務(wù)器將消息采用分布式隊列方式進行異步傳送;當需處理任務(wù)時,每個集群端110作為監(jiān)聽端則創(chuàng)建監(jiān)聽線程,設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器,以異步方式處理任務(wù);隊列服務(wù)器120包含多個隊列服務(wù)器, 其用于接收集群端110發(fā)送的異步消息及需處理的任務(wù),較佳的,隊列服務(wù)器還利用日志 (binlog)記錄每個任務(wù)的相關(guān)信息。圖2為本發(fā)明一種處理異步消息的系統(tǒng)發(fā)送消息的方法之較佳實施例的步驟流程圖。如圖2所示,本發(fā)明一種處理異步消息的系統(tǒng)發(fā)送消息的方法,包括如下步驟步驟201,創(chuàng)建Socket (套接字)發(fā)送端;步驟202,接受客戶端發(fā)送的消息;步驟203,檢查套接字連接池是否存在;步驟204,若存在,則使用原有套接字連接池;若不存在,則創(chuàng)建新的套接字連接池;步驟205,檢查各連接池是否可用;步驟206,若可用,則檢查是否有隊列服務(wù)器斷開;否則若不可用,則刪除失效的連接,并檢查是否有隊列服務(wù)器斷開;步驟207,若有隊列服務(wù)器斷開,則創(chuàng)建新的連接,并進入步驟215 ;否則若沒有隊列服務(wù)器斷開,則進入步驟208 ;步驟208,根據(jù)負載均衡,選擇一個套接字連接池;步驟209,設(shè)置發(fā)送端的隊列名稱;步驟210,創(chuàng)建發(fā)送消息的任務(wù)(task);步驟211,將發(fā)送消息的任務(wù)(task)放入任務(wù)池中;步驟212,異步發(fā)送Socket (套接字)消息;步驟213,判斷是否發(fā)送成功;步驟214,若發(fā)送成功,則返回消息隊列;否則返回步驟202 ;步驟215,判斷新的連接是否創(chuàng)建成功;步驟216,若創(chuàng)建成功,則將新的連接放入套接字連接池,并轉(zhuǎn)向步驟208 ;若創(chuàng)建不成功,則直接轉(zhuǎn)向步驟208。較佳的,當于異步發(fā)送消息時發(fā)送端發(fā)生異常,則發(fā)送端會將任務(wù)(task)重新放入任務(wù)(task)池中,重新發(fā)送;若發(fā)送過程中因連接問題導致發(fā)送失敗,也會將此任務(wù)重新放入任務(wù)池中發(fā),并可采用優(yōu)先級,延遲、超時等控制發(fā)送的相關(guān)細節(jié),即發(fā)送過程中,若因網(wǎng)絡(luò)問題導致連接超時或服務(wù)器端處理任務(wù)超時,或讀取響應(yīng)信息超市,那么該任務(wù)會認為發(fā)送失敗,會被重新放入任務(wù)池中發(fā)送。需說明的是,在本發(fā)明較佳實施例中,發(fā)送端連接(connection)池中的每個連接并不和具體隊列綁定,在發(fā)送端發(fā)送時會動態(tài)設(shè)置連接所使用的隊列名稱,此處的連接 (connection)是獨占式的。綜上所述,本發(fā)明在每次發(fā)送任務(wù)(task)時,會將任務(wù)(task)放入任務(wù)(task) 池中,同時調(diào)用發(fā)送端(sender)發(fā)送任務(wù)(task)。發(fā)送端(sender)會根據(jù)基于權(quán)重的負載,自動檢查連接(connection)的可用性,如發(fā)現(xiàn)connection斷掉,或網(wǎng)絡(luò)異常,或隊列服務(wù)器端異常等導致連接(connection)不可用時,會定時自動重連;同時每次若連接失敗, 會將任務(wù)(task)使用連接(connection)池中的其它連接發(fā)送。圖3為本發(fā)明一種處理異步消息的系統(tǒng)監(jiān)聽處理任務(wù)的方法之較佳實施例的步驟流程圖。如圖3所示,本發(fā)明一種處理異步消息的系統(tǒng)監(jiān)聽處理任務(wù)的方法,包括如下步驟步驟301,創(chuàng)建監(jiān)聽線程,設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器;步驟302,各監(jiān)聽線程循環(huán)監(jiān)聽隊列服務(wù)器;步驟303,判斷是否有任務(wù)處理;步驟304,若有任務(wù)處理,則客戶端接受任務(wù),否則繼續(xù)監(jiān)聽隊列服務(wù)器;步驟305,判斷任務(wù)文件中任務(wù)是否存在,步驟306,若不存在,則將任務(wù)寫入任務(wù)文件,進入步驟307,否則直接進入步驟 307 ;步驟307,刪除隊列服務(wù)器端的任務(wù);步驟308,判斷刪除結(jié)果;步驟309,若刪除成功,則由客戶端處理任務(wù),否則轉(zhuǎn)至步驟302 ;步驟310,檢查客戶端處理任務(wù)的結(jié)果;步驟311,若處理成功,則刪除任務(wù)文件,若失敗,則客戶端繼續(xù)重新處理任務(wù);步驟312,記錄日志到日志文件,并轉(zhuǎn)至步驟302。較佳的,若客戶端處理任務(wù)累計失敗三次,則將任務(wù)寫入失敗隊列,并啟動一定時器定時處理失敗隊列中的任務(wù),同時刪除任務(wù)文件。在本發(fā)明較佳實施例中,對于對于每個隊列服務(wù)器端,都會采用單線程循環(huán)監(jiān)聽多隊列的任務(wù),同時在每個任務(wù)被客戶端成功處理后,會刪除服務(wù)器端的任務(wù)(task)。于本發(fā)明之較佳實施例中,監(jiān)聽線程因網(wǎng)絡(luò)問題或客戶端應(yīng)用異?;蜿犃蟹?wù)器端異常時,會定時重新連接隊列服務(wù)器端,監(jiān)聽客戶端在處理task時因自身程序或數(shù)據(jù)庫等異常時,會重新嘗試著處理該任務(wù),默認三次失敗后會將該任務(wù)加入到失敗隊列(fail queue)中,同時寫入日志文件中,然后通過定時器定時處理該任務(wù)處理成功后會刪除對應(yīng)日志文件中的文件記錄;刪除隊列服務(wù)器端任務(wù)時若發(fā)生異常,說明客戶端處理該任務(wù)失敗,會重新從服務(wù)器端監(jiān)聽該任務(wù)然后再處理。綜上所述,本發(fā)明一種處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法, 其通過利用分布式異步隊列方式傳送異步消息,實現(xiàn)了高效、可靠的異步消息傳輸,同時本
7發(fā)明通過分布式集群結(jié)構(gòu),具有擴展性強、完備的容錯機制、使用方便,維護成本低、監(jiān)控管理方便等優(yōu)點。上述實施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何本領(lǐng)域技術(shù)人員均可在不違背本發(fā)明的精神及范疇下,對上述實施例進行修飾與改變。因此, 本發(fā)明的權(quán)利保護范圍,應(yīng)如權(quán)利要求書所列。
權(quán)利要求
1.一種處理異步消息的系統(tǒng),利用分布式異步隊列處理異步消息,其至少包括多個集群端,每個集群端均包含應(yīng)用服務(wù)器及多個客戶端,每個客戶端根據(jù)預(yù)設(shè)規(guī)則選擇隊列服務(wù)器,當發(fā)送消息時,每個集群端作為發(fā)送端擇相應(yīng)的隊列服務(wù)器將消息采用分布式隊列方式進行異步傳送;當需處理任務(wù)時,每個集群端作為監(jiān)聽端則創(chuàng)建監(jiān)聽線程, 設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器,以異步方式處理任務(wù);以及隊列服務(wù)器端,包含多個隊列服務(wù)器,其用于接收每個集群端發(fā)送的異步消息及存儲需處理的任務(wù)。
2.如權(quán)利要求I所述的處理異步消息的系統(tǒng),其特征在于該多個集群端采用分布式部署。
3.如權(quán)利要求I所述的處理異步消息的系統(tǒng),其特征在于該預(yù)設(shè)規(guī)則為基于權(quán)重的輪詢調(diào)度算法。
4.如權(quán)利要求I所述的處理異步消息的系統(tǒng),其特征在于該隊列服務(wù)器端還利用日志文件記錄每個任務(wù)的相關(guān)信息。
5.一種處理異步消息的系統(tǒng)之發(fā)送消息的方法,包括如下步驟創(chuàng)建套接字發(fā)送端;接收客戶端發(fā)送的消息;檢查套接字連接池是否存在;若存在,則使用原有套接字連接池,否則,則創(chuàng)建新的套接字連接池;根據(jù)基于權(quán)重的負載檢查連接的可用性,若不可用,則自動重新連接;選擇一套接字連接池;創(chuàng)建發(fā)送消息任務(wù)并將任務(wù)放入任務(wù)池中;以及異步發(fā)送套接字消息。
6.如權(quán)利要求5所述的處理異步消息的系統(tǒng)之發(fā)送消息的方法,其特征在于當連接斷掉、網(wǎng)絡(luò)異?;蜿犃蟹?wù)器端異常時,連接不可用。
7.如權(quán)利要求5所述的處理異步消息的系統(tǒng)之發(fā)送消息的方法,其特征在于當于異步發(fā)送消息時發(fā)送端發(fā)生異常時,該發(fā)送端將該任務(wù)重新放入任務(wù)池中,重新發(fā)送。
8.如權(quán)利要求5所述的處理異步消息的系統(tǒng)之發(fā)送消息的方法,其特征在于于發(fā)送過程中,若因網(wǎng)絡(luò)問題導致連接超時或服務(wù)器端處理任務(wù)超時或讀取響應(yīng)信息超時,該發(fā)送端重新將該任務(wù)放入任務(wù)池中發(fā)送。
9.如權(quán)利要求5所述的處理異步消息的系統(tǒng)之發(fā)送消息的方法,其特征在于該發(fā)送端連接池中的每個連接不與具體隊列綁定,在該發(fā)送端發(fā)送時會動態(tài)設(shè)置連接所使用的隊列名稱。
10.一種處理異步消息的系統(tǒng)之監(jiān)聽處理任務(wù)的方法,包括如下步驟創(chuàng)建監(jiān)聽線程,設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器;各監(jiān)聽線程循環(huán)監(jiān)聽隊列服務(wù)器;于有任務(wù)處理時相應(yīng)的客戶端接受任務(wù);刪除隊列服務(wù)器端的該任務(wù);客戶端處理該任務(wù);于處理成功后刪除任務(wù)文件。
11.如權(quán)利要求10所述的處理異步消息的系統(tǒng)之監(jiān)聽處理任務(wù)的方法,其特征在于, 客戶端接受任務(wù)后還包括如下步驟判斷任務(wù)文件中是否有該任務(wù)存在;若有,則刪除隊列服務(wù)器端的該任務(wù),否則將該任務(wù)寫入任務(wù)文件。
12.如權(quán)利要求10所述的處理異步消息的系統(tǒng)之監(jiān)聽處理任務(wù)的方法,其特征在于 若該客戶端處理該任務(wù)失敗三次以上,則將該任務(wù)寫入失敗隊列,并啟動一定時器定時處理失敗隊列中的任務(wù),同時刪除該任務(wù)文件。
13.如權(quán)利要求10所述的處理異步消息的系統(tǒng)之監(jiān)聽處理任務(wù)的方法,其特征在于 于處理成功后刪除任務(wù)文件后,還包括記錄日志到日志文件的步驟。
14.如權(quán)利要求10所述的處理異步消息的系統(tǒng)之監(jiān)聽處理任務(wù)的方法,其特征在于 對于每個隊列服務(wù)器端,采用單線程循環(huán)監(jiān)聽多隊列的任務(wù)。
全文摘要
本發(fā)明公開一種處理異步消息的系統(tǒng)及其發(fā)送消息、監(jiān)聽處理任務(wù)的方法,該系統(tǒng)包括多個集群端,每個集群端均包含應(yīng)用服務(wù)器及多個客戶端,每個客戶端根據(jù)預(yù)設(shè)規(guī)則選擇隊列服務(wù)器,當發(fā)送消息時,每個集群端作為發(fā)送端擇相應(yīng)的隊列服務(wù)器將消息采用分布式隊列方式進行異步傳送;當需處理任務(wù)時,每個集群端作為監(jiān)聽端則創(chuàng)建監(jiān)聽線程,設(shè)置監(jiān)聽隊列和監(jiān)聽隊列服務(wù)器,以異步方式處理任務(wù);以及隊列服務(wù)器端,包含多個隊列服務(wù)器,其用于接收每個集群端發(fā)送的異步消息及存儲需處理的任務(wù),通過本發(fā)明,可實現(xiàn)高效、可靠的異步消息傳輸,同時本發(fā)明具有擴展性強、完備的容錯機制、使用方便、維護成本低、監(jiān)控管理方便等優(yōu)點。
文檔編號H04L12/26GK102611642SQ20121004506
公開日2012年7月25日 申請日期2012年2月27日 優(yōu)先權(quán)日2012年2月27日
發(fā)明者俞曉鴻 申請人:杭州閃亮科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
如皋市| 武安市| 台中县| 花垣县| 鄱阳县| 广南县| 南郑县| 贵南县| 容城县| 左权县| 黄骅市| 丽水市| 朝阳县| 汉中市| 徐汇区| 什邡市| 江西省| 隆德县| 河西区| 武川县| 洱源县| 延安市| 万载县| 齐河县| 顺昌县| 交城县| 娄烦县| 临潭县| 西林县| 临沂市| 阿拉善左旗| 施甸县| 土默特左旗| 鹤庆县| 台中县| 庆云县| 日喀则市| 旺苍县| 汾西县| 开化县| 清镇市|