首页 文章

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

提问于
浏览
0

我们正在使用0.8.2.1 Build 一个新的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 回答

  • 6

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

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

相关问题