1. 程式人生 > >Kafka 入門之集群部署遇到問題

Kafka 入門之集群部署遇到問題

學會 begin Kafka集群 zookeep 本地 代碼 解決方法 部署 研究

  最近,因為上級主管部門需要通過使用Kafka向其傳輸文件,又因為此前沒有接觸過kafka,所以在部署測試kafka程序期間遇到很多問題,在這裏總結4個問題與1個建議,方便入門者參考也便於遇到類似問題進行查閱完善。

1.Kafka java代碼與Kafka 軟件的關系

Kafka java代碼與Kafka 軟件之間究竟有什麽關系呢?Kafka java代碼中已經使了kafka-clients-0.8.2.1.jar,kafka_2.11-0.8.2.1.jar,那麽還需要安裝kafka_2.11-0.10.2.1麽?並可Kafkaproducer.properties已經包含了Kafka軟件中 server.propertiy zookeeper.connect,等等屬性,那麽是不是可以取代Kafka 軟件了呢?

Kafka 軟件:目前使用版本為kafka_2.11-0.10.2.1,\kafka_2.11-0.10.2.1\bin\windows,可啟動Kafka,可創建Topic,可啟動一個生產者進程來發送消息,也可以啟動一個消費者進程來消費消息,見下:

#創建topic
bin\windows\kafka-topics.bat --create --zookeeper 101.201.177.100:2181 --replication-factor 1 --partitions 1 --topic mytest-topic
#啟動一個生產者進程來發送消息
bin\windows\kafka-console-producer.bat --broker-list 101.201.177.100:9092 --topic mytest-topic
#啟動一個消費者進程來消費消息
bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic my-topic --from-beginning

Kafka java代碼:用於編寫Kafka的Producer端與Consumer端,完成消息的發送與接收;

區別:也就是Kafka java代碼運行,離不開Kafka 軟件,因為是調用Kafka 軟件中的kafka-console-consumer.bat、kafka-console-producer.bat;

2.ZooKeeper與Kafka 軟件的關系

zooKeeper集群與Kafka集群之間有什麽關系,之前一位對Kafka有所研究的朋友說,作為Kafka的客戶端,只需要在此機安裝Zookeeper就可以了?然而,在參考各種Kafka集群配置的時候有每臺機器都部署zookeeper與kafka的,也有只有1臺部署zookeeper的(同時部署Kafka),3臺部署kafka的;那究竟是怎樣的呢?

在讀此篇博文,頓覺一語中的 “”Kafka集群是把狀態保存在Zookeeper中的,首先要搭建Zookeeper集群。” 圖文參考 http://www.cnblogs.com/luotianshuai/p/5206662.html;

3.Kafka 單機測試通過,集群部署發送文件失敗

單機通過kafka發送文件、接收文件均無問題,根據配置文件修改為遠程服務端,卻發送失敗???期間原因很多,但總結如下:

1.在修改配置文件後,因為運行後會產生新文件,修改配置文件,容易產生新的錯誤;

2.學會看log,根據log提示的錯誤,查找問題原因,或百度找到解決方法;也需要學會判斷判斷程序是否正確啟動。

3.Kafka配置時host主機名字不能設置為127.0.0.1 !!!困擾了我18個小時的原因

4.Kafka 測試

為了避免重復的額部署、測試,程序能夠使用,測試環境是必不可少的啦,建議測試方法如下:

配置本地環境測試與生產環境測試的程序、與配置文件、啟動命令;

更建議本地使用編程工具(比如 Idea)進行調試,因為編程工具運行起來不需要部署,賊方便哦;

本地測試OK,進行生產環境測試,只要您的測試與生產環境相似度很高,也就基本OK啦。

Kafka 入門之集群部署遇到問題