Kafka詳解二 如何配置Kafka集群

2021-06-23 00:45:22 字數 3823 閱讀 2174

kafka集群配置比較簡單,為了更好的讓大家理解,在這裡要分別介紹下面三種配置

1. 首先啟動zookeeper服務

kafka本身提供了啟動zookeeper的指令碼(在kafka/bin/目錄下)和zookeeper配置檔案(在kafka/config/目錄下),首先進入kafka的主目錄(可通過 whereis kafka命令查詢到):

[root@localhost kafka-0.8]# bin/zookeeper-server-start.sh config/zookeeper.properties

zookeeper配置檔案的一些重要屬性:

# data directory where the zookeeper snapshot is stored.

datadir=/tmp/zookeeper

# the port listening for client request

clientport=2181

預設情況下,zookeeper伺服器會監聽 2181埠,更詳細的資訊可去zookeeper官網查閱。

2. 啟動kafka broker

執行kafka提供的啟動kafka服務指令碼即可:

[root@localhost kafka-0.8]# bin/kafka-server-start.sh config/server.properties

broker配置檔案中的重要屬性:

# broker的id. 每個broker的id必須是唯一的.

broker.id=0

# 存放log的目錄

log.dir=/tmp/kafka8-logs

# zookeeper 連線串

zookeeper.connect=localhost:2181

3. 建立乙個僅有乙個partition的topic 

[root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 1 --partition 1 --topic kafkatopic

4. 用kafka提供的生產者客戶端啟動乙個生產者程序來傳送訊息

[root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list 

localhost:9092 --topic kafkatopic

其中有兩個引數需要注意:

topic:生產者傳送給哪個topic

然後你就可以輸入一些訊息了,如下圖: 

5. 啟動乙個consumer例項來消費訊息

[root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic kafkatopic --from-beginning

當你執行這個命令之後,你便可以看到控制台上列印出的生產者生產的訊息:

和消費者相關的屬性配置存放在consumer.properties檔案中,重要的屬性有:

# consumer的group id (a string that uniquely identifies a set of consumers

# within the same consumer group) 

groupid=test-consumer-group

# zookeeper 連線串

1.啟動zookeeper 

和上面的一樣

2.啟動kafka的broker

要想在一台機器上啟動多個broker例項,只需要準備多個server.properties檔案即可,比如我們要在一台機器上啟動兩個broker:

首先我們要準備兩個server.properties配置檔案

server-1

brokerid=1

port=9092

log.dir=/temp/kafka8-logs/broker1    

server-2

brokerid=2

port=9093

log.dir=/temp/kafka8-logs/broker2 

然後我們再用這兩個配置檔案分別啟動乙個broker

[root@localhost kafka-0.8]# env jmx_port=9999 bin/kafka-server-start.sh config/server-1.properties

[root@localhost kafka-0.8]# env jmx_port=10000 bin/kafka-server-start.sh config/server-2.properties

可以看到我們啟動是為每個broker都指定了不同的jmx port,jmx port主要用來利用jconsole等工具進行監控和排錯

3.建立乙個topic

現在我們要建立乙個含有兩個partition分割槽和2個備份的broker:

[root@localhost kafka-0.8]# bin/kafka-create-topic.sh --zookeeper localhost:2181 --replica 2 --partition 2 --topic othertopic

4.啟動producer傳送訊息

如果我們要用乙個producer傳送給多個broker,唯一需要改變的就是在broker-list屬性中指定要連線的broker:

[root@localhost kafka-0.8]# bin/kafka-console-producer.sh --broker-list localhost:9092,localhost:9093 --topic othertopic

如果我們要讓不同的producer傳送給不同的broker,我們也僅僅需要為每個producer配置響應的broker-list屬性即可。

5.啟動乙個消費者來消費訊息

和之前的命令一樣

[root@localhost kafka-0.8]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic othertopic --from-beginning

介紹了上面兩種配置方法,再理解集群配置就簡單了,比如我們要配置如下圖所示集群:

zookeeper配置檔案(zookeeper.properties):不變

broker的配置配置檔案(server.properties):按照單節點多例項配置方法在乙個節點上啟動兩個例項,不同的地方是zookeeper的連線串需要把所有節點的zookeeper都連線起來

# zookeeper 連線串

想更深入的了解kafka請參閱我的另一篇文章:

《kafka設計與原理詳解》

Kafka詳解二 如何配置Kafka集群

kafka集群配置比較簡單,為了更好的讓大家理解,在這裡要分別介紹下面三種配置 1.首先啟動zookeeper服務 kafka本身提供了啟動zookeeper的指令碼 在kafka bin 目錄下 和zookeeper配置檔案 在kafka config 目錄下 首先進入kafka的主目錄 可通過 ...

Kafka引數配置詳解

配置引數 引數說明 broker.id 1 每乙個broker在集群中的唯一標示,要求是正數。當該伺服器的 ip位址發生改變時,如果broker.id沒有變化,則不會影響consumer s的訊息情況 log.dirs log kafka logs kafka資料的存放位址,多個位址的話用逗號分割 ...

kafka安裝配置詳解

1.啟動zookeeper,jps quorumpeermain即啟動成功,詳見 2.download kafka from 3.將壓縮檔案上傳至server目錄,解壓 4.進入kafka目錄,執行.bin kafka server start.sh config server.properties...