Kafka簡介
Kafka是一個分佈式、可分區、可複製的消息系統。Kafka將消息以topic爲單位進行歸納;Kafka發佈消息的程序稱爲producer,也叫生產者;Kafka預訂topics並消費消息的程序稱爲consumer,也叫消費者;當Kafka以集羣的方式運行時,可以由一個服務或者多個服務組成,每個服務叫做一個broker,運行過程中producer通過網絡將消息發送到Kafka集羣,集羣向消費者提供消息。
第一步:Kafka下載
下載下來爲kafka_2.12-1.0.0.tgz。請使用tar -zxvf /home/kafka_2.12-1.0.0.tgz解壓至/opt目錄
第二步:安裝前準備
IP及端口分配:
IP | 服務端口 |
10.100.104.135 | 9092 |
10.100.104.136 | 9092 |
10.100.104.137 | 9092 |
第三步:Kafka安裝
vim config/server.properties,修改kafka配置:server.properties
broker.id=1 ##注意集羣中不同機器上配置的“數字”不能相同
num.partitions=4
host.name=10.100.104.136 ##注意集羣中不同機器上配置的“IP”不能相同
listeners=PLAINTEXT://10.100.104.136:9092 ##注意集羣中不同機器上配置的“IP”不能相同
advertised.listeners=PLAINTEXT://10.100.104.136:9092 ##注意集羣中不同機器上配置的“IP”不能相同
log.dirs=/opt/kafka_2.12-1.0.0/logs
zookeeper.connect=10.100.160.132:2181,10.100.160.133:2181,10.100.160.134:2181
第四步:啓動
執行命令:bin/kafka-server-start.sh -daemon config/server.properties
問題及解決方案
如果broker.id更換,需清空log目錄的所有文件:
cd /opt/kafka_2.12-1.0.0/logs
rm -rf *
測試
顯示所有topic
bin/kafka-topics.sh --list --zookeeper 10.100.160.132:2181,10.100.160.133:2181,10.100.160.134:2181創建測試用的topic,其中10.100.160.132:2181爲zookeeper 地址和端口
bin/kafka-topics.sh --create --zookeeper 10.100.160.132:2181 --replication-factor 1 --partitions 4 --topic cmy_nbd_topic1
執行會顯示出cmy_nbd_topic1登錄一臺執行,然後輸入如 aaabbbccc 回車
bin/kafka-console-producer.sh --broker-list 10.100.104.136:9092 --topic cmy_nbd_topic1
aaabbbccc登錄另外一臺執行,會收到aaabbbccc
bin/kafka-console-consumer.sh --zookeeper 10.100.160.132:2181 --topic cmy_nbd_topic1 --from-beginning
aaabbbccc