天天看點

Kafka快速入門

Kafka快速入門

Kafka三大名詞

  • 話題(Topic):是特定類型的消息流。消息是位元組的有效負載(Payload),話題是消息的分類名或種子(Feed)名。
  • 生産者(Producer):是能夠釋出消息到話題的任何對象。已釋出的消息儲存在一組伺服器中,它們被稱為代理(Broker)或Kafka叢集。
  • 消費者:可以訂閱一個或多個話題,并從Broker拉資料,進而消費這些已釋出的消息

Kafka安裝

[root@ linux-node1 ~]# cd /usr/local/src
[root@ linux-node1 src]# wget http://www-eu.apache.org/dist/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
[root@hadoop-node1 src]# tar zxf kafka_2.11-0.9.0.1.tgz 
[root@hadoop-node1 src]# mv kafka_2.11-0.9.0.1 /usr/local/
[root@hadoop-node1 src]# ln -s /usr/local/kafka_2.11-0.9.0.1/ /usr/local/kafka           

Kafka配置:設定Zookeeper位址

[root@hadoop-node1 ~]# vim /usr/local/kafka/config/server.properties
zookeeper.connect=192.168.56.11:2181,192.168.56.12:2181,192.168.56.13:2181           

Kafka啟動

[root@hadoop-node1 kafka]# ./bin/kafka-server-start.sh ./config/server.properties           

Kafka測試

建立一個topic名稱為test,設定一個分區和一個備份

[root@hadoop-node1 ~]# cd /usr/local/kafka/bin/
[root@hadoop-node1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.56.11:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".           

檢視已經存在的topic

[root@hadoop-node1 bin]# ./kafka-topics.sh --list --zookeeper 192.168.56.11:2181
test           

發送消息

Kafka提供了一個指令行的工具,可以從輸入檔案或者指令行中讀取消息并發送給Kafka叢集。每一行是一條消息。

[root@hadoop-node1 bin]# ./kafka-console-producer.sh --broker-list 192.168.56.11:9092 --topic test
This is a message
This is another message           

消費消息

Kafka也提供了一個消費消息的指令行工具。

[root@hadoop-node1 bin]# ./kafka-console-consumer.sh --zookeeper 192.168.99.97:2181 --topic test --from-beginning
This is a message
This is another message           

好的。隻要你不Ctrl+C關閉這個經常,現在你可以嘗試不停的在發送消息的終端輸入内容,你就會在消費消息的終端輸出内容。