Kafka 0.8 All Good&石头! ....卡夫卡0.7无法实现这一目标

时间:2013-06-28 08:44:00

标签: apache-zookeeper apache-kafka

Kafka 0.8很棒。我可以使用CLI以及编写自己的生产者/消费者!

检查Zookeeper ...我看到所有主题和分区都成功创建了0.8。

Kafka 0.7不起作用!

为什么卡夫卡0.7?我正在使用来自Storm的Kafka Spout,它是为Kafka 0.7制作的。

首先,我只想为Kafka 0.7运行基于CLI的生产者/消费者,我无法做到。我执行以下步骤:

  1. 我删除了Zookeeper中从我的Kafka 0.8
  2. 创建的所有主题/分区等
  3. 我将zoo.cfg中的dataDir更改为指向不同的位置。
  4. 现在我启动kafka服务器0.7。它成功启动。但是我不知道为什么它再次注册我删除的经纪人主题?
  5. 现在我开始了Kafka Producer:

    bin / kafka-console-producer.sh --zookeeper localhost:2181 - topic topicime     &安培;它成功启动:     [2013-06-28 14:06:05,521] INFO zookeeper状态已更改(SyncConnected)(org.I0Itec.zkclient.ZkClient)     [2013-06-28 14:06:05,606] INFO为代理ID = 0创建异步生成器0:0(kafka.producer.ProducerPool)

  6. 发送一些消息的时间&哎呀我得到这个错误:

    [2013-06-28 14:07:19,650] INFO从0:0断开连接(kafka.producer.SyncProducer) [2013-06-28 14:07:19,653] ERROR连接尝试失败0:0失败,下一次尝试失误1次(kafka.producer.SyncProducer) java.net.ConnectException:连接被拒绝         在sun.nio.ch.Net.connect0(本机方法)         在sun.nio.ch.Net.connect(Net.java:364)         在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)         在scala.collection.immutable.Stream.foreach(Stream.scala:254)         at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:70)         at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:41)

  7. 请注意,Zookeeper已在运行。

    真的很感激任何帮助。

    修改

    我甚至没有看到在zookeeper中创建的主题。我正在运行以下命令:

    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)
    

    但是现在当我键入要发送的字符串时,我收到上述错误(连接被拒绝!)

2 个答案:

答案 0 :(得分:0)

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

上面的行中隐藏了错误。 0:0不是有效的主机和端口。解决方案是通过在server.properties中设置“hostname”属性来显式设置要在Zookeeper中注册的主机IP。

答案 1 :(得分:0)

考虑查看https://github.com/wurstmeister/storm-kafka-0.8-plus

提供的storm-kafka分支

我现在正在为我们的服务器安装它=)。