Apache Kafka安裝和使用(入門教程輕鬆學)

稀有氣體發表於2018-09-20

本入門教程,涵蓋Kafka核心內容,通過例項和大量圖表,幫助學習者理解,任何問題歡迎留言。

目錄:

第二章 Kafka安裝和使用

 

單機環境

官方建議使用JDK 1.8版本,因此本文使用的環境都是JDK1.8。關於JDK的安裝,本文不再詳述,預設Java環境已經具備。

由於Kafka依賴zookeeper,kafka通過zookeeper現實分散式系統的協調,所以我們需要先安裝zookeeper。

接下來我們按照如下步驟,一步步來安裝kafka:

1、下載zookeeper,解壓。

下載地址:https://zookeeper.apache.org/releases.html#download

2、建立zookeeper配置檔案

在zookeeper解壓後的目錄下找到conf資料夾,進入後,複製檔案zoo_sample.cfg,並命名為zoo.cfg

zoo.cfg中一共四個配置項,可以使用預設配置。

3、啟動zookeeper。

進入zookeeper根目錄執行 bin/zkServer.sh start

4、下載kafka,解壓。

kafka 2.0版本下載地址:

https://www.apache.org/dyn/closer.cgi?path=/kafka/2.0.0/kafka_2.11-2.0.0.tgz

5、修改kafka的配置檔案

進入kafka根目錄下的config資料夾下,開啟server.properties,修改如下配置項

zookeeper.connect=localhost:2181

broker.id=0

log.dirs=/tmp/kafka-logs

zookeeper.connect是zookeeper的連結資訊,broker.id是當前kafka例項的id,log.dirs是kafka儲存訊息內容的路徑。

6、啟動kafka

進入kafka根目錄執行 bin/kafka-server-start.sh config/server.properties

此命令告訴kaka啟動時使用config/server.properties配置項

啟動kafka後,如果控制檯沒有報錯資訊,那麼kafka應該已經啟動成功了,我們可以通過檢視zookeeper中相關節點值來確認。步驟如下:

1、啟動zookeeper的client

進入zookeeper根目錄下,執行 bin/zkCli.sh -server 127.0.0.1:2181。啟動成功後如下圖

2、輸入命令 ls /brokers,回車,可以看到如下資訊:

這些子節點儲存的就是kafka叢集管理的資料。broker是kafka的一個服務單元例項

3、我看看一下ids這個節點下的資料,輸入命令 ls /brokers/ids,可以看到如下資訊:

還記得我們在配置單機環境時,修改的kafka配置項broker.id=0 嗎?這裡的0就是表示那個kafka的例項已經加入了kafka叢集。

 

叢集環境

叢集環境的搭建也很簡單,在單機環境的基礎上,讓多個單機連線到同一個zookeeper即可。需要注意兩點:

1、每個例項設定不同的broker.id。

2、如果多個例項部署在同一臺伺服器,還要注意修改log.dirs為不同目錄,確保訊息儲存時不會有衝突。

叢集環境的具體搭建,在此精簡教程中不再做詳細討論。

 

發出你的第一條kafka訊息

我們通過kafka帶的工具來建立一個topic,然後嘗試傳送和消費一個訊息,直觀的去感受下kafka。

1、建立topic

進入kafka根目錄,執行如下命令:

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic study

執行成功後,建立了study這個topic,如下圖所示:

此命令列有幾個引數,分別指明瞭zookeeper的連結資訊,分割槽和副本的數量等。關於分割槽和副本後續會仔細講解,現在不用過多關注。

2、啟動消費者

我們開啟一個消費者並且訂閱study這個topic,執行如下命令:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic study --from-beginning

看到如下圖,游標停留在最前面,沒有任何資訊輸出,說明啟動消費者成功,此時在等待新的訊息。

3、開啟生產者

新開啟一個命令視窗,輸入命令

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic study

啟動成功後,如下圖,等待你輸入新的訊息。

4、傳送你的第一條訊息

在上面生產者的視窗輸入一條訊息 hello kafka,點選回車,如下圖:

此時切換到消費者的視窗,可以看到消費者已經消費到這條訊息,在視窗中列印了出來。

至此我們走完了一個傳送訊息的流程,可以看到我們經歷了建立topic、啟動生產者、消費者、生產者生產訊息、消費者消費訊息,這幾個步驟。

小結:通過本章節學習,相信你已經能夠成功搭建起kafka單機環境,甚至叢集環境。然後通過kafka自帶的工具,直觀的感受了kafka運轉的整個過程。接下來的章節我們將會進入kafka的核心領域,也是本教程的重點章節,只有理解了kafka內在的設計理念和原理,才能做到活學活用。

下一步:開始kafka核心概念的學習

相關文章