1. 程式人生 > >zookeeper和kafka實踐

zookeeper和kafka實踐

1、使用kafka,依賴zookeeper和scala,對應版本從網上找

2、都安裝完成後,進入kafka的安裝路徑下面的bin目錄,開啟


存在這些檔案

常用命令說明:

kafka-console-producer.sh(命令模式下發送訊息)【./kafka-console-producer.sh --broker-list localhost:9092 --topic test】

kafka-console-consumer.sh(命令模式下消費訊息)【./kafka-console-consumer.sh --zookeeper localhost:9092 --topic test --from-beginning】

kafka-server-start.sh(啟動kafka)【./kafka-server-start.sh ../config/server.properties】

kafka-server-stop.sh(關閉kafka)

zookeeper-server-start.sh(啟動zookeeper)【./zookeeper-server-start.sh ../config/zookeeper.properties】

zookeeper-server-stop.sh(關閉zookeeper)

3、接下來進入../config目錄


常用說明:

server.properties(kafka服務配置,其中server1和server2是多個broker的配置檔案)

zookeeper.properties(zookeeper的配置檔案)

進入server.properties




說明:

host.name--->producer和consumer是通過這個主機名(advertised.host.name)來連線broker的,而如果這個值沒有設定,則會使用上面的host.name的值,如果上面的host.name也沒有設定,則會使用java.net.InetAddress.getCanonicalHostName()獲取的值。從Zookeeper中可以看出,預設的時候該broker是localhost,從其他機器訪問當然不可能成功。【解決

Failed to send messages after 3 tries錯誤的方案

zookeeper.connect--->zookeeper地址埠(最好都配成伺服器的真實ip,不要localhost,不然程式裡面不好呼叫)

以上配置完畢,接下來例項測試

1、命令:

①:啟動zookeeper

②:啟動kafka

③:producer傳送訊息

④:consumer消費訊息

2、程式程式碼

定義生產者


topic:對應的主題

message:傳送的訊息

傳送訊息


接收到訊息


至此,結束。

個人愚見,有什麼問題可以指出來,大神勿噴