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

noa*_*oah 0 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'
Run Code Online (Sandbox Code Playgroud)

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

noa*_*oah 6

似乎ZooKeeper仍然是0.8.2中的要求,但他们希望在0.8.3中修复此问题.来自Gwen Shapira的邮件列表:

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