无法使用Python在Kafka中设置使用者组

时间:2019-03-19 08:37:04

标签: apache-kafka

我是Kafka的新手,我已经尝试过Kafka-Python软件包。

我设法建立了一个简单的生产者和使用者,可以发送和接收消息。在这种情况下,消费者不使用以下消费者群体:

consumer = KafkaConsumer(queue_name, bootstrap_servers='kafka:9092')

但是,当我开始如下使用group_id时,它将停止接收任何消息:

consumer = KafkaConsumer(bootstrap_servers='kafka:9092', auto_offset_reset='earliest', group_id='my-group')
consumer.subscribe([queue_name])

为了进行比较,我还尝试了confluent-kafka-python程序包,在该程序包中,我有以下消费者代码,该代码也不起作用:

consumer = Consumer({
    'bootstrap.servers': 'kafka:9092',
    'group.id': 'mygroup',
    'auto.offset.reset': 'earliest'
})
consumer.subscribe([queue_name])

也运行./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list会得到空结果。

这里缺少任何配置吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,使用者从最后提交的偏移量开始消耗,这可能是您的情况下的最后一个偏移量。

auto.offset.reset仅在没有提交的偏移量时适用。默认情况下,使用者自动提交偏移量,它通常仅在您第一次运行时才应用(还有一些其他情况,但在此示例中无关紧要)。

因此,要查看消息的流向,您需要在使用者运行时开始产生消息,或者使用其他组名来允许auto.offset.reset生效。