Kafka 0.9使用者停止使用重新平衡后最初分配的分区中的消息

时间:2016-09-13 08:06:11

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

我正在编写一个带有0.9 Java API的Kafka Consumer Client。

我创建了一个包含15个分区(0-14)的主题。启动了三个消费者客户端,然后启动生产者以生成50,000条消息。

在这三个消费者客户开始处理之后,我停止了其中一个。过了一会儿,重新平衡发生了,问题就发生了。

问题是,当我启动三个消费者客户端时,他们都被分配到分区。例如:

client 1: 0, 1, 2, 3, 4

client 2: 5, 6, 7, 8, 9

client 3: 10, 11, 12, 13, 14

在我停止客户端3之后,重新平衡发生了。新的任务是:

client 1: 0, 1, 2, 3, 4, 5, 6, 7, 8

client 2: 9, 10, 11, 12, 13, 14

但是在重新平衡之后,客户端1将不会消费0-5&客户2不会从9开始消费。

我的消费者配置如下:

properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");
properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false");
properties.put(ConsumerConfig.MAX_PARTITION_FETCH_BYTES_CONFIG, 8192);
properties.put(ConsumerConfig.GROUP_ID_CONFIG, groupId);

0 个答案:

没有答案