本發明專利技術公開了一種分布式消息處理系統及其中的設備和方法。其中消息處理設備包括:存儲信息獲取器,生成消息處理請求,消息處理請求包括所請求處理消息的主題;傳輸接口,將消息處理請求發送給消息管理設備,并接收與該主題相對應的一個或多個存儲分區信息;消息位置管理器,選擇一個或多個存儲分區信息之一,從消息管理設備中獲取所選擇的存儲分區信息對應的當前要處理消息的位置信息;以及消息獲取器,生成消息獲取請求,消息獲取請求包括所請求處理消息的主題、所選擇的存儲分區、該存儲分區的當前要處理消息的位置信息和所要處理的消息大小;傳輸接口將消息獲取請求發送給該存儲分區所在的消息存儲設備,以及接收對應于消息獲取請求的消息。
【技術實現步驟摘要】
本專利技術涉及消息處理領域,具體涉及。
技術介紹
目前用于消息(如日志)處理的消息系統有很多,比較流行的是分布式消息系統。 分布式消息系統的具體形式有很多,如Spread、Kafka等。下面僅以常用的一種分布式消息系統Kafka為例進行說明。Kafka是用于日志處理的分布式消息系統,主要針對日志數據容量大,但對可靠性要求不是很高的業務。這些系統中的日志數據主要包括用戶行為,例如,登錄、瀏覽、點擊、 分享以及喜歡等,還包括系統運行日志,例如,CPU (Central Processing Unit,中央處理器)、內存、磁盤、網絡、系統及進程等的運行狀態。圖I為相關技術中Kafka系統架構示意圖。該Kafka系統包括以下四個角色 Producer (消息產生者,簡稱PD) 11、Broker (簡稱BK) 12、Consumer (消息處理者,簡稱 CS) 13以及Zooke印er(管理者,簡稱ZK) 14,每個角色都可以是多個。Consumer 13在Kafka 系統中負責處理消息;Producer 11在Kafka系統中負責產生消息;Broker 12是Kafka系統中用來存放消息的地方,負責接收Producer 11發來的消息,當Consumer 13有請求時, 將這些消息返回給Consumerl3 ;ZooKeeper 14是一個開放源碼的分布式應用程序協調服務,包含一個簡單的原語集,是Hadoop和Hbase的重要組件,分布式應用可以使用它來實現諸如統一命名服務、配置管理、分布式鎖服務、集群管理等功能。Producer 11發送消息到 Broker 12,消息持久化存儲在Broker 12上,Consumer 13再從Broker 12取得消息進行處理。 Zookeeper 14 用來存儲 Producer 11, Consumer 13,與 Brokerl2 的一些狀態信息。Kafka系統對消息的處理是采用pull (拉)的方式,每次由Consumer 13從Broker 12上獲取要處理的消息。成功處理的消息的位置Offset由Consumerl3來保存。在上述消息處理方式中,Consumer 13需要自己對成功處理的消息的位置Offset 進行管理、保存,Off set—般保存在Consumer 13所屬的消息處理設備的內存或者本地磁盤上,當消息處理設備意外終止或者機器磁盤壞掉后,之前保存的Offset就丟失了。當重新啟動消息處理設備后,將從最近一次保存的Offset、或者從頭開始消費,Consumer 13無法緊接上次成功處理的消息的位置繼續對消息進行處理。
技術實現思路
鑒于上述問題,提出了本專利技術以便提供一種克服上述問題或者至少部分地解決上述問題的分布式消息處理系統及其中的設備和方法。依據本專利技術的一個方面,提供了一種在分布式消息處理系統中的消息管理設備, 該分布式消息處理系統還包括一個或多個消息存儲設備和一個或多個消息處理設備,其中每條消息具有相應的主題,消息存儲設備為相應主題建立一個或者多個存儲分區,并且根據消息的主題將消息存儲在相應主題的存儲分區之一中,消息管理設備包括消息分布狀態存儲器,被配置為至少存儲每個消息存儲設備中有關存儲分區的信息、以及每個存儲分區中有關消息處理設備當前要處理的消息的位置信息;傳輸接口,被配置為接收消息處理設備發送的消息處理請求,消息處理請求至少包括所請求處理消息的主題;分區狀態查詢器,被配置為在消息分布狀態存儲器中查詢與消息處理請求中的主題相對應的存儲分區信息,并經由傳輸接口將所查詢到的存儲分區信息發送給相應消息處理設備;以及消息位置管理器,被配置為處理通過傳輸接口接收的、來自消息處理設備的消息位置查詢請求,從消息分布狀態存儲器中獲取與該消息位置查詢請求中的存儲分區相對應的存儲分區的當前要處理消息的位置信息、并經由傳輸接口發送給相應消息處理設備;以及被配置為處理通過傳輸接口接收的、來自消息處理設備的消息位置更新請求,基于消息位置更新請求中的消息大小,更新消息分布狀態存儲器中、與消息位置更新請求中的存儲分區相對應的存儲分區的當前要處理消息的位置信息。可選的,消息分布狀態存儲器中還存儲有消息處理設備每次所要處理的消息的大小;分區狀態查詢器還被配置為在消息分布狀態存儲器中查詢相應消息處理設備所要處理的消息的大小,并通過傳輸接口發送給相應消息處理設備。根據本專利技術的另一個方面,還提供了一種在分布式消息處理系統中的消息處理設備,該分布式消息處理系統還包括一個或多個消息存儲設備和消息管理設備,其中每條消息具有相應的主題,消息存儲設備為相應主題建立一個或者多個存儲分區,并且根據消息的主題將消息存儲在相應主題的存儲分區之一中,消息管理設備中存儲有每個消息存儲設備中有關存儲分區的信息以及每個存儲分區中當前要處理的消息的位置信息,該消息處理設備包括存儲信息獲取器,被配置為生成消息處理請求,消息處理請求至少包括所請求處理消息的主題;傳輸接口,被配置為將消息處理請求發送給消息管理設備,并接收消息管理設備發送的與消息處理請求中的主題相對應的一個或者多個存儲分區信息;消息位置管理器,被配置為選擇存儲分區信息之一,從消息管理設備中獲取所選擇的存儲分區的當前要處理消息的位置信息;以及消息獲取器,被配置為生成消息獲取請求,消息獲取請求包括所請求處理消息的主題、所選擇的存儲分區、該存儲分區的當前要處理消息的位置信息和所要處理的消息大小;傳輸接口還被配置為將消息獲取器生成的消息獲取請求發送給該存儲分區所在的消息存儲設備,以及接收該存儲分區所在的消息存儲設備發送的對應于消息獲取請求的消息。根據本專利技術的又一個方面,還提供了一種分布式消息處理系統,包括如上的消息管理設備;一個或者多個如上的消息處理設備;以及一個或多個消息存儲設備。根據本專利技術的再一個方面,還提供了一種消息管理方法,該方法適于在分布式消息處理系統中的消息管理設備上執行,該分布式消息處理系統還包括一個或多個消息存儲設備和一個或多個消息處理設備,其中每條消息具有相應的主題,消息存儲設備為相應主題建立一個或者多個存儲分區,并且根據消息的主題將消息存儲在相應主題的存儲分區之一中,消息管理方法包括接收消息處理設備發送的消息處理請求,消息處理請求至少包括所請求處理消息的主題;查詢與消息處理請求中的主題相對應的存儲分區信息,并將所查詢到的存儲分區信息發送給相應消息處理設備,其中,消息管理設備中至少存儲每個消息存儲設備中有關存儲分區的信息、以及每個存儲分區中有關消息處理設備當前要處理的消息的位置信息;以及處理來自消息處理設備的消息位置查詢請求,查詢與該消息位置查詢請求中的存儲分區相對應的存儲分區的當前要處理消息的位置信息、并發送給相應消息處理設備;以及處理來自消息處理設備的消息位置更新請求,基于消息位置更新請求中的消息大小,更新與消息位置更新請求中的存儲分區相對應的存儲分區的當前要處理消息的位置信息。可選的,上述消息管理方法還包括查詢相應消息處理設備所要處理的消息的大小、并發送給相應消息處理設備,其中消息管理設備中還存儲有消息處理設備每次所要處理的消息的大小。根據本專利技術的又一個方面,還提供了一種消息處理方法,該方法適于在分布式消息處理系統中的一本文檔來自技高網...
【技術保護點】
一種在分布式消息處理系統中的消息處理設備,該分布式消息處理系統還包括一個或多個消息存儲設備和消息管理設備,其中每條消息具有相應的主題,消息存儲設備為相應主題建立一個或者多個存儲分區,并且根據消息的主題將消息存儲在相應主題的存儲分區之一中,所述消息管理設備中存儲有每個消息存儲設備中有關存儲分區的信息以及每個存儲分區中當前要處理的消息的位置信息,該消息處理設備包括:存儲信息獲取器,被配置為生成消息處理請求,所述消息處理請求至少包括所請求處理消息的主題;傳輸接口,被配置為將所述消息處理請求發送給所述消息管理設備,并接收所述消息管理設備發送的與所述消息處理請求中的主題相對應的一個或者多個存儲分區信息;消息位置管理器,被配置為選擇所述一個或者多個存儲分區信息之一,從所述消息管理設備中獲取所選擇的存儲分區的當前要處理消息的位置信息;以及消息獲取器,被配置為生成消息獲取請求,所述消息獲取請求包括所請求處理消息的主題、所選擇的存儲分區、該存儲分區的當前要處理消息的位置信息和所要處理的消息大小;所述傳輸接口還被配置為將所述消息獲取器生成的消息獲取請求發送給該存儲分區所在的消息存儲設備,以及接收該存儲分區所在的消息存儲設備發送的對應于所述消息獲取請求的消息。...
【技術特征摘要】
【專利技術屬性】
技術研發人員:代兵,陳超,桂勇哲,朱超,王超,
申請(專利權)人:北京奇虎科技有限公司,奇智軟件北京有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。