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關閉這個經常,現在你可以嘗試不停的在發送消息的終端輸入内容,你就會在消費消息的終端輸出内容。