首页 > 解决方案 > Kafka 消费者没有从 offset#0 开始处理

问题描述

我有一个单分区的主题。我有 2 个不同的消费群体。每个消费者组都有一个消费者。从那时起,消费者组#1 一直在运行;我开始制作人。另一方面,Consumer group#2 刚开始使用 auto.offset.reset=earliest 参数。

不过,消费者组#2 开始使用最近重写的消息。

Q1:如何强制消费者组#2 中的消费者从头开始?

Q2:为什么auto.offset.reset(https://kafka.apache.org/documentation/-当Kafka中没有初始偏移或者服务器上不再存在当前偏移时该怎么办)不起作用? 因为它没有像我预期的那样工作;这意味着我没有正确理解它。

Kafka 2.11-0.11.0.1
Confluent-python v0.11.5

from confluent_kafka import Consumer, KafkaError
c = Consumer({
    'bootstrap.servers': 'mybroker',
    'group.id': 'mygroup', # I update group.id everytime I run
    'auto.offset.reset': 'earliest'
})
c.subscribe(['mytopic'])
while True:
    msg = c.poll(1.0)
    if msg is None:
        continue
    if msg.error():
        print("Consumer error: {}".format(msg.error()))
        continue
    print('Received message: {}'.format(msg.value().decode('utf-8')))
c.close()

结论:python 的 Confluent API 似乎有问题。因为 auto.offset.reset 适用于 Java 客户端。

标签: python-3.xapache-kafkaconfluent-platform

解决方案


推荐阅读