服务器重启后未使用使用者group.id时

时间:2018-08-28 12:57:21

标签: apache-kafka

当使用者实例group.id重新启动时更改时,会对kafka性能产生任何影响。较旧的group.id会发生什么情况,它是否仍存在于代理内存中或何时将其删除?假设我有1000多个使用者实例,并且所有实例都在重启时动态分配了group.id。

可以为{log.retention.ms'}提供列表值。我可以将其设置为1毫秒吗?

1 个答案:

答案 0 :(得分:1)

这将取决于您的消费者版本,因为kafka 0.9.0.1中引入了新的消费者api

存储在zookeeper中的旧消费者组将一直呆在那里,直到您明确删除它们为止

kafka-consumer-groups.sh --zookeeper <zookeeper> --list
kafka-consumer-groups.sh --zookeeper <zookeeper> --delete --group <group-name>

使用新api的消费组将在其最后提交的偏移量过期时自动删除(即,主题中不再可用)。 您可以使用

获取新的消费者组列表
kafka-consumer-groups.sh --bootstrap-server <broker> --list --new-consumer

请注意,--new-consumer已在kafka 2.0中删除。

另请参阅removing a kafka consumer group in zookeeper

性能问题将取决于您的使用者配置(auto.offset.reset)和主题保留大小。如果将消费者配置为获取最新消息,则影响会很小,但是如果将消费者配置为获取最早的补偿,并且您的主题很大,则可能会出现问题。

如果您希望消费者在每次启动时都从头开始阅读,请浏览How to read data using Kafka Consumer API from beginning?

log.retention.ms是将消息保留在kafka中的毫秒数。 1ms是有效值,但我不确定您是否真的想要。