日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種去中心化的消息服務(wù)系統(tǒng)的制作方法_2

文檔序號:8301517閱讀:來源:國知局
和故障轉(zhuǎn)移等功能。
【附圖說明】
[0016]圖1和圖2為現(xiàn)有的集中式消息服務(wù)系統(tǒng)的結(jié)構(gòu)示意圖。
[0017]圖3為本發(fā)明消息服務(wù)系統(tǒng)的結(jié)構(gòu)示意圖。
[0018]圖4為服務(wù)節(jié)點的內(nèi)部結(jié)構(gòu)。
[0019]圖5為集群節(jié)點管理模塊內(nèi)的數(shù)據(jù)存儲結(jié)構(gòu)示意圖。
【具體實施方式】
[0020]下面參照附圖結(jié)合實施例對本發(fā)明作進(jìn)一步的說明。
[0021]請參閱圖3和圖4,一種去中心化的消息服務(wù)系統(tǒng),所述消息服務(wù)系統(tǒng)為一集群,所述集群內(nèi)包含復(fù)數(shù)個服務(wù)節(jié)點,每個服務(wù)節(jié)點由一集群節(jié)點管理模塊、一消息發(fā)送端模塊、一消息路由模塊、一消息編碼模塊、一消息解碼模塊、一消息分發(fā)模塊以及至少一消息處理器模塊組成;各所述服務(wù)節(jié)點通過發(fā)送消息進(jìn)行交互,所述服務(wù)節(jié)點或作為服務(wù)提供者,或作為服務(wù)消費者,或同時作為服務(wù)提供者和服務(wù)消費者;
所述集群節(jié)點管理模塊負(fù)責(zé)跟蹤和維護(hù)集群中所有服務(wù)節(jié)點的基本信息和服務(wù)狀態(tài)信息,其及時偵測到集群中服務(wù)節(jié)點的添加、刪除或服務(wù)狀態(tài)改變,并且更新其中緩存的數(shù)據(jù),所述集群節(jié)點管理模塊還為消息路由模塊中消息的發(fā)送對象提供決策數(shù)據(jù);
所述服務(wù)節(jié)點的基本信息包括:集群ID、節(jié)點ID、服務(wù)名稱和服務(wù)地址,所述集群ID:同一個消息服務(wù)系統(tǒng)中的每一個服務(wù)節(jié)點的集群ID相同,用于標(biāo)識服務(wù)節(jié)點所屬的集群;所述節(jié)點ID:用于唯一標(biāo)識集群中的一個服務(wù)節(jié)點,同一個消息服務(wù)系統(tǒng)中的每一個服務(wù)節(jié)點的節(jié)點ID必須唯一;所述服務(wù)名稱用于標(biāo)識每個服務(wù)節(jié)點所能提供的服務(wù),每一種服務(wù)至少由一個服務(wù)節(jié)點提供,因此,服務(wù)節(jié)點的服務(wù)名稱是可以相同的;服務(wù)地址:各服務(wù)節(jié)點的服務(wù)地址是對集群內(nèi)其他服務(wù)節(jié)點提供的訪問方式,各服務(wù)節(jié)點間通過服務(wù)地址相互通信和交互;
所述消息發(fā)送端模塊是服務(wù)節(jié)點內(nèi)部向集群中其他服務(wù)節(jié)點發(fā)送消息的統(tǒng)一的接口端,服務(wù)節(jié)點對外發(fā)出的消息都是通過調(diào)用消息發(fā)送端模塊來發(fā)送的;
所述消息路由模塊:在所述消息發(fā)送模塊接收到消息后,由消息路由模塊決定該消息發(fā)往集群中的一個或多個服務(wù)節(jié)點,消息路由模塊對消息路由決策依賴所述集群節(jié)點管理模塊提供的數(shù)據(jù);根據(jù)集群中服務(wù)節(jié)點所能提供的服務(wù)以及服務(wù)負(fù)載等狀態(tài)信息,決定消息應(yīng)該發(fā)往哪個或那些服務(wù)節(jié)點;
所述消息編碼模塊:消息編碼模塊對待發(fā)送的消息進(jìn)行編程成二進(jìn)制數(shù)據(jù)流,通過傳輸層模塊進(jìn)行傳輸;
所述傳輸層模塊負(fù)責(zé)與其它服務(wù)節(jié)點的連接建立和維護(hù),以及服務(wù)節(jié)點間數(shù)據(jù)發(fā)送和接收;
所述消息解碼模塊對傳輸層接收到的二進(jìn)制數(shù)據(jù)流進(jìn)行解碼,得到具體的消息;
所述消息分發(fā)模塊對接收到的消息進(jìn)行判斷,判斷該消息該發(fā)送至服務(wù)節(jié)點內(nèi)的哪一個消息處理器模塊進(jìn)行處理;
所述消息處理器模塊負(fù)責(zé)對接收到的消息進(jìn)行處理,各所述消息處理器模塊處理至少一種類型的消息,所述消息處理器模塊將接收到的消息處理完畢后,調(diào)用所述消息發(fā)送端模塊將處理后得到的結(jié)果發(fā)送出去。
[0022]所述集群節(jié)點管理模塊存儲集群中所有服務(wù)節(jié)點的基本信息和服務(wù)狀態(tài)信息,集群節(jié)點管理模塊內(nèi)的數(shù)據(jù)存儲結(jié)構(gòu)如圖5所示,以樹型結(jié)構(gòu)來存儲服務(wù)和節(jié)點等數(shù)據(jù)。集群中存在一至多個服務(wù),而每一個服務(wù)可以由一至多個節(jié)點來提供,每一個節(jié)點內(nèi)存儲該節(jié)點的服務(wù)地址、節(jié)點ID和服務(wù)狀態(tài)等信息。集群節(jié)點管理模塊存儲的數(shù)據(jù)為消息路由模塊提供路由決策支持。隨著集群內(nèi)服務(wù)節(jié)點的添加、刪除以及服務(wù)狀態(tài)改變,集群節(jié)點管理模塊存儲的數(shù)據(jù)會及時更新。
[0023]由于集群內(nèi)同一種服務(wù)可以由多個節(jié)點來提供,如圖5所示,服務(wù)SI可以由節(jié)點
N1UN12.....Nln來提供,消息路由模塊在決定屬于某一服務(wù)類型的消息該往哪個服務(wù)節(jié)點發(fā)送時,可以提供多種路由機(jī)制供選擇,其中包括: I)隨機(jī)機(jī)制:隨機(jī)選擇一個服務(wù)節(jié)點發(fā)送消息。
[0024]2)輪詢機(jī)制:將消息依次輪流往其中一個服務(wù)節(jié)點發(fā)送。
[0025]3)負(fù)載加權(quán)機(jī)制:將消息往負(fù)載壓力較小的服務(wù)節(jié)點發(fā)送。
[0026]4)廣播機(jī)制:將消息往所有服務(wù)節(jié)點發(fā)送。
[0027]請再參閱圖4,任意兩所述服務(wù)節(jié)點之間進(jìn)行消息交互,定義其中一服務(wù)節(jié)點為服務(wù)節(jié)點A,另一服務(wù)節(jié)點為服務(wù)節(jié)點B,其交互過程如下:
步驟1、服務(wù)節(jié)點A通過所述消息發(fā)送端模塊將消息發(fā)送出去;
步驟2、服務(wù)節(jié)點A的消息路由模塊根據(jù)消息的屬性和集群節(jié)點管理模塊提供的集群內(nèi)所有服務(wù)節(jié)點的基礎(chǔ)信息和服務(wù)狀態(tài)信息,得出結(jié)論該消息應(yīng)該發(fā)往服務(wù)節(jié)點B ;
步驟3、服務(wù)節(jié)點A的消息編碼模塊將待發(fā)送的消息編碼成二進(jìn)制數(shù)據(jù)流,并且通過傳輸層模塊發(fā)往服務(wù)節(jié)點B。
[0028]步驟4、服務(wù)節(jié)點B的傳輸層模塊接收到來自服務(wù)節(jié)點A的二進(jìn)制數(shù)據(jù)流;
步驟5、服務(wù)節(jié)點B的消息解碼模塊將接收到的二進(jìn)制數(shù)據(jù)流解碼成消息對象;
步驟6、服務(wù)節(jié)點B的消息分發(fā)模塊將接收到的消息根據(jù)消息類型決定將消息發(fā)往與該消息類型相匹配的消息處理器模塊進(jìn)行處理;
步驟7、服務(wù)節(jié)點B的消息處理器模塊將接收到的消息處理完畢之后,將處理后的結(jié)果通過消息發(fā)送端模塊發(fā)出;
步驟8、服務(wù)節(jié)點B將結(jié)果消息發(fā)往服務(wù)節(jié)點A的過程與消息從服務(wù)節(jié)點A發(fā)往服務(wù)節(jié)點B的步驟同理。
[0029]本發(fā)明消息服務(wù)系統(tǒng)中的服務(wù)節(jié)點可以動態(tài)地添加和刪除,而且系統(tǒng)也能夠自動地感知服務(wù)節(jié)點的添加和刪除,從而提供自適應(yīng)的和可擴(kuò)展的消息服務(wù),具體實現(xiàn)過程如下:
所述消息服務(wù)系統(tǒng)中服務(wù)節(jié)點動態(tài)添加,具體步驟如下:
步驟10、新添加的服務(wù)節(jié)點在運行后,通過網(wǎng)絡(luò)發(fā)布一條“添加節(jié)點”的廣播消息,該廣播消息包含新添加的服務(wù)節(jié)點的基本信息,包括:集群ID、節(jié)點ID、服務(wù)名稱和服務(wù)地址;所述廣播消息的發(fā)送過程與圖4所示流程相同,廣播消息通過消息發(fā)送端模塊將消息發(fā)送出去,消息路由模塊根據(jù)消息的屬性和集群節(jié)點管理模塊提供的集群內(nèi)所有服務(wù)節(jié)點的基礎(chǔ)信息和服務(wù)狀態(tài)信息,得出結(jié)論該消息應(yīng)該發(fā)送至消息服務(wù)系統(tǒng)中所有服務(wù)節(jié)點,其消息編碼模塊將待發(fā)送的消息編碼成二進(jìn)制數(shù)據(jù)流,并且通過傳輸層模塊發(fā)送;
步驟20、消息服務(wù)系統(tǒng)中已經(jīng)存在的每一個服務(wù)節(jié)點在收到“添加節(jié)點”的廣播消息后,首先判斷新添加的服務(wù)節(jié)點的集群ID與自身的集群ID是否相同,如果集群ID不同,則不再處理;如果集群ID相同,則將新添加的服務(wù)節(jié)點的基本信息記錄到其集群節(jié)點管理模塊中;所述服務(wù)節(jié)點接收“添加節(jié)點”的廣播消息的過程如圖4所示,由傳輸層模塊接收廣播消息,由消息解碼模塊進(jìn)行解碼,消息分發(fā)模塊將接收到的消息根據(jù)消息類型將消息發(fā)往與該消息類型相匹配的消息處理器模塊進(jìn)行處理;
步驟30、消息服務(wù)系統(tǒng)中已經(jīng)存在的每一個服務(wù)節(jié)點根據(jù)新添加的服務(wù)節(jié)點的服務(wù)地址,主動與新添加的服務(wù)節(jié)點建立一條通信連接,并且向新添加的服務(wù)節(jié)點發(fā)送一個握手消息,將該服務(wù)節(jié)點的基本信息發(fā)送給新添加的服務(wù)節(jié)點;
步驟40、新添加的服務(wù)節(jié)點將收到的來自同一集群的其他服務(wù)節(jié)點的基本信息記錄到其集群節(jié)點管理模塊中,從而完成了動態(tài)添加過程。
[0030]所消息服務(wù)系統(tǒng)中的每兩個服務(wù)節(jié)點之間都維護(hù)著一個通信連接,兩個服務(wù)節(jié)點以固定時間間隔發(fā)送心跳信息,用以告知對方各自服務(wù)節(jié)點的服務(wù)狀態(tài),包括:服務(wù)節(jié)點是否存活和壓力負(fù)載,所述固定的時間間隔根據(jù)實際需要設(shè)置;
所述消息服務(wù)系統(tǒng)中動態(tài)刪除一個服務(wù)節(jié)點的過程如下:
步驟100、服務(wù)節(jié)點正常退出,在退出前,該服務(wù)節(jié)點通過網(wǎng)絡(luò)發(fā)布一條“刪除節(jié)點”的廣播消息,該廣播消息包含待刪除的服務(wù)節(jié)點的集群ID和節(jié)點ID ;
步驟200、消息服務(wù)系統(tǒng)中的服務(wù)節(jié)點在收到其他服務(wù)節(jié)點的“刪除節(jié)點”的廣播消息后,通過該廣播消息的集群ID判斷待刪除的服務(wù)節(jié)點是屬于同一集群后,則將待刪除節(jié)點的基本信息從該服務(wù)節(jié)點的集群節(jié)點管理模塊中刪除,并且斷開與待刪除節(jié)點的通信連接,后續(xù)則不再往刪除的服務(wù)節(jié)點發(fā)送消息。
[0031]所述消息服務(wù)系
當(dāng)前第2頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1