一起揭開 Kafka 的神秘面紗

Kafka是由Servers(服務(wù)器)和Clients(客戶端)組成的高吞吐量分布式發(fā)布訂閱消息系統(tǒng),可以部署在裸機、虛擬機以及云環(huán)境上。在我們接觸的很多業(yè)務(wù)場景中都會看到很多Kafka的身影,今日來給大家分享一下Kafka的基本概念以及整體框架情況,首先先來了解一下幾個專業(yè)名詞。

Servers:Kafka作為一個集群運行在一個或多個服務(wù)器上,把一些服務(wù)器作為storage layer(存儲層),稱之為brokers,其他服務(wù)器則運行 Kafka Connect 去持續(xù)性地對數(shù)據(jù)以事件流的形式進行導(dǎo)出導(dǎo)入,與現(xiàn)有的系統(tǒng)進行交互集成。
Clients:允許我們編寫分布式應(yīng)用程序以及微服務(wù),并行地讀取、處理、寫入大規(guī)模的事件流。
Producers:把事件publish(寫入)到Kafka的客戶端應(yīng)用。
Consumers:從Kafka內(nèi)subscribe(讀或者處理)事件的客戶端應(yīng)用。
Topics:為了分門別類,把相關(guān)主題的事件數(shù)據(jù)都放在一起,可以簡單理解Topics為文件夾,event就是里面的文件,一個Topic允許有0個、1個或多個Producers或Consumers。
Consumer Group:每個Consumer屬于一個特定的Consumer Group,同時記得一個Group內(nèi)的Consumer數(shù)量不要大于分區(qū)數(shù)量,因為1個Consumer可以消費多個分區(qū),但1個分區(qū)只能給1個Consumer消費。
Kafka的整體架構(gòu)圖可以看看下圖:

Reference
Kafka官方文檔
http://kafka.apache.org/
