【问题标题】:Zookeeper property still a requirement in the Kafka consumer?Zookeeper 属性仍然是 Kafka 消费者的要求吗?
【发布时间】:2016-08-01 04:28:36
【问题描述】:

我指的是这里的一个帖子: Connecting to Zookeeper in a Apache Kafka Multi Node cluster

这里提到,从 kafka V9 版本开始,Producer 和 Consumer 不必使用 zookeeper.connect 属性,只需 bootstrap.servers 即可生产/消费数据。

我的 POM.xml 在消费者端看起来像这样:

<properties>
    <java.version>1.7</java.version>
    <kafka.version>0.9.0.1-cp1</kafka.version>
    <kafka.scala.version>2.11</kafka.scala.version>
    <confluent.version>2.0.1</confluent.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>


<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.10</artifactId>
<version>0.10.0.0</version>
</dependency>

我在消费者端遇到了以下问题,没有 zookeeper.connect 属性。有没有人在没有 zookeeper 连接属性的情况下让消费者部分工作?

[WARNING] 
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:297)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: requirement failed: Missing required property 'zookeeper.connect'
at scala.Predef$.require(Predef.scala:233)
at kafka.utils.VerifiableProperties.getString(VerifiableProperties.scala:177)
at kafka.utils.ZKConfig.<init>(ZkUtils.scala:902)
at kafka.consumer.ConsumerConfig.<init>(ConsumerConfig.scala:101)
at kafka.consumer.ConsumerConfig.<init>(ConsumerConfig.scala:105)
at io.confluent.examples.consumer.ConsumerGroup.<init>(ConsumerGroup.java:30)
at io.confluent.examples.consumer.ConsumerGroup.main(ConsumerGroup.java:113)
... 6 more

【问题讨论】:

    标签: java apache-kafka kafka-consumer-api


    【解决方案1】:

    只有新的消费者才能在不连接 Zookeeper 的情况下工作,这在 kafka-clients 工件中可用。您必须添加依赖项:

    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>0.10.0.0</version>
    </dependency>
    

    并使用 org.apache.kafka.clients.consumer. 包中的实现。

    【讨论】:

    • org.apache.kafka.clients.producer.KafkaProducer中的KafkaProducer也不要和zookeeper通信。
    猜你喜欢
    • 2020-05-03
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 2016-08-21
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多