kafka是一個開源的分散式訊息佇列
他提供可靠的叢集容錯機制,並保證故障切換時的資料完整性。
無論從效能、可靠性、易用性都強過ActiveMQ(client的API感覺還是不如ActiveMQ好用,文件也沒有更新到最新版)
下面簡單記錄一下安裝步驟和常用命令。
1、安裝
下載壓縮包並解壓
可以解壓到 /usr/local/kafka
2、配置
vim conf/server.properties
#設定brokerid(從0開始,3個節點分別設為0,1,2,不能重複)
broker.id=0
#設定data目錄,最好不要用預設的/tmp/kafka-logs
log.dirs=/usr/local/kafka/kafka-logs
#設定註冊地址(重要,預設會把本機的hostanme註冊到zk中,客戶端連線時需要解析該hostanme,所以這裡直接註冊本機的IP地址,避免hostname解析失敗,報錯java.nio.channels.UnresolvedAddressException或java.io.IOException: Can not resolve address)
advertised.host.name=192.168.xxx
#設定zookeeper地址
zookeeper.connect=zk1.yazuoyw.com:2181,zk2.yazuoyw.com:2181,zk3.yazuoyw.com:2181
3、啟動關閉
#啟動
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
#新增開機啟動
echo '
# start kafka
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
' >> /etc/rc.local
#關閉
/usr/local/kafka/bin/kafka-server-stop.sh
4、常用命令
#檢視tocpic列表(--zookeeper指定任意一個zk節點即可,用於獲取叢集資訊)
/usr/local/kafka/bin/kafka-topics.sh --zookeeper zk1.yazuoyw.com:2181 --describe
#建立topic(--replication-factor表示複製到多少個節點,--partitions表示分割槽數,一般都設定為2或與節點數相等,不能大於總節點數)
/usr/local/kafka/bin/kafka-topics.sh --zookeeper zk1.yazuoyw.com:2181 --create --topic topic1 --replication-factor 2 --partitions 2
#傳送訊息(--topic 指定topic)
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list kafka1.yazuoyw.com:9092,kafka2.yazuoyw.com:9092,kafka3.yazuoyw.com:9092 --topic topic1
message1
message2
#消費訊息
/usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper zk1.yazuoyw.com:2181 --topic topic1
#replica檢查
/usr/local/kafka/bin/kafka-replica-verification.sh --broker-list kafka1.yazuoyw.com:9092,kafka2.yazuoyw.com:9092,kafka3.yazuoyw.com:9092