Kafka介紹及快速入門

Kafka介紹

APache Kafka 是一個分佈式流平臺。

一個流平臺有三個關鍵能力:
  • 發佈和訂閱消息流,類似於一個消息隊列或企業消息系統。
  • 以容錯持久的方式存儲消息流。
  • 處理髮生的消息流。
Kafka 通常用於兩大類應用程序:
  • 構建在系統或應用程序之間可靠的獲取數據的實時流數據管道。
  • 構建轉換或響應數據流的實時流應用程序。
爲了理解Kafka是如何做到這些的,讓我們自下而上的深入探究Kafka的能力。
首先幾個概念:
  • Kafka 作爲一個集羣跑在一個或多個服務器上,可以跨多個數據中心。
  • Kafka集羣將消息流存儲在稱爲主題的分類中。cluster stores streams of records in categories called topics.
  • 每條記錄由a key, a value, 和 a timestamp組成。
Kafka 有4個核心的 APIs:
  • 生產者API允許一個應用發佈一個流記錄到一個或多個Kafka主題。
  • 消費者API允許一個應用訂閱一個或多個主題,並且處理生產到這些主題的消息流。
  • 流API允許一個應用充當流處理器,消費來自一個或多個主題的輸入流,並向一個或多個主題生成輸出流,有效轉換輸入流爲輸出流。
  • 連接器API允許構建和運行可複用的生產者或消費者,將Kafka主題連接到現有的應用程序或數據系統。例如,一個關係型數據庫的連接器可以捕獲表的所有變更。


Kafka使用簡單、高性能、與語言無關的TCP協議完成客戶端與服務器之間的通信。該協議維持老版本的向後兼容。我們提供了一個Java客戶端,也提供了多種語言的客戶端。


Kafka快速入門

1 下載安裝
tar -xzf kafka_2.11-1.0.0.tgz
cd kafka_2.11-1.0.0

2 啓動服務
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

3 create a topic,創建主題
    創建主題test,僅一個分區、一個副本;
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
    列出主題
bin/kafka-topics.sh --list --zookeeper localhost:2181

4 Send some messages,發送消息
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

5 Start a cnsumer,啓動一個消費者
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

6 Setting up a multi-broker cluster,啓動多代理集羣

爲每個代理創建配置文件
cp config/server.properties config/server-1.properties
cp config/server.properties config/server-2.properties

內容如下:
config/server-1.properties:
    broker.id=1
    listeners=PLAINTEXT://:9093
    log.dir=/tmp/kafka-logs-1
 
config/server-2.properties:
    broker.id=2
    listeners=PLAINTEXT://:9094
    log.dir=/tmp/kafka-logs-2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章