无法让Kafka控制台生产者或消费者工作

3qpi33ja  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(379)

当我在本地的机器上把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是否表示出错?但是什么?

vmdwslir

vmdwslir1#

对于aws或任何其他iaas机器,应该为客户机设置“adverted.listeners”。以下是Kafka文件中的选项含义:
如果与上面的侦听器不同,则将侦听器发布到zookeeper以供客户端使用。在iaas环境中,这可能需要与代理绑定到的接口不同。如果未设置,则 listeners 将使用。

相关问题