Kafka核心概念:
下面介紹Kafka相關概念,以便運行下面實例的同時,更好地理解Kafka.
1. Broker
Kafka集群包含一個或多個服務器,這種服務器被稱為broker
2. Topic
每條發布到Kafka集群的消息都有一個類別,這個類別被稱為Topic。(物理上不同Topic的消息分開存儲,邏輯上一個Topic的消息雖然保存於一個或多個broker上但用戶只需指定消息的Topic即可生產或消費數據而不必關心數據存於何處)
3. Partition
Partition是物理上的概念,每個Topic包含一個或多個Partition.
4. Producer
負責發布消息到Kafka broker
5. Consumer
消息消費者,向Kafka broker讀取消息的客戶端。
6. Consumer Group
每個Consumer屬於一個特定的Consumer Group(可為每個Consumer指定group name,若不指定group name則屬於默認的group)
安裝:
1.sudo tar -zxf kafka_2.11-0.11.0.1.tgz -C /usr/local2 (我的Scala是2.11)
2.cd /usr/local2
3. sudo mv ./kafka_2.11-0.11.0.1 ./kafka
4.測試:
4.1啟動zookeeper
cd /usr/local2/kafka
bin/zookeeper-server-start.sh config/zookeeper.properties
4.2 啟動Kafka服務端
bin/kafka-server-start.sh config/server.properties
5.以上都不要關閉,創建topic
./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic soyo
這個topic叫soyo,2181是zookeeper默認的端口號,partition是topic里面的分區數,replication-factor是備份的數量,在kafka集群中使用,這里單機版就不用備份了
6. 查看創建的主題
bin/kafka-topics.sh --list --zookeeper localhost:2181
7.producer生產數據
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic soyo
shell:輸入數據
8.consumer來接收數據
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic dblab --from-beginning
shell:可以看到剛才的數據