具有offsets.storage = kafka的Kafka 0.8.2.1如何仍然需要ZooKeeper?

时间:2015-06-08 21:21:29

标签: apache-kafka

我们正在使用0.8.2.1建立一个新的Kafka项目,并希望专门为Kafka编写消费者抵消。因此,我们在消费者配置中设置了offsets.storage=kafkadual.commit.enabled=false。但是,当我们创建消费者连接器时,它仍然希望连接到ZooKeeper:

kafka.consumer.Consumer.createJavaConsumerConnector(config);
// fails with:
// Caused by: java.lang.IllegalArgumentException: requirement failed: 
//      Missing required property 'zookeeper.connect'

我想也许我们只需要指定zookeeper.connect并且它会被忽略所以我指定了一个无效的主机名,但是它仍然失败,因为它确实尝试连接。如果我们能够避免,我们真的不希望我们的消费者必须连接到ZooKeeper。那是什么给出了什么?

1 个答案:

答案 0 :(得分:6)

似乎ZooKeeper仍然是0.8.2的要求,但是他们希望在0.8.3中解决这个问题。来自Gwen Shapira的邮件列表:

  

现有的消费者使用Zookeeper来提交偏移量和   将分区分配给不同的使用者和线程   消费者群体。   虽然抵消可以在0.8.2版本中提交给Kafka,其中   大大减少了Zookeeper的负担,消费者仍然需要   Zookeeper管理组成员资格和分区所有权。   新消费者(我们希望准备好0.8.3版本)将会   完全删除Zookeeper依赖项,管理偏移量和   Kafka本身的分区所有权。