当我在本地的机器上把Kafka旋转起来时,我能让它正常工作。但当我试图让它在一个aws示例上工作时,似乎没有什么是正确的。我试着旋转我自己的服务器,就像我在本地旋转zookeeper和kafka一样
curl http://apache.spinellicreations.com/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz | tar -xzf
cd kafka_2.11-0.10.0.0
bin/zookeeper-server-start.sh config/zookeeper.properties &
bin/kafka-server-start.sh config/server.properties &
我还尝试使用bitami的ami,它似乎是一个多合一的ami。创建主题似乎效果不错。但是当我试图运行控制台生产者我得到一个错误
SEASPAULSON-MAC:kafka_2.11-0.10.0.0 spaulson$ bin/kafka-console-producer.sh --broker-list ec2-54-186-31-109.us-west-2.compute.amazonaws.com:9092 --topic test
blah
[2016-10-20 12:13:23,395] ERROR Error when sending message to topic test with key: null, value: 4 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)
org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s) expired due to timeout while requesting metadata from brokers for test-0
当我尝试启动一个不断重复的控制台使用者时,我也会遇到一个错误。
bin/kafka-console-consumer.sh --zookeeper ec2-54-186-31-109.us-west-2.compute.amazonaws.com:2181 --topic test --from-beginning
[2016-10-19 18:26:47,175] WARN Fetching topic metadata with correlation id 152 for topics [Set(test)] from broker [BrokerEndPoint(0,ip-172-31-52-58.ec2.internal,9092)] failed (kafka.client.ClientUtils$)
java.nio.channels.ClosedChannelException
at kafka.network.BlockingChannel.send(BlockingChannel.scala:110)
at kafka.producer.SyncProducer.liftedTree1$1(SyncProducer.scala:80)
at kafka.producer.SyncProducer.kafka$producer$SyncProducer$$doSend(SyncProducer.scala:79)
at kafka.producer.SyncProducer.send(SyncProducer.scala:124)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:59)
at kafka.client.ClientUtils$.fetchTopicMetadata(ClientUtils.scala:94)
at kafka.consumer.ConsumerFetcherManager$LeaderFinderThread.doWork(ConsumerFetcherManager.scala:66)
我觉得这类操作应该是琐碎的,但事实证明这是非常具有挑战性的。我很难找到有关如何诊断问题和找出问题所在的文档。我发现最好的就是这个命令
KAFKA_HOME/bin/kafka-topics.sh --describe --topic test --zookeeper ec2-54-186-31-109.us-west-2.compute.amazonaws.com:2181
Topic:test PartitionCount:1 ReplicationFactor:1 Configs:
Topic: test Partition: 0 Leader: 0 Replicas: 0 Isr: 0
前导:0是否表示出错?但是什么?
1条答案
按热度按时间vmdwslir1#
对于aws或任何其他iaas机器,应该为客户机设置“adverted.listeners”。以下是Kafka文件中的选项含义:
如果与上面的侦听器不同,则将侦听器发布到zookeeper以供客户端使用。在iaas环境中,这可能需要与代理绑定到的接口不同。如果未设置,则
listeners
将使用。