我在一个AWS EC2实例中安装了kafka和zookeeper。 我已将服务器的主机名更改为kafka。 当我创建主题时它运行良好:
/home/kafka/kafka/bin/kafka-topics.sh --create --zookeeper kafka:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".
kafka-console-producer.sh也运行良好:
/home/kafka/kafka/bin# /home/kafka/kafka/bin/kafka-console-producer.sh --broker-list kafka:9092 --topic test
[2017-10-11 20:58:13,924] WARN Property topic is not valid (kafka.utils.VerifiableProperties)
testing
但是卡夫卡制片人正在超时:
ubuntu@kafka:~$ /home/kafka/kafka/bin/kafka-console-consumer.sh --zookeeper kafka:9092 --topic test --from-beginning
Exception in thread "main" org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server within timeout: 6000
at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:880)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:98)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:84)
at kafka.consumer.ZookeeperConsumerConnector.connectZk(ZookeeperConsumerConnector.scala:171)
at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:126)
at kafka.consumer.ZookeeperConsumerConnector.<init>(ZookeeperConsumerConnector.scala:143)
at kafka.consumer.Consumer$.create(ConsumerConnector.scala:94)
at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:145)
at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)
Kafka,zookeeper和经纪人(一个)在同一个ec2服务器上运行,他们有默认配置。 我在这个装置中遗漏了什么吗?
答案 0 :(得分:2)
新的消费者(如生产者)不再连接到zookeeper,它只连接到Kafka。
将命令--zookeeper
替换为--bootstrap-server
:
/home/kafka/kafka/bin/kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic test --from-beginning
答案 1 :(得分:1)
问题在于,当您使用旧的使用者(并使用--zookeeper
参数)时,应提供ZooKeeper端口(2181
)。
但是,请注意旧的消费者现已弃用,强烈建议使用新消费者。请查看Mickael Maison的答案以获取更多信息。