1. 程式人生 > >kafka簡介

kafka簡介

搜索 容錯 sum rod stat 廣播 不同 輸入 connector


kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者規模的網站中所有動作流數據。這種動作(網頁瀏覽、搜索和其他用戶的行動)是現代網絡上的許多社會功能的一個關鍵因素。這些數據通常是由於吞吐量的要求而通過處理日誌和日誌聚合來解決。
kafka名詞解釋
producer:生產者
consumer:消費者
topic: 消息以topic為類別記錄,Kafka將消息種子(Feed)分門別類,每一類的消息稱之為一個主題(Topic)
broker:以集群的方式運行,可以由一個或多個服務組成,每個服務叫做一個broker;消費者可以訂閱一個或多個主題(topic),並從Broker拉數據,從而消費這些已發布的消息
kafka有四個核心API介紹
應用程序使用producer API發布消息到1個或多個topic中
應用程序使用consumer

API來訂閱一個或多個topic,並處理產生的消息
應用程序使用streams API充當一個流處理器,從1個或多個topic消費輸入流,並產生一個輸出流到1個或多個topic,有效地將輸入流轉換到輸出流
connector API允許構建或運行可重復使用的生產者或消費者,將topic鏈接到現有的應用程序或數據系統

kafka基本原理
通常來講,消息模型可以分為兩種:隊列和發布-訂閱式。隊列的處理方式是一組消費者從服務器讀取消息,一條消息只有其中的一個消費者來處理。在發布-訂閱模型中,消息被廣播給所有的消費者,接收到消息的消費者都可以處理此消息。Kafka為這兩種模型提供了單一的消費者抽象模型: 消費者組(consumer

group)。消費者用一個消費者組名標記自己。一個發布在Topic上消息被分發給此消費者組中的一個消費者。假如所有的消費者都在一個組中,那麽這就變成了隊列模型。假如所有的消費者都在不同的組中,那麽就完全變成了發布-訂閱模型。更通用的, 我們可以創建一些消費者組作為邏輯上的訂閱者。每個組包含數目不等的消費者,一個組內多個消費者可以用來擴展性能和容錯。

kafka簡介