国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      客戶端集群訪問方法及裝置制造方法

      文檔序號:7987432閱讀:181來源:國知局
      客戶端集群訪問方法及裝置制造方法
      【專利摘要】本發(fā)明公開了一種客戶端集群訪問方法及裝置,其方法包括以下步驟:S1:客戶端中的Lookup裝置獲取集群列表;S2:客戶端中的注冊裝置根據(jù)S1的集群列表,建立信息交換區(qū)和連接池;S3:客戶端中的發(fā)送裝置作為生產(chǎn)者發(fā)送消息到信息交換區(qū);S4:客戶端建立“發(fā)送接收”模型;S5:客戶端中的發(fā)送裝置根據(jù)“發(fā)送接收”模型,喚醒所述連接池中的線程并將消息發(fā)送;S6:客戶端中的接收裝置作為接收者接收消息并處理。本發(fā)明通過應用程序獲取集群隊列的列表信息,進行消息的生產(chǎn)和消費,不必關(guān)心服務端集群的數(shù)量,使得集群隊列的數(shù)量變化對客戶端無影響,達到高并發(fā)、海量數(shù)據(jù)傳輸場景下的動態(tài)資源擴展和保持高傳輸性能的效果。
      【專利說明】客戶端集群訪問方法及裝置
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,特別涉及一種客戶端集群訪問方法及裝置,尤其涉及一種消息中間件客戶端集群訪問方法及裝置。
      【背景技術(shù)】
      [0002]消息中間件是一類特定的中間件,它利用高效、可靠的消息傳遞機制進行平臺無關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來進行分布式系統(tǒng)的集成。通過提供消息傳遞和消息排隊模型,它可在分布環(huán)境下擴展進程間的通信,并支持多通信協(xié)議、語言、應用程序、硬件和軟件平臺。
      [0003]傳統(tǒng)的消息中間件集群解決方案,是基于后臺服務節(jié)點的集群模式。其工作流程如下:
      [0004]步驟一:應用程序事先只需知道指定的服務節(jié)點的一個集群隊列名,并向該集群隊列發(fā)送消息。
      [0005]步驟二:服務節(jié)點的集群隊列是邏輯隊列,其集群成員為一系列本地隊列或遠程隊列,其中的每個遠程隊列均映射到一個發(fā)送隊列上。本地隊列和發(fā)送隊列是物理隊列。月艮務節(jié)點的集群隊列接收到一條消息,通過以下分發(fā)方式,將該消息轉(zhuǎn)至不同的物理隊列:
      [0006]分發(fā)方式一:靜態(tài)負載均衡。即通過指定集群成員隊列權(quán)重的方式,按照權(quán)重值,依次將集群隊列接收到的消息,轉(zhuǎn)存至不同的物理隊列。
      [0007]分發(fā)方式二:靜態(tài)備份。即按照集群成員順序,將集群隊列接收到的消息,轉(zhuǎn)存至第一個有效的物理隊列。
      [0008]分發(fā)方式三:動態(tài)負載均衡。即將消息轉(zhuǎn)存至各集群成員隊列中待處理數(shù)據(jù)最少的物理隊列中。
      [0009]分發(fā)方式四:基于消息內(nèi)容的路由方式。即通過解析消息內(nèi)容,將消息轉(zhuǎn)存至指定的物理隊列中。
      [0010]步驟三:處理物理隊列中的消息。對于本地隊列,服務節(jié)點不做處理。對于發(fā)送隊列,服務節(jié)點會將該隊列中的消息,發(fā)送到該發(fā)送隊列對應發(fā)送連接的目標節(jié)點,目標隊列是相應的遠程隊列指定的目的隊列。
      [0011]如圖1所示,四個消息中間件服務節(jié)點(nodel、node2、node3、node4)共同組成了一個節(jié)點集群。其中,節(jié)點nodel部署了一個集群隊列,該集群隊列包含了四個成員隊列(一個本地隊列LQ1,三個遠程隊列RQ1、RQ2、RQ3),其中的三個遠程隊列分別對應另外三個服務節(jié)點。應用程序發(fā)送消息到節(jié)點nodel的集群隊列,服務進程通過上述某種分發(fā)策略,將消息轉(zhuǎn)存至四個成員隊列之一,如果該成員隊列是遠程隊列,則服務進程將消息轉(zhuǎn)發(fā)至對應的其他服務節(jié)點。
      [0012]經(jīng)過上述工作流程,通過后臺服務節(jié)點的部署協(xié)作,消息最終存儲于節(jié)點集群的某一個成員節(jié)點。
      [0013]上述工作流程具有以下幾個特點:[0014]1、應用程序只需要知道配置有集群隊列的服務節(jié)點,以及該節(jié)點上所部署的一個集群隊列。
      [0015]2、從應用程序發(fā)送消息開始到最終存儲,如果集群成員隊列為本地隊列(如LQ),則每條消息需要經(jīng)歷一次網(wǎng)絡傳輸(或IPC傳輸)、一次邏輯轉(zhuǎn)存(從集群隊列到本地隊列);如果集群成員隊列為遠程隊列(如RQ1、RQ2、RQ3中的一個),則每條消息需要經(jīng)歷一次網(wǎng)絡傳輸(或IPC傳輸)、兩次邏輯轉(zhuǎn)存(從集群隊列到遠程隊列,再到該遠程隊列對應的發(fā)送隊列)、一次網(wǎng)絡傳輸(從服務節(jié)點nodel到其他服務節(jié)點)。
      [0016]由于現(xiàn)有的傳統(tǒng)的消息中間件集群解決方案具有上述特點,因此具有下面兩個缺陷:首先在整個集群隊列,對外只有一個入口 ;在網(wǎng)絡帶寬不是瓶頸的場景下,限制了應用程序發(fā)送消息的能力。其次,一條消息從發(fā)送到存儲所經(jīng)過的流程較為復雜;限制了消息從發(fā)送到存儲的效率。

      【發(fā)明內(nèi)容】

      [0017](一)要解決的技術(shù)問題
      [0018]本發(fā)明要解決的技術(shù)問題是,針對現(xiàn)有技術(shù)的不足,提供一種客戶端集群訪問方法及裝置,使得集群隊列的數(shù)量變化對客戶端無影響,達到高并發(fā)、海量數(shù)據(jù)傳輸場景下的動態(tài)資源擴展和保持高傳輸性能
      [0019](二)技術(shù)方案
      [0020]本發(fā)明提供一種客戶端集群訪問方法,包括以下步驟:
      [0021]S1:客戶端中的Lookup裝置獲取集群列表;
      [0022]S2:客戶端中的注冊裝置根據(jù)SI的集群列表,建立信息交換區(qū)和連接池;
      [0023]S3:客戶端中的發(fā)送裝置作為生產(chǎn)者發(fā)送消息到信息交換區(qū);
      [0024]S4:客戶端建立“發(fā)送接收”模型;
      [0025]S5:客戶端中的發(fā)送裝置根據(jù)“發(fā)送接收”模型,喚醒所述連接池中的線程并將消息發(fā)送;
      [0026]S6:客戶端中的接收裝置作為接受者接收消息并處理。
      [0027]其中,SI具體包括:客戶端應用程序通過所述Lookup裝置與服務器進行通訊交互,獲取集群成員列表信息,所述集群成員列表信息包括:節(jié)點集群的各個成員節(jié)點名、ip及端口,以及對應的隊列名稱。
      [0028]其中,S2之前還包括:S2’:客戶端應用程序通過所述Lookup裝置獲取節(jié)點集群的各個成員信息之后,建立和各個成員節(jié)點之間的網(wǎng)絡通道;一個客戶端應用程序可以和同一個成員節(jié)點之間建立多條網(wǎng)絡通道或一個客戶端應用程序和所有的成員節(jié)點之間所建立的所有網(wǎng)絡通道,共同組成了一個客戶端集群連接池,連接池中的每一條連接,對應一個獨立的線程。
      [0029]其中,S2具體包括:客戶端應用程序通過所述注冊裝置創(chuàng)建連接池和一個輕量級的信息交換區(qū),以及一個負責管理不同連接線程的主線程。一個主線程,一個輕量級的信息交換區(qū),一個連接池,共同組成了一個客戶端集群。
      [0030]其中,S3具體包括:客戶端應用程序通過所述發(fā)送裝置發(fā)送消息后,該消息被存放在輕量級的所述信息交換區(qū);所述信息交換區(qū)為一塊共享內(nèi)存。[0031]其中,所述S4具體包括:根據(jù)S3客戶端應用程序作為發(fā)送者向所述信息交換區(qū)存放消息后,客戶端應用程序作為接受者通過所述連接池對應的各個連接線程讀取所述消息交換區(qū)中的消息;所述信息交換區(qū)、客戶端應用程序中的發(fā)送裝置、連接線程,組成“發(fā)送接收”模型。
      [0032]其中,所述S5具體包括:根據(jù)“發(fā)送接收”模型,連接線程從所述信息交換區(qū)讀取一條消息之后,采用正常的消息中間件發(fā)送流程,通過該連接線程所對應的連接通道,將消息發(fā)送至相應的成員節(jié)點并存儲。
      [0033]其中,所述S6具體包括:客戶端應用程序通過接收裝置接收消息時,在創(chuàng)建客戶端集群實例的同時,注冊一個消息處理的回調(diào)函數(shù),連接線程采用正常的消息中間件接受流程接收消息,收到消息后調(diào)用該回調(diào)函數(shù)處理消息。
      [0034]本發(fā)明還提供一種客戶端集群訪問裝置,包括:
      [0035]Lookup裝置,用于從名字服務器獲取集群列表;
      [0036]注冊裝置,用于創(chuàng)建線程連接池,與集群目的節(jié)點建立連接;
      [0037]發(fā)送裝置,發(fā)送消息存放到輕量級的信息交換區(qū),喚醒連接池對應的某個連接線程;
      [0038]接收裝置,用于注冊消息處理的回調(diào)函數(shù)。
      [0039](三)有益效果
      [0040]本發(fā)明提供的客戶端集群訪問方法及裝置,通過應用程序獲取集群隊列的列表信息,進行消息的生產(chǎn)和消費,不必關(guān)心服務端集群的數(shù)量,使得集群隊列的數(shù)量變化對客戶端無影響,達到高并發(fā)、海量數(shù)據(jù)傳輸場景下的動態(tài)資源擴展和保持高傳輸性能的效果。
      【專利附圖】

      【附圖說明】
      [0041]圖1是現(xiàn)有技術(shù)消息中間件集群工作原理圖;
      [0042]圖2是本發(fā)明客戶端集群訪問裝置工作時序原理圖;
      [0043]圖3是本發(fā)明客戶端集群訪問方法步驟圖;
      [0044]圖4是本發(fā)明SI客戶端中的Lookup裝置獲取集群列表工作原理圖;
      [0045]圖5是本發(fā)明SI客戶端中的Lookup裝置獲取集群列表時序原理圖;
      [0046]圖6是本發(fā)明S2客戶端中的注冊裝置建立信息交換區(qū)和連接池時序原理圖;
      [0047]圖7是本發(fā)明S2客戶端中的注冊裝置建立信息交換區(qū)和連接池工作原理圖;
      [0048]圖8是本發(fā)明S5客戶端中的發(fā)送裝置喚醒所述連接池中的線程并將消息發(fā)送工作原理圖;
      [0049]圖9是本發(fā)明S6客戶端中的接收裝置作為接受者接收消息并處理工作原理圖?!揪唧w實施方式】
      [0050]下面結(jié)合附圖和實施例,對本發(fā)明的【具體實施方式】作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
      [0051]如圖2所示,本發(fā)明采用基于內(nèi)存的CQS(Client Queue System,輕量消息隊列系統(tǒng)),該CQS采用鏈表式數(shù)據(jù)結(jié)構(gòu),利用UNIX系統(tǒng)的IPC進程間通訊(共享內(nèi)存、信號燈)技術(shù),使得消息的生產(chǎn)者和消息的消費者可以對消息隊列進行操作,完成應用進程或線程間的數(shù)據(jù)交換??蛻舳思涸L問裝置,包括=Lookup裝置,用于從名字服務器獲取集群列表;注冊裝置,用于創(chuàng)建線程連接池,與集群目的節(jié)點建立連接;發(fā)送裝置,發(fā)送消息存放到輕量級的信息交換區(qū),喚醒連接池對應的某個連接線程;接收裝置,用于注冊消息處理的回調(diào)函數(shù)。
      [0052]如圖3所示,本法提供的一種客戶端集群訪問方法,包括以下步驟:
      [0053]S1:客戶端中的Lookup裝置獲取集群列表;
      [0054]S2:客戶端中的注冊裝置根據(jù)SI的集群列表,建立信息交換區(qū)和連接池;
      [0055]S3:客戶端中的發(fā)送裝置作為生產(chǎn)者發(fā)送消息到信息交換區(qū);
      [0056]S4:客戶端建立“發(fā)送接收”模型;
      [0057]S5:客戶端中的發(fā)送裝置根據(jù)“發(fā)送接收”模型,喚醒所述連接池中的線程并將消息發(fā)送;
      [0058]S6:客戶端中的接收裝置作為接受者接收消息并處理。
      [0059]如圖4-5并參考圖2所示,SI具體包括:
      [0060]客戶端應用程序通過所述Lookup裝置與服務器進行通訊交互,獲取集群成員列表信息,所述集群成員列表信息包括:節(jié)點集群的各個成員節(jié)點名、ip及端口,以及對應的隊列名稱。為了使客戶端應用程序可以識別節(jié)點集群的所有成員,該裝置提供了一個和各集群成員節(jié)點同級別的名字服務器。該名字服務器可以單獨存在,也可以是節(jié)點集群的成
      員之一。
      [0061]如圖6并參考圖2所示,S2之前還包括:S2’:客戶端應用程序通過所述Lookup裝置獲取節(jié)點集群的各個成員信息之后,建立和各個成員節(jié)點之間的網(wǎng)絡通道;一個客戶端應用程序可以和同一個成員節(jié)點之間建立多條網(wǎng)絡通道或一個客戶端應用程序和所有的成員節(jié)點之間所建立的所有網(wǎng)絡通道,共同組成了一個客戶端集群連接池,連接池中的每一條連接,對應一個獨立的線程。
      [0062]如圖7并參考圖2所示,S2具體包括:客戶端應用程序通過所述注冊裝置創(chuàng)建連接池和一個輕量級的信息交換區(qū),以及一個負責管理不同連接線程的主線程。一個主線程,一個輕量級的信息交換區(qū),一個連接池,共同組成了一個客戶端集群。客戶端集群的各個組成部分中,主線程的功能為:定期進行l(wèi)ookup操作,和服務器進行通訊交互,實時獲取節(jié)點集群的有效成員信息列表,并及時維護連接池中各個連接的有效性。
      [0063]其中,S3具體包括:客戶端應用程序通過所述發(fā)送裝置發(fā)送消息后,該消息被存放在輕量級的所述信息交換區(qū);所述信息交換區(qū)為一塊共享內(nèi)存。所述S4具體包括:根據(jù)
      S3客戶端應用程序作為發(fā)送者向所述信息交換區(qū)存放消息后,客戶端應用程序作為接受者通過所述連接池對應的各個連接線程讀取所述消息交換區(qū)中的消息;所述信息交換區(qū)、客戶端應用程序中的發(fā)送裝置、連接線程,組成“發(fā)送接收”模型。
      [0064]如圖8并參考圖2所示,所述S5具體包括:根據(jù)“發(fā)送接收”模型,連接線程從所述信息交換區(qū)讀取一條消息之后,采用正常的消息中間件發(fā)送流程,通過該連接線程所對應的連接通道,將消息發(fā)送至相應的成員節(jié)點并存儲。
      [0065]如圖9所示,所述S6具體包括:客戶端應用程序通過接收裝置接收消息時,在創(chuàng)建客戶端集群實例的同時,注冊一個消息處理的回調(diào)函數(shù),連接線程采用正常的消息中間件接受流程接收消息,收到消息后調(diào)用該回調(diào)函數(shù)處理消息。另外,接收消息還用一種按照優(yōu)先級接收模式,該模式與普通模式不同的地方在于,每個連接線程接收消息時,要按照優(yōu)先級選擇隊列中優(yōu)先級最高的消息,收到消息后,不是直接調(diào)用回調(diào)函數(shù)處理,而是放到一個輕量級的信息交換區(qū),然后選擇交換區(qū)中優(yōu)先級最高的消息調(diào)用回調(diào)函數(shù)處理。
      [0066]以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應由權(quán)利要求限定。
      【權(quán)利要求】
      1.一種客戶端集群訪問方法,其特征在于,包括以下步驟: 51:客戶端中的Lookup裝置獲取集群列表; 52:客戶端中的注冊裝置根據(jù)SI的集群列表,建立信息交換區(qū)和連接池; 53:客戶端中的發(fā)送裝置作為生產(chǎn)者發(fā)送消息到信息交換區(qū); 54:客戶端建立“發(fā)送接收”模型; S5:客戶端中的發(fā)送裝置根據(jù)“發(fā)送接收”模型,喚醒所述連接池中的線程并將消息發(fā)送; S6:客戶端中的接收裝置作為接受者接收消息并處理。
      2.如權(quán)利要求1所述的方法,其特征在于,SI具體包括: 客戶端應用程序通過所述Lookup裝置與服務器進行通訊交互,獲取集群成員列表信息,所述集群成員列表信息包括:節(jié)點集群的各個成員節(jié)點名、ip及端口,以及對應的隊列名稱。
      3.如權(quán)利要求1所述的方法,其特征在于,S2之前還包括: S2’:客戶端應用程序通過所述Lookup裝置獲取節(jié)點集群的各個成員信息之后,建立和各個成員節(jié)點之間的網(wǎng)絡通道;一個客戶端應用程序可以和同一個成員節(jié)點之間建立多條網(wǎng)絡通道或一個客戶端應用程序和所有的成員節(jié)點之間所建立的所有網(wǎng)絡通道,共同組成了一個客戶端集群連接池,連接池中的每一條連接,對應一個獨立的線程。
      4.如權(quán)利要求1所述的方法,其特征在于,S2具體包括: 客戶端應用程序通過所述注冊裝置創(chuàng)建連接池和一個輕量級的信息交換區(qū),以及一個負責管理不同連接線程的主線程。一個主線程,一個輕量級的信息交換區(qū),一個連接池,共同組成了一個客戶端集群。
      5.如權(quán)利要求1所述的方法,其特征在于,S3具體包括: 客戶端應用程序通過所述發(fā)送裝置發(fā)送消息后,該消息被存放在輕量級的所述信息交換區(qū);所述信息交換區(qū)為一塊共享內(nèi)存。
      6.如權(quán)利要求1所述的方法,其特征在于,所述S4具體包括: 根據(jù)S3客戶端應用程序作為發(fā)送者向所述信息交換區(qū)存放消息后,客戶端應用程序作為接受者通過所述連接池對應的各個連接線程讀取所述消息交換區(qū)中的消息;所述信息交換區(qū)、客戶端應用程序中的發(fā)送裝置、連接線程,組成“發(fā)送接收”模型。
      7.如權(quán)利要求1所述的方法,其特征在于,所述S5具體包括: 根據(jù)“發(fā)送接收”模型,連接線程從所述信息交換區(qū)讀取一條消息之后,采用正常的消息中間件發(fā)送流程,通過該連接線程所對應的連接通道,將消息發(fā)送至相應的成員節(jié)點并存儲。
      8.如權(quán)利要求1所述的方法,其特征在于,所述S6具體包括: 客戶端應用程序通過接收裝置接收消息時,在創(chuàng)建客戶端集群實例的同時,注冊一個消息處理的回調(diào)函數(shù),連接線程采用正常的消息中間件接受流程接收消息,收到消息后調(diào)用該回調(diào)函數(shù)處理消息。
      9.一種客戶端集群訪問裝置,其特征在于,包括: Lookup裝置,用于從名字服務器獲取集群列表; 注冊裝置,用于創(chuàng)建線程連接池,與集群目的節(jié)點建立連接;發(fā)送裝置,發(fā)送消息存放到輕量級的信息交換區(qū),喚醒連接池對應的某個連接線程;接收裝置 ,用于注冊消息處理的回調(diào)函數(shù)。
      【文檔編號】H04L29/08GK103873523SQ201210547829
      【公開日】2014年6月18日 申請日期:2012年12月14日 優(yōu)先權(quán)日:2012年12月14日
      【發(fā)明者】張輝 申請人:北京東方通科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1