我正在编写一个带有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);