版本
- kafka_2.11-2.0.0
- zookeeper-3.4.5-cdh5.15.1
前提
安裝好zookeeper並啓動服務
配置config/server.properties
下載並解壓後,在config目錄下可以看到一個server.properties文件,我們需要配置一下幾個參數:
#broker的編號,必須是唯一的,相當於主鍵
broker.id=0
#每個broker監聽的端口
listeners=PLAINTEXT://:9090
#日誌目錄,默認目錄在tmp下面,重啓後就會被清空,所以要重新指定一個目錄
log.dirs=/root/kafka-tmp/log
#zookeeper地址
zookeeper.connect=hlsijx:2181
因爲我們要創建三個broker,因此這個配置文件也需要三份
server-1.properties
broker.id=1
listeners=PLAINTEXT://:9091
log.dirs=/root/kafka-tmp/log-1
zookeeper.connect=hlsijx:2181
server-2.properties
broker.id=2
listeners=PLAINTEXT://:9092
log.dirs=/root/kafka-tmp/log-2
zookeeper.connect=hlsijx:2181
server-3.properties
broker.id=3
listeners=PLAINTEXT://:9093
log.dirs=/root/kafka-tmp/log-3
zookeeper.connect=hlsijx:2181
啓動Kafka
當前路徑:$KAFKA_HOME/config,執行命令:
$ kafka-server-start.sh -daemon server-1.properties &
$ kafka-server-start.sh -daemon server-2.properties &
$ kafka-server-start.sh -daemon server-3.properties &
啓動完成後可以看到有3個kafka進程
創建Topic
#創建一個topic,名字叫my-replicated-topic,連接到zookeeper,3副本,1分區
kafka-topics.sh --create --zookeeper hlsijx:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
執行完成後會提示“Created topic “my-replicated-topic”.”再來看一下topic的描述信息:
kafka-topics.sh --describe --zookeeper hlsijx:2181 --topic my-replicated-topic
從圖中我們可以看到,當前的Leader是2,副本在2,3,1上都有且三個節點都活着
生產&消費消息
生產消息:
kafka-console-producer.sh --broker-list hlsijx:9091,hlsijx:9092,hlsijx:9093 --topic my-replicated-topic
消費消息:
kafka-console-consumer.sh --bootstrap-server hlsijx:9091,hlsijx:9092,hlsijx:9093 --topic my-replicated-topic --from-beginning