2013-06-28 62 views
1

卡夫卡0.8工程很棒。我能夠使用CLI以及編寫我自己的生產者/消費者!卡夫卡0.8全部好&岩石! ....卡夫卡0.7無法實現它

正在檢查Zookeeper ...並且我看到所有成功創建的主題和分區爲0.8。

卡夫卡0.7不起作用!

爲什麼選擇Kafka 0.7?我使用的是Kafka 0.7製作的來自Storm的Kafka Spout。

首先,我只想運行基於CLI的生產者/消費者卡夫卡0.7,我不能。我執行以下步驟:

  1. 我刪除所有從我的卡夫卡0.8
  2. 創建的我改變DATADIR在zoo.cfg指向不同位置的主題/分區等在動物園管理員。
  3. 現在我啓動kafka服務器0.7。它啓動成功。但是,我不知道爲什麼它再次註冊我刪除的經紀人主題?
  4. 現在我開始卡夫卡監製:

    斌/ kafka-console-producer.sh --zookeeper本地主機:2181 --topic topicime &啓動成功: [2013年6月28日14:06 :05,521]信息zookeeper狀態已更改(SyncConnected)(org.I0Itec.zkclient.ZkClient) [2013-06-28 14:06:05,606]信息在0:0處創建經紀人id = 0的異步生產者(kafka.producer。 ProducerPool)

  5. 發送一些消息的時間& oops我得到這個錯誤:

    [2013-06-28 14:07:19,650]信息斷開連接0:0(kafka.producer.SyncProducer) [2013-06-28 14:07:19,653]錯誤連接嘗試0:0失敗,接下來企圖1毫秒(kafka.producer.SyncProducer) java.net.ConnectException:連接在sun.nio.ch.Net.connect0(本機方法) 在sun.nio.ch.Net.connect(Net.java拒絕 :364) at sun.nio.ch.Net.connect(Net.java:356) at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:623) at kafka.producer.SyncProducer.connect(SyncProducer .scala:173) at kafka.producer.SyncProducer.getOrMakeConnection(SyncProducer.scala:196) at kafka.producer.SyncProducer.send(SyncProducer.scala:92) at kafka.producer.SyncProducer.multiSend(SyncProducer.scala:135) at kafka.producer.async.DefaultEventHandler.send(DefaultEventHandler.scala:58) at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala: 44) at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:116) at scala.collection.immutable.Stream.foreach(Stream.scala:254) at kafka.producer.async.ProducerSendThread.processEvents( ProducerSendThread.scala:70) 在kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:41)

注意,動物園管理員已經運行。

任何幫助真的不勝感激。

編輯:

我甚至不看在動物園管理員所創建的主題。我運行下面的命令:

bin/kafka-console-producer.sh --zookeeper localhost:2181 --topic topicime 

命令一切之後是罰款&我得到以下信息:

[2013-06-28 14:30:17,614] INFO Session establishment complete on server localhost/127.0.0.1:2181, sessionid = 0x13f805c6673004b, negotiated timeout = 6000 (org.apache.zookeeper.ClientCnxn) 
[2013-06-28 14:30:17,615] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient) 
[2013-06-28 14:30:17,700] INFO Creating async producer for broker id = 0 at 0:0 (kafka.producer.ProducerPool) 

但是現在,當我輸入一個字符串送我得到上述錯誤(連接拒絕!)

+0

他們在0.8版本中做了很多修復和更改。消費者API也被顯着修改和豐富。我相信你應該轉移到0.8而不是解決0.7問題,除非你有明確的理由堅持下去。 – Hild

+0

@Hild:這是因爲我使用Kafka Spout(Storm),它是爲Kafka 0.7編寫的。 – Yavar

+0

你可能想看看[這裏](https://github.com/wurstmeister/storm-kafka-0.8-plus),它使用Kafka 0.8發行版 – Hild

回答

0
INFO Disconnecting from 0:0 (kafka.producer.SyncProducer) 

上面的行有錯誤隱藏在其中。 0:0不是有效的主機和端口。解決方案是通過在server.properties中設置「hostname」屬性來顯式設置主機ip以在Zookeeper中註冊。